IP Library Granted Patent US 12,292,880
Granted Patent B2
US 12,292,880 · App. 17/899,381 · Granted May 6, 2025

Systems and methods for zero downtime distributed search system updates

Inventors: Ritesh Kumar (South San Francisco, CA); Susindaran Elangovan (South San Francisco, CA); Priyanka Raju (South San Francisco, CA)
Assignee: Stripe, Inc.
G06F16/2379G06F8/65G06F11/1464G06F12/0269
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,292,880
App. No.
17/899,381
Granted
May 6, 2025
Kind
B2
Abstract

A method and apparatus for performing search system upgrades is described. The method may include processing a software upgrade for a search system cluster distributed over one or more nodes, the one or more nodes comprising current search system data nodes. The method may also include allocating at least a set of one or more search system data nodes for the software upgrade including at least one upgraded search system data node. Furthermore, the method can include receiving, during the software upgrade, transaction data for a transaction, and receiving search requests to be executed by the search system cluster. Additionally, the method may include performing ingestion of all received transaction data comprising storing and indexing the transaction data in both the current search system data nodes and the at least one upgraded search system data node, and processing the search requests by the search system cluster against the current search system data nodes until the software upgrade is determined to be complete.

Claims (78)

1. A method for performing search system upgrades, the method comprising:

processing, by a computer processing system, a software upgrade for a search system cluster distributed over one or more nodes, the one or more nodes comprising current search system data nodes;

allocating, by the computer processing system, at least a set of one or more search system data nodes for the software upgrade including at least one upgraded search system data node;

receiving, by the computer processing system during the software upgrade, transaction data for a transaction processed by the computer processing system, and receiving search requests to be executed by the search system cluster;

performing, by the computer processing system, ingestion of all historical transaction data comprising a dual write of the transaction data comprising:

storing and indexing the transaction data in the current search system data nodes; and

storing and indexing the transaction data separately from the current search system data nodes in the at least one upgraded search system data node; and

processing, by the computer processing system, the search requests by the search system cluster against both the current search system data nodes and the at least one upgraded search system data node until the software upgrade is determined to be complete when first search results from the current search system data nodes are compared and match second search results from the at least one upgraded search system data node; and

in response to determining that the software upgrade is complete, decommissioning, by the computer processing system, at least the current search system data nodes and processing new search requests against the at least one upgraded search system data node.

2. The method of claim 1 , further comprising:

performing ingestion of historical transaction data to the at least one upgraded search system data node; and

when the ingestion of the historical transaction data to the at least one upgraded search system data node is complete and the software upgrade is determined to be complete, decommissioning at least the current search system data nodes and processing new search requests using the at least one upgraded search system data node.

3. The method of claim 2 , further comprising:

accessing one or more historical transaction data from a search system snapshot; and

performing ingestion of the accessed historical transaction data comprising storing and indexing the accessed historical transaction data in the at least one upgraded search system data node.

4. The method of claim 2 , wherein the software upgrade is determined to be complete further comprising:

determining that all historical transaction data has been ingested by the at least one upgraded search system data node;

after all historical transaction data has been ingested by the at least one upgraded search system data node, processing one or more new search requests against both the current search system data nodes and the at least one upgraded search system data node;

comparing first search results returned using the current search system data nodes with second search results returned using the at least one upgraded search system data node; and

when the first search results match the second search results, determining that the software upgrade is complete.

5. The method of claim 4 , wherein comparing the first search results returned using the current search system data nodes with the second search results returned using the at least one upgraded search system data node, further comprises:

receiving a search request for a specific transaction data; and

determining a search results match when the specific transaction data is returned in both the first search results match the second search results.

6. The method of claim 4 , wherein comparing the first search results returned using the current search system data nodes with the second search results returned using the at least one upgraded search system data node, further comprises:

receiving a search request for a ranked listing of search results; and

determining a search results match when a first ranked search result returned using the current search system data nodes has a threshold amount of similarity to a second ranked search result returned using the at least one upgraded search system data node.

7. The method of claim 4 , wherein comparing first search results returned using the current search system data nodes with second search results returned using the at least one upgraded search system data node, further comprises:

comparing search results obtained using the current search system data nodes and using the at least one upgraded search system data node over a period of time; and

when the search results match over a threshold period of time, determining that the first search results match the second search results.

8. The method of claim 4 , further comprising:

when the first search results do not match the second search results, decommissioning the allocated set of one or more search system data nodes including the at least one upgraded search system data node; and

restarting the software upgrade by allocating, by the computer processing system, at least a second set of one or more search system data nodes for the software upgrade including at least one second upgraded search system data node.

9. The method of claim 1 , wherein the storing and indexing the transaction data in both the current search system data nodes and the at least one upgraded search system data node comprises:

receiving, by the computer processing system, at least one request to delete identified transaction data from a data store of transaction records;

transforming the at least one request to delete the identified transaction data to an insertion of the identified transaction data with a deletion flag set to true;

ingesting the identified transaction data with the deletion flag, including storing and indexing the identified transaction data, by the at least one upgraded search system data node; and

when the software upgrade is determined to be complete, performing garbage collection to remove any transaction data from the at least one upgraded search system data node with a corresponding deletion flag set to true.

10. The method of claim 1 , wherein the processing of the software upgrade for the search system cluster distributed over the one or more nodes and allocating the set of one or more search system data nodes for the software upgrade including the at least one upgraded search system data node, further comprises:

