IP Library Granted Patent US 12,321,327
Granted Patent B2
US 12,321,327 · App. 18/152,414 · Granted Jun 3, 2025

Index splitting in distributed databases

Inventor: Yevgeniy Dashevsky (Bedford, MA)
Assignee: DASSAULT SYSTEMES SE
G06F16/2228G06F16/182G06F16/2315G06F16/24554H04L9/085
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,321,327
App. No.
18/152,414
Granted
Jun 3, 2025
Kind
B2
Abstract

In a distributed database, many nodes can store copies, or instances, of the same record. If the record is split on one node, it should be split on the other nodes to maintain consistency, concurrency, and correctness of the data in the distributed database. In some distributed databases, the records are locked during the update process to ensure data integrity. Unfortunately, locking the records can increase latency, especially for larger databases. But if the records aren't locked and a node fails as a record is being split and updated simultaneously, the split and update may not propagate throughout the distributed database, leading to a loss of data integrity. Exchanging messages about the status of record splitting and forwarding updates internally reduces the likelihood of a loss of data integrity due to a node failure.

Claims (49)

1. A method of splitting an index atom in a plurality of atoms in a distributed database, the distributed database comprising a plurality of nodes, each node in the plurality of nodes comprising a corresponding processor and a corresponding memory, the method comprising:

splitting, by a node in the plurality of nodes, a local instance of the index atom into a local instance of a source atom and a local instance of a target atom in response to instructions to split the index atom from a designated node in the plurality of nodes, the local instance of the source atom including values less than a split key value and the local instance of the target atom including values greater than the split key value;

after splitting the local instance of the index atom and before receiving a message indicating that every instance of the index atom stored in the distributed database has been split into a corresponding instance of the source atom and a corresponding instance of the target atom, maintaining data consistency across the distributed database when data is being inserted into the distributed database while the index atom is being split by:

receiving, by the node on the local instance of the source atom, a message referring to a key value greater than the split key value; and

forwarding, by the node, the message from the local instance of the source atom to the local instance of the target atom; and

tracking, by the node, progress with splitting the index atom by other nodes in the plurality of nodes with respective instances of the index atom, the tracking including receiving, by the node, “split applied all” messages from the other nodes indicating that every instance of the index atom has been split and a “split done” message from the designated node indicating that the designated node has received “split applied all” messages from every node in the plurality of nodes with an instance of the index atom,

wherein splitting the index atom ends when (1) every instance of the index atom has been split into a local instance of the source atom and a local instance of the target atom, (2) the nodes in the plurality of nodes with respective instances of the index atom are no longer forwarding messages, and (3) a root atom for the index atom has been modified to include a reference to the target atom.

2. The method of claim 1 , wherein the designated node is a chairman for the index atom.

3. The method of claim 2 , further comprising:

receiving, by the node, the instructions to split the index atom from each other node in the plurality of nodes.

4. The method of claim 2 , further comprising, before receiving the instructions to split the index atom from the chairman:

transmitting, by the node on the local instance of the index atom, a message referring to a key value greater than the split key value.

5. The method of claim 4 , further comprising, after splitting the local instance of the index atom:

transmitting, by the node on the local instance of the target atom, a message referring to a key value greater than the split key value.

6. The method of claim 1 , further comprising:

transmitting, by the node, a message indicating that the local instance of the index atom has been split into the local instance of the source atom and the local instance of the target atom to each other node in the plurality of nodes containing an instance of the index atom.

7. The method of claim 6 , wherein transmitting the message indicating that the local instance of the index atom has been split into the local instance of the source atom and the local instance of the target atom occurs after forwarding the message from the local instance of the source atom to the local instance of the target atom.

8. The method of claim 1 , further comprising:

receiving, by the node, a message from the designated node indicating that each instance of the index atom in the distributed database has been split; and

acknowledging, by the node, the message from the designated node.

