IP Library Granted Patent US 9,015,197
Granted Patent B2
US 9,015,197 · App. 11/832,386 · Granted Apr 21, 2015

Dynamic repartitioning for changing a number of nodes or partitions in a distributed search system

Inventors: Michael Richards (Berkeley, CA); James E. Mace (San Francisco, CA)
Assignee: Oracle International Corporation
G06F17/30545
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 9,015,197
App. No.
11/832,386
Granted
Apr 21, 2015
Kind
B2
Abstract

A distributed search system can include a group of nodes assigned to different partitions. Each partition can store indexes for a group of documents. Nodes in the same partition can independently processing document-based records to construct the indexes. One of the nodes can process a stored checkpoint to produce a repartitioned checkpoint. The group of nodes can respond to search requests during the construction of the repartitioned checkpoint. The repartitioned checkpoint can be loaded into the group of nodes to repartition the group of nodes.

Claims (44)

1. A distributed search system executed by a processor comprising:

a group of storage nodes assigned to a plurality of different partitions, each partition comprising one or more nodes, each partition storing a different subset of document based records from a set of documents distributed across the plurality of different partitions, each node of each partition storing an index for the subset of documents stored in that partition, wherein:

each of the storage nodes in the same partition independently process the document-based records to construct the indexes,

each of the storage nodes is adapted to perform a repartition to change a number of partitions in the plurality of partitions or a number of storage nodes in one or more partitions of the plurality of partitions by processing a stored checkpoint in a central queue of document based records to be processed by the nodes of one or more of the partitions to produce a repartitioned checkpoint,

the stored checkpoint and the repartitioned checkpoint each include index and document data for documents stored in the storage nodes and a synchronized lexicon of decoding information for each of the partitions, wherein each node maintains the decoding information of the synchronized lexicon for each partition, wherein each node decodes combined query results based on the decoding information of the synchronized lexicon of the partitions in which the combined query results are stored, and

the group of storage nodes responds to search and index update requests during the construction of the repartitioned checkpoint, and

the repartitioned checkpoint is loaded into the group of storage nodes to dynamically repartition the group of storage nodes.

2. The distributed search system of claim 1 , wherein the repartition changes the number of partitions.

3. The distributed search system of claim 1 , wherein the construction of the repartitioned checkpoint is done using the checkpoint.

4. The distributed search system of claim 1 , wherein the checkpoint is created before the repartition.

5. The distributed search system of claim 1 , wherein the repartitioned checkpoint is stored to back up the system.

6. The distributed search system of claim 1 , wherein topology information is updated when the repartitioned checkpoint is loaded.

7. The distributed search system of claim 1 , wherein the repartitioned checkpoint also includes partial data for the storage nodes of the different partitions.

8. The system of claim 1 , wherein the group of storage nodes responds to search and update requests during the construction of the repartitioned checkpoint.

9. A non-transitory computer readable medium having stored thereon a series of instructions which, when executed by a processor, cause the processor to perform a repartition in a distributed search system by:

assigning a group of storage nodes to a plurality of different partitions, each partition comprising one or more nodes, each partition storing a different subset of document based records from a set of documents distributed across the plurality of different partitions, each node of each partition storing an index for the subset of documents stored in that partition, wherein each of the storage nodes in the same partition independently process the document- based records to construct the indexes, and wherein each of the storage nodes is adapted to perform a repartition to change a number of partitions in the plurality of partitions or a number of storage nodes in one or more partitions of the plurality of partitions;

performing a reparation by one of the storage nodes by processing a stored checkpoint in a central queue of document based records to be processed by the nodes of one or more of the partitions to produce a repartitioned checkpoint,

wherein the stored checkpoint and the repartitioned checkpoint each include index and document data for documents stored in the storage nodes and a synchronized lexicon of decoding information for each of the partitions,

wherein each node maintains the decoding information of the synchronized lexicon for each partition,

wherein each node decodes combined query results based on the decoding information of the synchronized lexicon of the partitions in which the combined query results are stored, and

wherein the group of storage nodes responds to search and index update requests during the construction of the repartitioned checkpoint, and

wherein the repartitioned checkpoint is loaded into the group of storage nodes to dynamically repartition the group of storage nodes; and

loading the repartitioned checkpoint into a group of storage nodes to dynamically repartition the groups of storage nodes.

10. The computer readable medium of claim 9 , wherein the repartition changes the number of partitions.

11. The computer readable medium of claim 9 , wherein the construction of the repartitioned checkpoint is done using the checkpoint.

12. The computer readable medium of claim 9 , wherein the checkpoint is created before the repartition.

13. The computer readable medium of claim 9 , wherein the repartitioned checkpoint is saved to be available to back up the system.

14. The computer readable medium of claim 9 , wherein topology information is updated when the repartitioned checkpoint is loaded.

15. The computer readable medium of claim 9 , wherein the repartitioned checkpoint also includes partial data for the storage nodes of the different partitions.

16. A method for performing a repartition of a distributed search system, the method comprising:

assigning a group of storage nodes to a plurality of different partitions, each partition comprising one or more nodes, each partition storing a different subset of document based records from a set of documents distributed across the plurality of different partitions, each node of each partition storing an index for the subset of documents stored in that partition, wherein each of the storage nodes in the same partition independently process the document-based records to construct the indexes, and wherein each of the storage nodes is adapted to perform a repartition to change a number of partitions in the plurality of partitions or a number of storage nodes in one or more partitions of the plurality of partitions;

performing a reparation by one of the storage nodes by processing a stored checkpoint in a central queue of document based records to be processed by the nodes of one or more of the partitions to produce a repartitioned checkpoint,

wherein the stored checkpoint and the repartitioned checkpoint each include index and document data for documents stored in the storage nodes and a synchronized lexicon of decoding information for each of the partitions,

wherein each node maintains the decoding information of the synchronized lexicon for each partition,

wherein each node decodes combined query results based on the decoding information of the synchronized lexicon of the partitions in which the combined query results are stored, and

wherein the group of storage nodes responds to search and index update requests during the construction of the repartitioned checkpoint, and

wherein the repartitioned checkpoint is loaded into the group of storage nodes to dynamically repartition the group of storage nodes; and

loading the repartitioned checkpoint into a group of storage nodes to dynamically repartition the groups of storage nodes.

17. The method of claim 16 , wherein the repartition changes the number of partitions.

18. The method of claim 16 , wherein the construction of the repartitioned checkpoint is done using the checkpoint.

19. The method of claim 16 , wherein the checkpoint is created before the repartition.

20. The method of claim 16 , wherein the repartitioned checkpoint is stored to back up the system.

21. The method of claim 16 , wherein topology information is updated when the repartitioned checkpoint is loaded.

22. The method of claim 16 , wherein the repartitioned checkpoint also includes partial data for the storage nodes of the different partitions.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2011
From: BEA SYSTEMS, INC.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 025986/0548 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2007
From: RICHARDS, MICHAEL; MACE, JAMES E.
To: BEA SYSTEMS, INC.
Reel/Frame 019788/0423 →
Continuity (2)
Provisional Application 60821621 · Aug 7, 2006
Related Publication 20080033927A1 · Feb 7, 2008