IP Library Granted Patent US 12,468,730
Granted Patent B1
US 12,468,730 · App. 17/937,435 · Granted Nov 11, 2025

Configuring replication across shards of scalable database tables for improved query performance

Inventors: Jan Engelsberg (Sammamish, WA); Saleem Mohideen (Saratoga, CA); Haritabh Gupta (Dublin, IE); Nanda Kaushik (Fremont, CA); Navaneetha Krishnan Thanka Nadar (Bothell, WA); Kiran Pillarisetty (Hayward, CA); Amit Krishnan (Santa Clara, CA); Awisha Makwana (Dublin, IE); Davor Prugovecki (Zagreb, HR); Murali Brahmadesam (Tiruchirappalli, TN); Gajanan Sharadchandra Chinchwadkar (Fremont, CA); Aravind Kumar Kumar (Sammamish, WA); Sanjay Shanthakumar (Newark, CA); Ahmad Mohammad Radi Ahmad Alsmair (Seattle, WA); Sambhavi Raghuraman (San Jose, CA); Praveen Kannan (San Jose, CA)
Assignee: Amazon Technologies, Inc.
G06F16/275G06F16/2282
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,468,730
App. No.
17/937,435
Granted
Nov 11, 2025
Kind
B1
Abstract

Replication of a client-managed table may be configured across shards of system-managed tables in a database system for improved query performance. A client-managed table may be identified to replicate as a complete copy of the table respectively collocated with two or more shards of one or more other system-managed tables. The complete copy may be stored in respective storage volumes of the two or more shards of the one or more other system-managed tables. Metadata for performing access requests at a database system may be updated to identify the client-managed table as collocated with the two or more shards of the one or more other system-managed tables.

Claims (37)

1 . A system, comprising:

at least one processor; and

a memory, storing program instructions that when executed by the at least one processor, cause the at least one processor to implement a database service, the database service configured to

identify a table out of a plurality of tables to replicate as a complete copy of the table respectively collocated with two or more shards of one or more other tables of the plurality of tables assigned to different, respective database nodes of the database service for performing access requests to different ones of the two or more shards, wherein a first one of the two or more shards stores different table data than a second one of the two or more shards;

store complete copies of the table in respective storage volumes for the two or more shards of the one or more other tables;

enable replication for the complete copy to replicate received changes to the table to the complete copies stored in the respective storage volumes for the two or more shards of the one or more other tables;

update metadata for performing access requests at the database system to identify the table as collocated with the two or more shards of the one or more other tables when planning performance of access requests with regard to the different, respective database nodes to access the different ones of the two or more shards; and

based, at least in part, on the updated metadata, direct an access request for both at least one shard of the two or more shards of the one or more other tables and the table to a query engine assigned to the respective storage volume that stores both the at least one shard and the complete copy of the table.

2 . The system of claim 1 , wherein to identify the table out of the plurality of tables to replicate as the complete copy of the table respectively collocated with the two or more shards of the one or more other tables of the plurality of tables, the database service is configured to identify the table according to a request to replicate the table across shards of the one or more other tables.

3 . The system of claim 1 , wherein to identify the table out of the plurality of tables to replicate as the complete copy of the table respectively collocated with the two or more shards of the one or more other tables of the plurality of tables, the database service is configured to evaluate a history of access requests received at the database system to identify the table.

4 . The system of claim 1 , wherein the access request is directed to a database node that implements the query engine by a router of the database service.

5 . A method, comprising:

identifying, by a database system, a client-managed table out of a plurality of tables in a database to replicate as a complete copy of the table respectively collocated with two or more shards of one or more other system-managed tables of the plurality of tables assigned to different, respective database nodes of the database system for performing access requests to different ones of the two or more shards, wherein a first one of the two or more shards stores different table data than a second one of the two or more shards;

storing, by the database system, the complete copy of the client-managed table in respective storage volumes for the two or more shards of the one or more other tables;

updating, by the database system, metadata for performing access requests at the database system to identify the client-managed table as collocated with the two or more shards of the one or more other system-managed tables at the different, respective database nodes to access the different ones of the two or more shards; and

based, at least in part, on the updated metadata, directing an access request for both at least one shard of the two or more shards of the one or more other system-managed tables and the client-managed table to a query engine assigned to the respective storage volume that stores both the at least one shard and the complete copy of the client-managed table.