9. The method of claim 8 , wherein receiving the message from the designated node and acknowledging the message from the designated node occur after forwarding the message from the local instance of the source atom to the local instance of the target atom.

10. The method of claim 1 , wherein tracking progress with splitting the index atom by the other nodes comprises receiving, by the node, a message from each of the other nodes indicating that the index atom has been split.

11. A node in a distributed database comprising a plurality of nodes,

the node comprising:

a processor;

a network interface operably coupled to the processor and configured to communicate with other nodes in the distributed database; and

a memory operably coupled to the processor and storing a local instance of an index atom and instructions, which, when executed by the processor, cause the node to:

split the local instance of the index atom into a local instance of a source atom and a local instance of a target atom in response to instructions to split the index atom from a designated node in the plurality of nodes, the local instance of the source atom including values less than a split key value and the local instance of the target atom including values greater than the split key value;

after splitting the local instance of the index atom and before receiving a message indicating that every instance of the index atom stored in the distributed database has been split into a corresponding instance of the source atom and a corresponding instance of the target atom, maintain data consistency across the distributed database when data is being inserted into the distributed database while the index atom is being split by:

forwarding a message received on the local instance of the source atom and referring to a key value greater than the split key value to the local instance of the target atom; and

tracking progress with splitting the index atom by other nodes in the plurality of nodes with respective instances of the index atom based on “split applied all” messages from the other nodes indicating that every instance of the index atom has been split and a “split done” message from the designated node indicating that the designated node has received “split applied all” messages from every node in the plurality of nodes with an instance of the index atom,

wherein the splitting the index atom ends when (1) every instance of the index atom has been split into a local instance of the source atom and a local instance of the target atom, (2) the nodes in the plurality of nodes with respective instances of the index atom are no longer forwarding messages, and (3) a root atom for the index atom has been modified to include a reference to the target atom.

12. The node of claim 11 , wherein the designated node is a chairman for the index atom.

13. The node of claim 12 , wherein the network interface is configured to receive the instructions to split the index atom from each other node in the distributed database.

14. The node of claim 12 , wherein the node is configured to, before receiving the instructions to split the index atom from the chairman, transmit a message referring to a key value greater than the split key value on the local instance of the index atom.

15. The node of claim 14 , wherein the node is further configured to, after splitting the local instance of the index atom, transmit a message referring to a key value greater than the split key value on the local instance of the target atom.

16. The node of claim 11 , wherein the node is configured to transmit a message indicating that the local instance of the index atom has been split into the local instance of the source atom and the local instance of the target atom to each other node in the distributed database containing an instance of the index atom.

17. The node of claim 11 , wherein the node is configured to receive a message from a chairman for the index atom indicating that each instance of the index atom in the distributed database has been split and to transmit an acknowledgement of the message from the chairman.

18. A method of splitting an index atom in a distributed database into a source atom including values less than a split key value and a target atom including values greater than the split key value, the distributed database comprising a plurality of nodes, each node in the plurality of nodes comprising a corresponding processor and a corresponding memory, the method comprising:

during a first stage, splitting, at each node in the plurality of nodes containing an instance of the index atom in response to instructions to split the index atom from a designated node in the plurality of nodes, the corresponding instance of the index atom into a corresponding instance of the source atom and a corresponding instance of the target atom;

during a second stage, forwarding, from the instances of the source atom to the respective instances of the target atom, messages referring to key values greater than the split key value to maintain data consistency across the distributed database when data is being inserted into the distributed database while the index atom is being split; and

tracking progress with splitting the index atom by each node in the plurality of nodes containing an instance of the index atom, the tracking including transmitting “split applied all” messages from each node in the plurality of nodes containing an instance of the index atom indicating that every instance of the index atom has been split and receiving a “split done” message from the designated node indicating that the designated node has received “split applied all” messages from every node in the plurality of nodes with an instance of the index atom,