allocating a new search system cluster that comprises the at least one upgraded search system data node, an upgraded master node, and an upgraded ingest node, wherein the at least one upgraded search system data node, the upgraded master node, and the upgraded ingest node are distributed among one or more processing systems of the computer processing system.

11. The method of claim 1 , wherein the processing the software upgrade for the search system cluster distributed over the one or more nodes and allocating the set of one or more search system data nodes for the software upgrade including the at least one upgraded search system data node, further comprises:

allocating the at least one upgraded search system data node within a current search system cluster that comprises at least one current search system data node, a current master node, and a current ingest node; and

performing an in-place installation of the software upgrade on the current master node and the current ingest node to respectively update the current master node and the current ingest node to an upgraded master node and an upgraded ingest node.

12. The method of claim 1 , wherein the search system cluster comprises a search system executed by the computer processing system.

13. The method of claim 1 , wherein the search system cluster comprises a search system remote to the computer processing system.

14. The method of claim 1 , wherein the transaction data is generated by the computer processing system and comprises data generated during financial transactions performed by the computer processing system on behalf of one or more merchant systems.

15. A non-transitory computer readable storage medium including instructions that, when executed by a processor, cause the processor to perform operations for performing search system upgrades, the operations comprising;

processing a software upgrade for a search system cluster distributed over one or more nodes, the one or more nodes comprising current search system data nodes;

allocating at least a set of one or more search system data nodes for the software upgrade including at least one upgraded search system data node;

receiving, during the software upgrade, transaction data for a transaction processed by a computer processing system, and receiving search requests to be executed by the search system cluster;

performing ingestion of all historical transaction data comprising a dual write of the transaction data comprising:

storing and indexing the transaction data in the current search system data nodes; and

storing and indexing the transaction data separately from the current search system data nodes in the at least one upgraded search system data node; and

processing the search requests by the search system cluster against both the current search system data nodes and the at least one upgraded search system data node until the software upgrade is determined to be complete when first search results from the current search system data nodes are compared and match second search results from the at least one upgraded search system data node; and

in response to determining that the software upgrade is complete, decommissioning at least the current search system data nodes and processing new search requests against the at least one upgraded search system data node.

16. The non-transitory computer readable storage medium of claim 15 , further comprising:

performing ingestion of historical transaction data to the at least one upgraded search system data node; and

when the ingestion of the historical transaction data to the at least one upgraded search system data node is complete and the software upgrade is determined to be complete, decommissioning at least the current search system data nodes and processing new search requests using the at least one upgraded search system data node.

17. The non-transitory computer readable storage medium of claim 16 , wherein the software upgrade is determined to be complete further comprises:

determining that all historical transaction data has been ingested by the at least one upgraded search system data node;

after all historical transaction data has been ingested by the at least one upgraded search system data node, processing one or more new search requests against both the current search system data nodes and the at least one upgraded search system data node;

comparing first search results returned using the current search system data nodes with second search results returned using the at least one upgraded search system data node; and

when the first search results match the second search results, determining that the software upgrade is complete.

18. The non-transitory computer readable storage medium of claim 15 , wherein the processing of the software upgrade for the search system cluster distributed over the one or more nodes and allocating the set of one or more search system data nodes for the software upgrade including the at least one upgraded search system data node, further comprises:

allocating a new search system cluster that comprises the at least one upgraded search system data node, an upgraded master node, and an upgraded ingest node, wherein the at least one upgraded search system data node, the upgraded master node, and the upgraded ingest node are distributed among one or more processing systems of the computer processing system.

19. The non-transitory computer readable storage medium of claim 15 , wherein the processing the software upgrade for the search system cluster distributed over the one or more nodes and allocating the set of one or more search system data nodes for the software upgrade including the at least one upgraded search system data node, further comprises:

allocating the at least one upgraded search system data node within a current search system cluster that comprises at least one current search system data node, a current master node, and a current ingest node; and

performing an in-place installation of the software upgrade on the current master node and the current ingest node to respectively update the current master node and the current ingest node to an upgraded master node and an upgraded ingest node.

20. A commerce platform system for performing search system upgrades, comprising:

a memory; and

a processor coupled with the memory configured to:

process a software upgrade for a search system cluster distributed over one or more nodes, the one or more nodes comprising current search system data nodes,

allocate at least a set of one or more search system data nodes for the software upgrade including at least one upgraded search system data node,

receive, during the software upgrade, transaction data for a transaction processed by the commerce platform system, and receiving search requests to be executed by the search system cluster;

perform ingestion of all historical transaction data comprising a dual write of the transaction data comprising:

storing and indexing the transaction data in the current search system data nodes; and

storing and indexing the transaction data separately from the current search system data nodes in the at least one upgraded search system data node, and

process the search requests by the search system cluster against both the current search system data nodes and the at least one upgraded search system data node until the software upgrade is determined to be complete when first search results from the current search system data nodes are compared and match second search results from the at least one upgraded search system data node; and

in response to determining that the software upgrade is complete, decommissioning at least the current search system data nodes and processing new search requests against the at least one upgraded search system data node.

Assignments (2)
CHANGE OF NAME Recorded Jan 7, 2026
From: STRIPE, INC.
To: STRIPE, LLC
Reel/Frame 074264/0807 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2022
From: KUMAR, RITESH; ELANGOVAN, SUSINDARAN; RAJU, PRIYANKA
To: STRIPE, INC.
Reel/Frame 061126/0181 →