6 . The method of claim 5 , wherein identifying the client-managed table out of the plurality of tables in the database to replicate as the complete copy of the client-managed table respectively collocated with the two or more shards of the one or more other system-managed tables of the plurality of tables comprises identifying the client-managed table according to a request to replicate the client-managed table across shards of the one or more other system-managed tables.

7 . The method of claim 5 , wherein identifying the client-managed table out of the plurality of tables in the database to replicate as the complete copy of the client-managed table respectively collocated with the two or more shards of the one or more other system-managed tables of the plurality of tables comprises evaluating a history of access requests received at the database system to identify the client-managed table.

8 . The method of claim 5 , wherein identifying the client-managed table out of the plurality of tables to replicate as the complete copy of the client-managed table respectively collocated with the two or more shards of the one or more other system-managed tables of the plurality of tables comprises selecting the two or more shards out of a plurality of shards of the one or more other system-managed tables.

9 . The method of claim 5 , wherein the access request is directed to a database node that implements the query engine by a router of the database system.

10 . The method of claim 5 , further comprising updating, by the database system, the complete copy of the client-managed table in the respective storage volumes for the two or more shards of the one or more other system-managed tables to include one or more updates to the client-managed table.

11 . The method of claim 6 , wherein updating the complete copy of the client-managed table in the respective storage volumes for the two or more shards of the one or more other system-managed tables to include the one or more updates to the client-managed table comprises:

performing, by a database node, assigned to the client-managed table in the metadata, the one or more updates to the client-managed table, wherein respective requests for the one or more updates are sent to the database node by a router of the database system; and

sending, by the database node, requests to update the client-managed table to other database nodes assigned to the two or more shards of the one or more other system managed tables according to the one or more updates.

12 . The method of claim 5 , wherein one of the two or more shards is a new shard added for the one or more other system-managed tables and wherein the complete copy of the client-managed table is automatically stored in the respective storage volume for the new shard after the new shard is added.

13 . The method of claim 5 , wherein a further one or more shards of the one or more other system-managed tables does not have a respectively stored complete copy of the client-managed table collocated with the further one or more shards.

14 . One or more non-transitory, computer-readable storage media, storing program instructions that when executed on or across one or more computing devices cause the one or more computing devices to implement:

identifying, by a database system, a client-managed table out of a plurality of tables in a database to replicate as a complete copy of the client-managed table respectively collocated with two or more shards of one or more other system-managed tables of the plurality of tables assigned to different, respective database nodes of the database system for performing access requests to different ones of the two or more shards, wherein a first one of the two or more shards stores different table data than a second one of the two or more shards;

storing, by the database system, the complete copy of the client-managed table in respective storage volumes for the two or more shards of the one or more other system-managed tables;

updating, by the database system, metadata for performing access requests at the database system to identify the client-managed table as collocated with the two or more shards of the one or more other system-managed tables at the different, respective database nodes to access the different ones of the two or more shards; and

based, at least in part, on the updated metadata, directing an access request for both at least one shard of the two or more shards of the system managed table and the client-managed table to a query engine assigned to the respective storage volume that stores both the at least one shard and the complete copy of the client-managed table.

15 . The one or more non-transitory, computer-readable storage media of claim 14 , wherein, in identifying the client-managed table out of the plurality of tables to replicate as the complete copy of the client-managed table respectively collocated with the two or more shards of the one or more other system-managed tables of the plurality of tables, the program instructions cause the one or more computing devices to implement identifying the client-managed table according to a request to replicate the client-managed table across shards of the one or more other system-managed tables.

16 . The one or more non-transitory, computer-readable storage media of claim 14 , wherein, in identifying the client-managed table out of the plurality of tables to replicate as the complete copy of the client-managed table respectively collocated with the two or more shards of the one or more other system-managed tables of the plurality of tables, the program instructions cause the one or more computing devices to implement evaluating a history of access requests received at the database system to identify the client-managed table.

17 . The one or more non-transitory, computer-readable storage media of claim 14 , wherein the access request is directed to a database node that implements the query engine by a router of the database system.

18 . The one or more non-transitory, computer-readable storage media of claim 14 , storing further program instructions that when executed on or across the one or more computing devices, cause the one or more computing devices to further implement updating, by the database system, the complete copy of the client-managed table in the respective storage volumes for the two or more shards of the one or more other system-managed tables to include one or more updates to the client-managed table.