wherein splitting the index atom ends when (1) every instance of the index atom has been split into a local instance of the source atom and a local instance of the target atom, (2) the nodes in the plurality of nodes with respective instances of the index atom are no longer forwarding messages, and (3) a root atom for the index atom has been modified to include a reference to the target atom.

19. The method of claim 18 , further comprising:

terminating the second stage in response to each instance of the index atom in the distributed database being split into corresponding instances of the source atom and the target atom.

20. The method of claim 18 , further comprising, during the second stage:

addressing messages referring to key values greater than the split key value to the source atom.

21. The method of claim 18 , further comprising, after termination of the second stage:

addressing messages referring to key values greater than the split key value to the target atom.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2024
From: NUODB, INC.
To: DASSAULT SYSTEMES SE
Reel/Frame 068299/0883 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2023
From: DASHEVSKY, YEVGENIY
To: NUODB, INC.
Reel/Frame 062397/0894 →
Continuity (3)
Continuation 16639390
Provisional Application 62545791 · Aug 15, 2017
Related Publication 20230161747A1 · May 25, 2023
References Cited (181)
US 4733353A · Jaswa · 1988 [cited by applicant]
US 4853843A · Ecklund · 1989 [cited by applicant]
US 5446887A · Berkowitz · 1995 [cited by applicant]
US 5524240A · Barbara et al. · 1996 [cited by applicant]
US 5555404A · Torbjornsen et al. · 1996 [cited by applicant]
US 5568638A · Hayashi et al. · 1996 [cited by applicant]
US 5625815A · Maier et al. · 1997 [cited by applicant]
US 5701467A · Freeston · 1997 [cited by applicant]
US 5764877A · Lomet et al. · 1998 [cited by applicant]
US 5806065A · Lomet · 1998 [cited by applicant]
US 5960194A · Choy et al. · 1999 [cited by applicant]
US 6216151B1 · Antoun · 2001 [cited by applicant]
US 6226650B1 · Mahajan et al. · 2001 [cited by applicant]
US 6275863B1 · Leff et al. · 2001 [cited by applicant]
US 6334125B1 · Johnson et al. · 2001 [cited by applicant]
US 6401096B1 · Zellweger · 2002 [cited by applicant]
US 6424967B1 · Johnson et al. · 2002 [cited by applicant]
US 6480857B1 · Chandler · 2002 [cited by applicant]
US 6499036B1 · Gurevich · 2002 [cited by applicant]
US 6523036B1 · Hickman et al. · 2003 [cited by applicant]
US 6748394B2 · Shah et al. · 2004 [cited by applicant]
US 6792432B1 · Kodavalla et al. · 2004 [cited by applicant]
US 6862589B2 · Grant · 2005 [cited by applicant]
US 7026043B2 · Jander · 2006 [cited by applicant]
US 7080083B2 · Kim et al. · 2006 [cited by applicant]
US 7096216B2 · Anonsen · 2006 [cited by applicant]
US 7184421B1 · Liu et al. · 2007 [cited by applicant]
US 7219102B2 · Zhou et al. · 2007 [cited by applicant]
US 7233960B1 · Boris et al. · 2007 [cited by applicant]
US 7293039B1 · Deshmukh et al. · 2007 [cited by applicant]
US 7353227B2 · Wu · 2008 [cited by applicant]
US 7395352B1 · Lam et al. · 2008 [cited by applicant]
US 7401094B1 · Kesler · 2008 [cited by applicant]
US 7403948B2 · Ghoneimy et al. · 2008 [cited by applicant]
US 7562102B1 · Sumner et al. · 2009 [cited by applicant]
US 7853624B2 · Friedlander et al. · 2010 [cited by applicant]
US 7890508B2 · Gerber et al. · 2011 [cited by applicant]
US 8108343B2 · Wang et al. · 2012 [cited by applicant]
US 8122201B1 · Marshak et al. · 2012 [cited by applicant]
US 8224860B2 · Starkey · 2012 [cited by applicant]
US 8266122B1 · Newcombe et al. · 2012 [cited by applicant]
US 8504523B2 · Starkey · 2013 [cited by applicant]
US 8756237B2 · Stillerman et al. · 2014 [cited by applicant]
US 8930312B1 · Rath et al. · 2015 [cited by applicant]
US 9008316B2 · Acar et al. · 2015 [cited by applicant]
US 9501363B1 · Ottavio · 2016 [cited by applicant]
US 9734021B1 · Sanocki et al. · 2017 [cited by applicant]
US 9824095B1 · Taylor et al. · 2017 [cited by applicant]
US 10067969B2 · Rice et al. · 2018 [cited by applicant]
US 10740323B1 · Palmer et al. · 2020 [cited by applicant]
US 11176111B2 · Palmer et al. · 2021 [cited by applicant]
US 11561961B2 · Palmer et al. · 2023 [cited by applicant]
US 11573940B2 · Dashevsky · 2023 [cited by applicant]
US 20020112054A1 · Jatanaka · 2002 [cited by applicant]
US 20020152261A1 · Arkin et al. · 2002 [cited by applicant]
US 20020152262A1 · Arkin et al. · 2002 [cited by applicant]
US 20020178162A1 · Ulrich et al. · 2002 [cited by applicant]
US 20030051021A1 · Hirschfeld et al. · 2003 [cited by applicant]
US 20030149709A1 · Banks · 2003 [cited by applicant]
US 20030204486A1 · Berks et al. · 2003 [cited by applicant]
US 20030220935A1 · Vivian et al. · 2003 [cited by applicant]
US 20040153459A1 · Whitten et al. · 2004 [cited by applicant]
US 20040263644A1 · Ebi · 2004 [cited by applicant]
US 20050013208A1 · Hirabayashi et al. · 2005 [cited by applicant]
US 20050086384A1 · Emst · 2005 [cited by applicant]
US 20050198062A1 · Shapiro · 2005 [cited by applicant]
US 20050216502A1 · Kaura et al. · 2005 [cited by applicant]
US 20060010130A1 · Leff et al. · 2006 [cited by applicant]
US 20060168154A1 · Zhang et al. · 2006 [cited by applicant]
US 20070067349A1 · Jhaveri et al. · 2007 [cited by applicant]
US 20070156842A1 · Vermeulen et al. · 2007 [cited by applicant]
US 20070288526A1 · Mankad et al. · 2007 [cited by applicant]
US 20080086470A1 · Graefe · 2008 [cited by applicant]
US 20080106548A1 · Singer · 2008 [cited by applicant]
US 20080228795A1 · Lomet · 2008 [cited by applicant]
US 20080320038A1 · Liege · 2008 [cited by applicant]
US 20090113431A1 · Whyte · 2009 [cited by applicant]
US 20100094802A1 · Luotojarvi et al. · 2010 [cited by applicant]
US 20100115246A1 · Seshadri et al. · 2010 [cited by applicant]
US 20100153349A1 · Schroth et al. · 2010 [cited by applicant]
US 20100191884A1 · Holenstein et al. · 2010 [cited by applicant]
US 20100235606A1 · Oreland et al. · 2010 [cited by applicant]
US 20100297565A1 · Waters et al. · 2010 [cited by applicant]
US 20110087874A1 · Timashev et al. · 2011 [cited by applicant]
US 20110231447A1 · Starkey · 2011 [cited by examiner]
US 20120136904A1 · Ravi · 2012 [cited by applicant]
US 20120254175A1 · Horowitz et al. · 2012 [cited by applicant]
US 20130060922A1 · Koponen et al. · 2013 [cited by applicant]
US 20130086018A1 · Horii · 2013 [cited by applicant]
US 20130110766A1 · Promhouse et al. · 2013 [cited by applicant]
US 20130110774A1 · Shah et al. · 2013 [cited by applicant]
US 20130110781A1 · Golab et al. · 2013 [cited by applicant]
US 20130124467A1 · Naidu et al. · 2013 [cited by applicant]
US 20130159265A1 · Peh et al. · 2013 [cited by applicant]
US 20130159366A1 · Lyle et al. · 2013 [cited by applicant]
US 20130232378A1 · Resch et al. · 2013 [cited by applicant]
US 20130259234A1 · Acar et al. · 2013 [cited by applicant]
US 20130262403A1 · Milousheff et al. · 2013 [cited by applicant]
US 20130278412A1 · Kelly et al. · 2013 [cited by applicant]
US 20130297565A1 · Starkey · 2013 [cited by applicant]
US 20130311426A1 · Erdogan et al. · 2013 [cited by applicant]
US 20140108414A1 · Stillerman et al. · 2014 [cited by applicant]
US 20140258300A1 · Baeumges et al. · 2014 [cited by applicant]
US 20140279881A1 · Tan et al. · 2014 [cited by applicant]
US 20140297676A1 · Bhatia et al. · 2014 [cited by applicant]
US 20140304306A1 · Proctor et al. · 2014 [cited by applicant]
US 20150019739A1 · Attaluri et al. · 2015 [cited by applicant]
US 20150032695A1 · Tran et al. · 2015 [cited by applicant]
US 20150066858A1 · Sabdar et al. · 2015 [cited by applicant]
US 20150135255A1 · Theimer et al. · 2015 [cited by applicant]
US 20150370505A1 · Shuma et al. · 2015 [cited by applicant]
US 20160134490A1 · Balasubramanyan et al. · 2016 [cited by applicant]
US 20160350392A1 · Rice · 2016 [cited by examiner]
US 20160371355A1 · Massari et al. · 2016 [cited by applicant]
US 20170039099A1 · Ottavio · 2017 [cited by applicant]
US 20170139910A1 · Mcalister et al. · 2017 [cited by applicant]
US 20170212680A1 · Waghulde · 2017 [cited by applicant]
US 20220035786A1 · Palmer et al. · 2022 [cited by applicant]
CN 101395602A · 2009 [cited by applicant]
CN 101471845A · 2009 [cited by applicant]
CN 101251843B · 2010 [cited by applicant]
CN 101268439B · 2012 [cited by applicant]
EA 002931B1 · 2002 [cited by applicant]
EP 1403782A2 · 2004 [cited by applicant]
JP 2003256256A · 2003 [cited by applicant]
JP 2006048507A · 2006 [cited by applicant]
JP 2007058275A · 2007 [cited by applicant]
RU 2315349C1 · 2008 [cited by applicant]
RU 2008106904A · 2009 [cited by applicant]
WO 2010034608A1 · 2010 [cited by applicant]
“Album Closing Policy,” Background, retrieved from the Internet at URL:http://tools/wiki/display/ENG/Album+Closing+Policy (Jan. 29, 2015), 4 pp. [cited by applicant]
“Distributed Coordination in NuoDB,” YouTube, retrieved from the Internet at URL:https://www.youtube.com/watch?feature=player_embedded&v=URoeHvflVKg on Feb. 4, 2015, 2 pp. [cited by applicant]
“Durable Distributed Cache Architecture”, retrieved from the Internet at URL: http://www.nuodb.com/explore/newsql-cloud-database-ddc-architecture on Feb. 4, 2015, 3 pages. [cited by applicant]
“Glossary—NuoDB 2.1 Documentation / NuoDB,” retrieved from the Internet at URL: http://doc.nuodb.com/display/doc/Glossary on Feb. 4, 2015, 1 pp. [cited by applicant]
“How It Works,” retrieved from the Internet at URL: http://www.nuodb.com/explore/newsql-cloud-database-how-it-works?mkt_tok=3RkMMJW on Feb. 4, 2015, 4 pp. [cited by applicant]
“How to Eliminate MySQL Performance Issues,” NuoDB Technical Whitepaper, Sep. 10, 2014, Version 1, 11 pp. [cited by applicant]
“Hybrid Transaction and Analytical Processing with NuoDB,” NuoDB Technical Whitepaper, Nov. 5, 2014, Version 1, 13 pp. [cited by applicant]
“No Knobs Administration,” retrieved from the Internet at URL: http://www.nuodb.com/explore/newsql-cloud-database-product/auto-administration on Feb. 4, 2015, 4 pp. [cited by applicant]
“NuoDB at a Glance,” retrieved from the Internet at URL: http://doc.nuodb.com/display/doc/NuoDB+at+a+Glance on Feb. 4, 2015, 1 pp. [cited by applicant]
“SnapShot Albums,” Transaction Ordering, retrieved from the Internet at URL:http://tools/wiki/display/ENG/Snapshot+Albums (Aug. 12, 2014), 4 pp. [cited by applicant]
“Table Partitioning and Storage Groups (TPSG),” Architect's Overview, NuoDB Technical Design Document, Version 2.0 (2014), 12 pp. [cited by applicant]
“The Architecture & Motivation for NuoDB,” NuoDB Technical Whitepaper, Oct. 5, 2014, Version 1, 27 pp. [cited by applicant]
“Welcome to NuoDB Swifts Release 2.1 GA,” retrieved from the Internet at URL: http://dev.nuodb.com/techblog/welcome-nuodb-swifts-release-21-ga on Feb. 4, 2015, 7 pp. [cited by applicant]
“What Is a Distributed Database? and Why Do You Need One,” NuoDB Technical Whitepaper, Jan. 23, 2014, Version 1, 9 pp. [cited by applicant]
Advisory Action issued by The United States Patent and Trademark Office for U.S. Appl. No. 14/215,461, mailed Jan. 10, 2017, 9 pages. [cited by applicant]
Advisory Action mailed May 2, 2018 for U.S. Appl. No. 14/215,461, 8 pages. [cited by applicant]
Amazon CloudWatch Developer Guide API, Create Alarms That or Terminate an Instance, Jan. 2013, downloaded Nov. 16, 2016 from archive.org., pp. 1-11. [cited by applicant]
Amazon RDS FAQs, Oct. 4, 2012, 39 pages. [cited by applicant]
Bergsten et al., “Overview of Parallel Architectures for Databases,” The Computer Journal vol. 36, No. 8, pp. 734-740 (1993). [cited by applicant]
Connectivity Testing with Ping, Telnet, Trace Route and NSlookup (hereafter help.webcontrolcenter), Article ID:1757, Created: Jun. 17, 2013 at 10:45 a.m., https://help.webcontrolcenter.com/kb/a1757/connectivity-testing-… [cited by applicant]
Dan et al., “Performance Comparisons of Buffer Coherency Policies,” Proceedings of the International Conference on Distributed Computer Systems, IEEE Comp. Soc. Press vol. 11, pp. 208-217 (1991). [cited by applicant]
Extended European Search Report in European Patent Application No. 18845799.8 dated May 25, 2021, 8 pages. [cited by applicant]
Final Office Action dated Nov. 24, 2017 from U.S. Appl. No. 14/215,401, 33 pages. [cited by applicant]
Final Office Action dated Nov. 3, 2016 from U.S. Appl. No. 14/215,401, 36 pp. [cited by applicant]
Final Office Action dated Sep. 9, 2016 from U.S. Appl. No. 14/215,461, 26 pp. [cited by applicant]
Final Office Action mailed Jan. 10, 2018 from U.S. Appl. No. 14/215,461, 30 pages. [cited by applicant]
Garding, P. “Alerting on Database Mirorring Events,” Apr. 7, 2006, downloaded Dec. 6, 2016 from technet.microsoft.com, 24 pp. [cited by applicant]
Hull, Autoscaling MySQL on Amazon EC2, Apr. 9, 2012, 7 pages. [cited by applicant]
International Search Report and Written Opinion in International Patent Application No. PCT/US18/00142 mailed Dec. 13, 2018. 11 pages. [cited by applicant]
Iqbal et al., “Performance Tradeoffs in Static and Dynamic Load Balancing Strategies,” Institute for Computer Applications in Science and Engineering, 1986, pp. 1-23. [cited by applicant]
Leverenz et al., “Oracle8i Concepts, Partitioned Tables and Indexes,” Chapter 11, pp. 11-12-11/66 (1999). [cited by applicant]
Non-Final Office Action dated Jan. 21, 2016 from U.S. Appl. No. 14/215,401, 19 pp. [cited by applicant]
Non-Final Office Action dated May 31, 2017 from U.S. Appl. No. 14/215,401, 27 pp. [cited by applicant]
Non-Final Office Action mailed Jun. 1, 2017 from U.S. Appl. No. 14/215,461, 21 pp. [cited by applicant]
Office Action with translation in Korean Application No. 10-2020-7006901 dated Dec. 16, 2022, 30 pages. [cited by applicant]
Oracle Database Concepts 10g Release 2 (10.2), Oct. 2005, 14 pages. [cited by applicant]
Rahimi, S. K. et al., “Distributed Database Management Systems: A Practical Approach,” IEEE Computer Society, John Wiley & Sons, Inc. Publications (2010), 765 pp. [cited by applicant]
Roy, N. et al., “Efficient Autoscaling in the Cloud using Predictive Models for Workload Forecasting,” IEEE 4th International Conference on Cloud Computing, 2011, pp. 500-507. [cited by applicant]
Searchcloudapplications.techtarget.com, Autoscaling Definition, Aug. 2012, 1 page. [cited by applicant]
Shaull, R. et al., “A Modular and Efficient Past State System for Berkeley DB,” Proceedings of USENIX ATC '14:2014 USENIX Annual Technical Conference, 13 pp. (Jun. 19-20, 2014). [cited by applicant]
Shaull, R., “Retro: A Methodology for Retrospection Everywhere,” A Dissertation Presented to the Faculty of the Graduate School of Arts and Sciences of Brandeis University, Waltham, Massachusetts, Aug. 2013, 174 pp. [cited by applicant]
Veerman, G. et al., “Database Load Balancing, MySQL 5.5 vs PostgreSQL 9.1,” Universiteit van Amsterdam, System & Network Engineering, Apr. 2, 2012, 51 pp. [cited by applicant]
Yousif, M. “Shared-Storage Clusters,” Cluster Computing, Baltzer Science Publishers, Bussum, NL, vol. 2, No. 4, pp. 249-257 (1999). [cited by applicant]
Office Action (Rejection) with translation in Korean Application No. 10-2020-7006901 dated Jun. 14, 2023, 13 pages. [cited by applicant]
Office Action in Chinese Application No. 201880056617.1 with translation dated May 4, 2023, 27 pages. [cited by applicant]
Office Action In European Application No. 18845799.8 dated Jun. 12, 2023, 7 pages. [cited by applicant]
Weng, et al. “Implementation of distributed index in cluster environment.” (with abstract) Journal of Computer Applications 36.1 (2016): 10 pages. [cited by applicant]
Zhang et al. Distributed Spatial Data Transfer with oraclespatial, Science and Technology Information, 2011, 3 pages (Attached to Chinese Office Action dated May 4, 2023). [cited by applicant]
Office Action with translation in Vietnam App. 1-2020-01249 Apr. 24, 2024, 3 pages. [cited by applicant]
Office Action (Second) with Search Report in Chinese Application No. 201880056617.1 with translation dated Feb. 21, 2024, 39 pages. [cited by applicant]
Sedgwick, Algorithms in C++ Parts 1-4 Fundamentals, Data Structures, Sorting, Searching, China Electric Power Press, 3rd edition, Feb. 29, 2004, 12 pages. [cited by applicant]