System and method for conditionally updating an item with attribute granularity

US9507818B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9507818-B1
Application numberUS-201314092779-A
CountryUS
Kind codeB1
Filing dateNov 27, 2013
Priority dateJun 27, 2011
Publication dateNov 29, 2016
Grant dateNov 29, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A system that implements a scaleable data storage service may maintain tables in a non-relational data store on behalf of clients. Each table may include multiple items. Each item may include one or more attributes, each containing a name-value pair. Attribute values may be scalars or sets of numbers or strings. The system may provide an API usable to request that values of one or more of an item's attributes be updated. An update request may be conditional on expected values of one or more item attributes (e.g., the same or different item attributes). In response to a request to update the values of one or more item attributes, the previous values and/or updated values may be optionally returned for the updated item attributes or for all attributes of an item targeted by an update request. Items stored in tables may be indexed using a simple or composite primary key.

First claim

Opening claim text (preview).

What is claimed is: 1. A system, comprising: a plurality of computing nodes, each comprising at least one processor and memory, wherein the plurality of computing nodes is configured to implement a data storage service; wherein the data storage service is configured to store items on behalf of storage service clients, wherein the items are stored in tables in a non-relational data store; wherein the data storage service is configured to implement a network-based interface through which service requests are received; wherein the data storage service is configured to implement a storage engine for the non-relational data store, the storage engine configured to: receive, via the network-based interface, a service request to conditionally update a particular item that is stored in a given table, wherein the service request comprises an expected condition for the particular item, and wherein the service request further comprises a primary key that uniquely identifies the particular item in the given table, wherein the service request is formatted according to the network-based interface; in response to receiving the service request: access the particular item according to the primary key in the service request; evaluate the particular item according to the expected condition in the service request, wherein the evaluation determines that the expected condition for the particular item is met; and in response to the determination that the expected condition for the particular item is met, update the particular item according to the service request, wherein the particular item is not updated if the expected condition for the particular item is not met. 2. The system of claim 1 , wherein the expected condition for the particular item specifies a current value of a numeric attribute of the particular item; wherein to update the particular item according to the service request, the data storage service is configured to atomically increment or decrement the current value of the numeric attribute by an amount indicated in the service request. 3. The system of claim 1 , wherein the expected condition for the particular item specifies a current value of an attribute of the particular item; wherein to update the particular item according to the request, the data storage service is configured to replace the current value with a different value specified in the service request. 4. The system of claim 1 , wherein the expected condition for the particular item expected condition for the particular item specifies that the particular item exists; and wherein to update the particular item according to the service request, the data storage service is configured to insert the particular item into the given table of the non-relational data store. 5. A method, comprising: performing, by one or more computers that comprise one or more processors: receiving, at a storage engine for a non-relational data store, a request to update a particular item, wherein the particular item is stored in a given table in the non-relational data store, wherein the request comprises an expected condition for the particular item to be evaluated prior to updating the particular item, wherein the request further comprises a primary key that uniquely identifies the particular item in the given table, and wherein the request is formatted according to an interface for the non-relational data store; in response to said receiving: accessing, at the storage engine, the particular item according to the primary key in the request; evaluating, at the storage engine, the particular item according to the expected condition in the request, comprising determining that the expected condition for the particular item is met; and in response to said determining that the expected condition for the particular item is met, updating, at the storage engine, the particular item according to the request, wherein the particular item is not updated if the expected condition for the particular item is not met. 6. The method of claim 5 , wherein the expected condition for the particular item specifies a current value of a numeric attribute of the particular item; and wherein said updating the particular item according to the request comprises incrementing or decrementing the current value of the numeric attribute by an amount indicated in the request. 7. The method of claim 6 , wherein incrementing or decrementing the current value of the numeric attribute is performed atomically. 8. The method of claim 5 , wherein the expected condition for the particular item specifies a current value of an attribute of the particular item; wherein said updating the particular item according to the request comprises replacing the current value of the attribute with a different value specified in the request. 9. The method of claim 5 , wherein the expected condition for the particular item specifies that an attribute of the particular item exists; wherein said updating the particular item according to the request comprises deleting the attribute from the particular item. 10. The method of claim 5 , wherein the expected condition for the particular item specifies that an attribute of the particular item does not exist; wherein said updating the particular item according to the request comprises adding the attribute to the particular item. 11. The method of claim 5 , wherein the expected condition for the particular item specifies that the particular item exists; and wherein said updating the particular item according to the request comprises inserting the particular item into the given table of the non-relational data store. 12. The method of claim 5 , further comprising: wherein the particular item comprises a plurality of attributes, wherein the request specifies an update to one or more of the attributes; returning one or more of: a current value of one or more attributes prior to being updated, an updated value of the one or more attributes subsequent to being updated, current values of all of the plurality of attributes of the particular item prior to the one or more attributes being updated, or updated values of all of the attributes of the particular item subsequent to the one or more attributes being updated. 13. The method of claim 5 , wherein the particular item comprises a plurality of attributes, wherein the expected condition for the particular item specifies a respective condition for each of two or more attributes of the particular item; wherein said determining that the expected condition for the particular item is met, comprises determining that the respective conditions for the two or more attributes are met. 14. A non-transitory, computer-readable storage medium storing program instructions that when executed on one or more computers cause the one or more computers to implement a storage engine for a non-relational data store, wherein the storage engine is configured to perform: receiving a request to update a particular item, wherein the particular item is stored in a given one of a plurality of tables that are maintained in the non-relational data store on behalf of one or more storage service clients, wherein the request comprises an expected condition for the particular item to be evaluated prior to updating the particular item, and wherein the request further comprises a primary key that uniquely identifies the particular item in the given table, wherein the request is formatted according to an interface for the non-relational data store; in response to said receiving: accessing the particular item according to the primary key in the request; evalua

Assignees

Inventors

Classifications

  • Data partitioning, e.g. horizontal or vertical partitioning · CPC title

  • G06F16/235Primary

    Update request formulation · CPC title

  • Ensuring data consistency and integrity · CPC title

  • Physics · mapped topic

  • Physics · mapped topic

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9507818B1 cover?
A system that implements a scaleable data storage service may maintain tables in a non-relational data store on behalf of clients. Each table may include multiple items. Each item may include one or more attributes, each containing a name-value pair. Attribute values may be scalars or sets of numbers or strings. The system may provide an API usable to request that values of one or more of an it…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/235. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 29 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).