Abstract
Described herein are storage systems, computer readable mediums, and methods for overcoming size limit storage limitations associated with storage systems. Processed transactions may be removed from an object so that input data may be stored at the object. In some implementations, the storage system removes the processed transactions from the object once a section of the object includes a threshold amount of data, and stores the processed transactions at a transaction datastore. Once the processed transactions have been removed from the object, the storage system may store the input data at the object.
Claims
-
A system comprising:
a processor; and
a memory device communicatively coupled to the processor, the memory device storing instructions which when executed by the processor, cause the processor to:
access input data comprising a unit of data processing resulting from a transaction request, the input data having a first data size;
determine a memory associated with an object, the object including:
a first section including one or more processed transactions, the one or more processed transactions having a second data size representing a quantity of data of the one or more processed transactions stored at the first section; and
a second section including a value associated with the one or more processed transactions and having a third data size, the object having a fourth data size being a sum of the second data size and the third data size;
in response to a sum of the first data size and the fourth data size being equal to or greater than a threshold amount:
generate a historical transaction from the one or more processed transactions to result in a historical transaction data size equal to the second data size;
store the historical transaction at a transaction datastore at one or more memory locations of the memory device, the transaction datastore having the second data size;
remove the one or more processed transactions having the second data size from the first section of the object to reduce the fourth data size by the second data size;
insert the input data into the first section of the object to increase the fourth data size by the first data size; and
using the input data, update the value of the second section of the object; and
in response to the sum of the first data size and the fourth data size being less than the threshold amount:
insert the input data into the first section of the object to increase the second data size by the first data size; and
using the input data, update the value of the second section of the object.
-
The system of claim 1, wherein:
the memory associated with the object includes data representative of:
an amount of data in the first section;
an amount of data in the second section;
an amount of data in the first section and the second section; or
an amount of data in the first section, the second section and any other section.
-
The system of claim 1, wherein:
the input data comprises data representative of one or more of: a first deposit of money to a user account; or a first withdrawal of money from the user account;
the one or more processed transactions comprise data representative of one or more of: a second deposit of money to the user account; or a second withdrawal of money from the user account; and
the value comprises data representative of a money balance.
-
The system of claim 1, wherein the second data size associated with the object is determined:
in response to receiving the input data; or
at a predetermined time.
-
A computer readable medium storing instructions, which when executed by a processor, cause the processor to perform actions comprising:
accessing input data, the input data comprising a unit of data processing resulting from a transaction request and having an input data size;
performing an update process comprising:
accessing an object associated with a data storage size limit, the object comprising data stored at a location in memory, the object having an object data size including:
a first section storing one or more processed transactions, the one or more processed transactions having a processed transaction data size representing a quantity of data of the one or more processed transactions stored at the first section; and
a second section storing a value associated with the one or more processed transactions the second section having a size associated with the value stored therein; and
in response to determining a sum of the input data size and the object data size being equal to or greater than a threshold amount:
generating a copy of the one or more processed transactions, the copy of the processed transaction having the processed transaction data size;
storing the copy of the processed transaction having the processed transaction data size at a transaction datastore to increase the transaction datastore by the processed transaction data size;
removing the processed transaction having the processed transaction data size from the first section of the object to reduce the object data size by the processed transaction data size;
storing the input data at the first section of the object to increase the object data size by the input data size; and
using the input data, to update the value of the second section of the object.
- The computer readable medium of claim 5, wherein the removal of the one or more processed transactions from the object occurs after the storage of the copy of the one or more processed transactions at the transaction datastore.
- The computer readable medium of claim 5, wherein the one or more processed transactions is removed from the object in response to the input data being received by the processor.
-
The computer readable medium of claim 5, wherein:
the update process further comprises determining the object data size by adding an amount of data stored at the first section and the processed transaction data size representing a quantity of data of the one or more processed transactions stored at the first section; and
the update process occurs in response to the sum of the input data size and the object data size being equal to or greater than a predetermined threshold amount.
-
The computer readable medium of claim 5, wherein:
the input data is representative of: a first deposit of money to a user account; or a first withdrawal of money from the user account; and
the one or more processed transactions are representative of: a second deposit of money to the user account; or a second withdrawal of money from the user account.
-
The computer readable medium of claim 5, wherein:
the object is stored at a first location; and
the transaction datastore is stored at a second location.
-
The computer readable medium of claim 5, wherein:
the first section stores a transaction table which includes the one or more processed transactions and a second processed transaction; and
the update process further comprises:
generating a second copy of the second processed transaction;
storing the second copy of the second processed transaction at the transaction datastore; and
after storing the second copy of the second processed transaction at the transaction datastore, removing the second processed transaction from the first section.
-
The computer readable medium of claim 5, wherein:
the value comprises data representative of a money balance; and
the second section includes a balance table which includes:
the value;
data representative of a balance ID; and
data representative of a balance version.
- The computer readable medium of claim 5, wherein the threshold amount is 64 KB.
- The computer readable medium of claim 5, the actions further comprising storing the object at one or more slave devices.
-
A system comprising:
a processor; and
a memory device communicatively coupled to the processor, the memory device storing instructions which when executed by the processor, cause the processor to:
receive input data comprising a unit of data processing resulting from a transaction request and having a first data size;
perform an update process comprising:
determining a second data size associated with an object, the object comprising data stored at a location in the memory device, the object including:
a processed transaction table comprising data representative of a first processed transaction and a second processed transaction, the first processed transaction and the second processed transaction having a third data size representing a quantity of data of the first processed transaction and the second processed transaction stored at the processed transaction table; and
a balance table comprising data having a fourth data size, the data representative of a value associated with the first processed transaction and the second processed transaction, the value comprising data representative of a money balance; and
in response to a sum of the first data size and the second data size being equal to or greater than a threshold amount:
storing the first processed transaction and the second processed transaction having the third data size at a transaction datastore;
removing the first processed transaction and the second processed transaction having the third data size from the processed transaction table to reduce the second data size associated with the object by the third data size;
storing the input data at the processed transaction table to increase the second data size associated with the object by the first data size; and
using the input data, updating the value of the balance table.
- The system of claim 15, wherein the update process occurs in response to the sum of the first data size associated with the input data and the second data size associated with the object being equal to or greater than a threshold amount.
-
The system of claim 15, wherein the update process includes using an optimistic locking process which includes:
reading a balance version number associated with the object when storing the first processed transaction and the second processed transaction at the processed transaction table; and
checking the version number before updating the value associated with a balance of the processed transaction table.
-
The system of claim 15, wherein:
the first processed transaction includes data representative of a balance ID; and
the balance table includes data representative of the balance ID.
- The system of claim 15, wherein the object comprises data stored as an aggregate data structure.
-
The system of claim 15, wherein:
the object is associated with a user account which is associated with a user; and
the object has a maximum data storage size which is configurable.
Owners (US)
-
Amazon Technologies Inc
(Sep 11 2013)
Explore more patents:
Applicants
-
Amazon Tech Inc
Explore more patents:
Inventors
-
Hattikudru Abhin
Explore more patents:
-
Bhutani Ajay
Explore more patents:
-
Krueger Chelsea Celest
Explore more patents:
-
Vanchiprakash Anantharam
Explore more patents:
CPC Classifications
-
G06F16/2379
Explore more patents:
-
G06F16/00
Explore more patents:
-
G06F16/2282
Explore more patents:
-
G06F16/2315
Explore more patents:
-
G06F16/2343
Explore more patents:
-
G06F16/24
Explore more patents:
-
G06F17/21
Explore more patents:
-
G06Q40/00
Explore more patents:
Document Preview
- Publication: May 16, 2017
-
Application:
Aug 22, 2013
US 201313973733 A
-
Priority:
Aug 22, 2013
US 201313973733 A