摘要:
An update to a primary table is received. The primary table is read to determine the set of rows to be updated. The primary table is updated and XML objects stored in XML columns are overwritten according to the update. A pre-update node table comprising the nodes corresponding to the updated rows is created from an XML index table corresponding to the primary table. A post-update node table is created by shedding the updated XML objects. The post-update table and the pre-update table are merged according to their node identifiers. The resulting merged table can be inspected to determine which nodes have been, added, deleted, or updated. Based on this inspection, the necessary additions and deletions can be efficiently made to the XML index table.
摘要:
An update to a primary table is received. The primary table is read to determine the set of rows to be updated. The primary table is updated and XML objects stored in XML columns are overwritten according to the update. A pre-update node table comprising the nodes corresponding to the updated rows is created from an XML index table corresponding to the primary table. A post-update node table is created by shredding the updated XML objects. The post-update table and the pre-update table are merged according to their node identifiers. The resulting merged table can be inspected to determine which nodes have been, added, deleted, or updated. Based on this inspection, the necessary additions and deletions can be efficiently made to the XML index table.
摘要:
Several embodiments of the present invention are directed to systems and methods for extending the UDT framework of an extended relational data store (ERDS) to include support for unordered collections (multisets) and ordered collection (lists). More specifically, several embodiments of the present invention use an UDT infrastructure, CLR generics, and a new UNNEST operator to create and utilize a special type abstraction for collections that is simultaneously a scalar and a relation. As a scalar, this collection type can be processed by all parts of the data store engine that understand scalars (including but not limited to the client stack) and, as a relation, this collection type is queriable like any other type of relation.
摘要:
Several embodiments of the present invention are directed to systems and methods for extending the UDT framework of an extended relational data store (ERDS) to include support for unordered collections (multisets) and ordered collection (lists). More specifically, several embodiments of the present invention use an UDT infrastructure, CLR generics, and a new UNNEST operator to create and utilize a special type abstraction for collections that is simultaneously a scalar and a relation. As a scalar, this collection type can be processed by all parts of the data store engine that understand scalars (including but not limited to the client stack) and, as a relation, this collection type is queriable like any other type of relation.
摘要:
A system that implements a scaleable data storage service may maintain tables in a non-relational data store on behalf of service clients. Each table may include multiple items. Each item may include one or more attributes, each containing a name-value pair. The system may provide an API through which clients can query tables maintained by the service. Items may be partitioned and indexed in a table according to a simple or composite primary key contained in all items in the table. A composite primary key may include a hash key attribute, and a range key attribute. The range key attribute may be usable to order items having the same hash key attribute value, and to partition them dependent on a range of range key attribute values. A query request may specify a logical or mathematical expression dependent on range key attribute values and may be directed to multiple partitions.
摘要:
Disclosed are various embodiments for distributing data items within a plurality of nodes. A data item update request is replicated from a master node in a plurality of nodes to a plurality of slave nodes within the plurality of nodes. The replicated data item update request is determined to be locality-based durable. Responsive to the determination that the replicated data item update request is locality-based durable, the data item update request is confirmed to a client, wherein the client had originated the data item update request. Upon failover of the master node to another node within the plurality of nodes, a fault-tolerant failover quorum ensures that all previously confirmed updates are found and recognized by the new master node.
摘要:
A system that implements a scalable data storage service may maintain tables in a non-relational data store on behalf of clients. The system may provide a Web services interface through which service requests are received, and an API usable to request that a table be created, deleted, or described; that an item be stored, retrieved, deleted, or its attributes modified; or that a table be queried (or scanned) with filtered items and/or their attributes returned. An asynchronous workflow may be invoked to create or delete a table. Items stored in tables may be partitioned and indexed using a simple or composite primary key. The system may not impose pre-defined limits on table size, and may employ a flexible schema. The service may provide a best-effort or committed throughput model. The system may automatically scale and/or re-partition tables in response to detecting workload changes, node failures, or other conditions or anomalies.
摘要:
Disclosed are systems and methods for optimization and efficient processing of MERGE statements. MERGE allows performing a mix of inserts, updates, and deletes in a single statement, and introduces new challenges compared to legacy DML statements, where the kind of action to be performed is hard-coded and known at compile time. Such optimizations may include Halloween Protection detection for MERGE statements, optimized prevention of non-deterministic MERGE statements, in-place inserts for MERGE statements scanning the “Read Instance” of the target table, and optimized execution of MERGE statements seeking the “Read Instance” of the target table. Such optimizations may be fundamental in order to ensure proper performance and reliable processing times.
摘要:
A system and method for facilitating secure access to database(s) is provided. The system relates to authorizing discriminatory access to relational database data. More particularly, the invention provides for an innovative technique of defining secured access to rows in relational database tables in a way that cannot be spoofed while preserving various optimization techniques. The invention affords a persistent scheme via providing for a security architecture whereby discriminatory access policies on persistent entities can be defined and enforced while preserving set based associative query capabilities. A particular aspect of the invention relates to the specification of such policies and the technique by which those policies are enforced. With respect to one particular implementation of the invention, creation, modification and deletion of access control lists called security descriptors is provided. The security descriptors can be provisioned independent of rows in tables of the database and can be shared and embody the policy on what permissions are granted to whom when associated with a row.
摘要:
Disclosed are various embodiments for reducing locking in a distributed data store that includes a primary data store and one or more secondary data stores. An update to a data item that is to be applied to the distributed data store is obtained in one or more computing devices. The update is applied to a cached version of the data item when a lock is held. The update is replicated to the one or more data stores after the lock is released. It is determined that the update is durably persisted in the distributed data store after obtaining a replication confirmation from each of at least a predetermined number of the secondary data stores.