19 . The one or more non-transitory, computer-readable storage media of claim 14 , wherein, in identifying the client-managed table out of the plurality of tables to replicate as the complete copy of the client-managed table respectively collocated with the two or more shards of the one or more other system-managed tables of the plurality of tables, the program instructions cause the one or more computing devices to implement selecting the two or more shards out of a plurality of shards of the one or more other system-managed tables.

20 . The one or more non-transitory, computer-readable storage media of claim 14 , wherein a further one or more shards of the one or more other system-managed tables does not have a respectively stored complete copy of the client-managed table collocated with the further one or more shards.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2024
From: ENGELSBERG, JAN; MOHIDEEN, SALEEM; GUPTA, HARITABH; KAUSHIK, NANDA; THANKA NADAR, NAVANEETHA KRISHNAN; PILLARISETTY, KIRAN; KRISHNAN, AMIT; MAKWANA, AWISHA; PRUGOVECKI, DAVOR; BRAHMADESAM, MURALI; CHINCHWADKAR, GAJANAN SHARADCHANDRA; KUMAR, ARAVIND KUMAR; SHANTHAKUMAR, SANJAY; ALSMAIR, AHMAD MOHAMMAD RADI AHMAD; RAGHURAMAN, SAMBHAVI; KANNAN, PRAVEEN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 067002/0718 →
References Cited (43)
US 1146803A · Larson · 1915 [cited by applicant]
US 7299378B2 · Chandrasekaran · 2007 [cited by applicant]
US 8228954B2 · Thubert · 2012 [cited by applicant]
US 8266101B1 · Shuai · 2012 [cited by applicant]
US 9501507B1 · Harris · 2016 [cited by applicant]
US 9575849B2 · Mittal · 2017 [cited by applicant]
US 9792315B2 · Goel · 2017 [cited by applicant]
US 10013449B1 · Xiao · 2018 [cited by applicant]
US 10255237B2 · Johnson · 2019 [cited by applicant]
US 10382445B1 · Mantel · 2019 [cited by applicant]
US 10909109B1 · Kambhampati · 2021 [cited by examiner]
US 10909143B1 · Brahmadesam · 2021 [cited by examiner]
US 11372856B2 · George · 2022 [cited by applicant]
US 11455290B1 · Brahmadesam · 2022 [cited by examiner]
US 11743325B1 · Dunsmore · 2023 [cited by applicant]
US 20020198858A1 · Stanley · 2002 [cited by applicant]
US 20030212650A1 · Adler · 2003 [cited by applicant]
US 20090077135A1 · Yalamanchi · 2009 [cited by applicant]
US 20090132471A1 · Brown · 2009 [cited by applicant]
US 20090132536A1 · Brown · 2009 [cited by applicant]
US 20090307287A1 · Barsness · 2009 [cited by applicant]
US 20100125584A1 · Navas · 2010 [cited by applicant]
US 20130080388A1 · Dwyer · 2013 [cited by applicant]
US 20150264523A1 · Xu · 2015 [cited by applicant]
US 20160171073A1 · Hattori · 2016 [cited by examiner]
US 20160350392A1 · Rice · 2016 [cited by examiner]
US 20170075965A1 · Liu · 2017 [cited by applicant]
US 20170103094A1 · Hu · 2017 [cited by examiner]
US 20170103116A1 · Hu · 2017 [cited by examiner]
US 20170177658A1 · Lee · 2017 [cited by applicant]
US 20170293635A1 · Peterson · 2017 [cited by applicant]
US 20180060395A1 · Pathak · 2018 [cited by applicant]
US 20210034605A1 · Cai · 2021 [cited by applicant]
US 20210103586A1 · Quamar · 2021 [cited by applicant]
US 20210173831A1 · Crabtree · 2021 [cited by applicant]
US 20210389883A1 · Derryberry · 2021 [cited by applicant]
US 20220229822A1 · Guo · 2022 [cited by applicant]
US 20230195744A1 · Owen · 2023 [cited by applicant]
US 20230385353A1 · Prateek · 2023 [cited by applicant]
U.S. Appl. No. 17/937,424, filed Sep. 30, 2022, Aravind Kumar, et al. [cited by applicant]
U.S. Appl. No. 17/937,430, filed Sep. 30, 2022, Alexandre Olegovich Verbitski, et al. [cited by applicant]
U.S. Appl. No. 17/937,434, filed Sep. 30, 2022, Saleem Mohideen, et al. [cited by applicant]
U.S. Appl. No. 17/937,426, filed Sep. 30, 2022, Saleem Mohideen, et al. [cited by applicant]