US 12,093,276 B1
Emulating a non-relational database on a relational database with a distributed data store
Andrew James Whitaker, Seattle, WA (US); Pravin Mittal, Redmond, WA (US); Stefano Stefani, Issaquah, WA (US); Kanishka Chaturvedi, Seattle, WA (US); Maruthi Manohar Reddy Devarenti, Seattle, WA (US); Dhruv Goel, Seattle, WA (US); Rajesh Iyer, Bellevue, WA (US); Nitin Ahuja, Vancouver (CA); Nilanjan Basu, Renton, WA (US); Pushap Goyal, Seattle, WA (US); Abhilash Reddy Koppula, Seattle, WA (US); VamsiKrishna Chaitanya Manchem, Kirkland, WA (US); Lishi Jiang, Bellevue, WA (US); Abhijeet Pandurang More, Seattle, WA (US); Hong Yang, Seattle, WA (US); Sandeep Bhatia, Bothell, WA (US); and Ming-Chuan Wu, Bellevue, WA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Nov. 23, 2018, as Appl. No. 16/199,039.
Int. Cl. G06F 16/25 (2019.01); G06F 16/21 (2019.01); G06F 16/2453 (2019.01); G06F 16/93 (2019.01)
CPC G06F 16/252 (2019.01) [G06F 16/21 (2019.01); G06F 16/24542 (2019.01); G06F 16/258 (2019.01); G06F 16/93 (2019.01)] 20 Claims
OG exemplary drawing
 
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 engine head node, wherein the database engine head node implements a relational database engine;
wherein the database engine head node is configured to:
store document database data in one or more relational database table columns of a relational database table, wherein the one or more relational database table columns are of a non-relational data type and the document database data comprises content of a document stored in a non-relational data format;
receive a request to access the document database data stored in the one or more relational database table columns of the relational database table accessible through the relational database engine, wherein the request is received via an interface native to a document database engine, and wherein the request is specified in a first communication format of the document database engine;
translate the request, wherein the request is translated from the first communication format to a second communication format of the relational database engine, according to an interface native to the relational database engine implemented at the database engine head node;
based on an index for the relational database table generated at least in part according to information in the one or more relational database table columns of a non-relational data type, generate, by the relational database engine, a query plan to perform the request, wherein the query plan includes a projection operation identified by the relational database engine for accessing the non-relational data type to return a subset of the document;
execute the query plan by the relational database engine, wherein the execution sends, by the relational database engine, one or more network requests to one or more storage nodes of a distributed data store to access the document database data having the non-relational data format stored in the one or more relational database table columns of the non-relational data type as part of performing the translated request; and
return a response to the request via the interface native to the document database engine based, at least in part, on the performance of the translated request.