Inventory data model for large scale flash sales
Assigneesalesforce.com, inc.
InventorsBenjamin Busjaeger, Michael Sgroi
Life of this patent
Estimating the term…
Abstract
A method is implemented by a computing device to identify available ones of a plurality of items of an inventory, where each of the plurality of items has a hold status identifying the item as being currently available or already on hold. The method includes selecting available ones of the plurality of items based on a first bitset and a plurality of second bitsets and asynchronously updating the first bitset and the plurality of second bitsets to reflect a synchronously updated version of the hold status of the plurality of items resulting from one or more of the plurality of items being successfully placed on hold and/or released from being placed on hold.
Claims20
A method by a computing device for identifying available ones of a plurality of items of an inventory, where each of the plurality of items has a hold status identifying the item as being currently available or already on hold, the method comprising:
- selecting available ones of the plurality of items based on a first bitset and a plurality of second bitsets, wherein each selection of an available one of the plurality of items includes:
- selecting, based on the first bitset, one of the plurality of second bitsets as a currently selected second bitset, where the plurality of items have been divided into a plurality of fixed-sized groups because each of the plurality of second bitsets identifies an asynchronously updated version of the hold status of each of the plurality of items in a respective one of the plurality of fixed-sized groups, where the first bitset indicates which of the plurality of second bitsets identifies that the asynchronously updated version of the hold status of at least one of the plurality of items in its respective fixed-sized group is available,
- selecting, based on the currently selected second bitset, one of the plurality of items identified as being currently available by the currently selected second bitset, and
- attempting to place a hold on the selected item;
- and
- asynchronously updating the first bitset and the plurality of second bitsets to reflect a synchronously updated version of the hold status of the plurality of items resulting from one or more of the plurality of items being successfully placed on hold and/or released from being placed on hold.
A computing device configured to identify available ones of a plurality of items of an inventory, where each of the plurality of items has a hold status identifying the item as being currently available or already on hold, the computing device comprising:
- one or more processors;
- and
- a non-transitory machine-readable storage medium having instructions stored therein, which when executed by the one or more processors, causes the computing device to:
- select available ones of the plurality of items based on a first bitset and a plurality of second bitsets, wherein each selection of an available one of the plurality of items includes:
- selecting, based on the first bitset, one of the plurality of second bitsets as a currently selected second bitset, where the plurality of items have been divided into a plurality of fixed-sized groups because each of the plurality of second bitsets identifies an asynchronously updated version of the hold status of each of the plurality of items in a respective one of the plurality of fixed-sized groups, where the first bitset indicates which of the plurality of second bitsets identifies that the asynchronously updated version of the hold status of at least one of the plurality of items in its respective fixed-sized group is available,
- selecting, based on the currently selected second bitset, one of the plurality of items identified as being currently available by the currently selected second bitset, and
- attempting to place a hold on the selected item, and
- asynchronously updating the first bitset and the plurality of second bitsets to reflect a synchronously updated version of the hold status of the plurality of items resulting from one or more of the plurality of items being successfully placed on hold and/or released from being placed on hold.
A non-transitory machine-readable storage medium having instructions stored therein which are configured to cause a computing device that executes the instructions to perform operations for identifying available ones of a plurality of items of an inventory, where each of the plurality of items has a hold status identifying the item as being currently available or already on hold, the operations comprising:
- selecting available ones of the plurality of items based on a first bitset and a plurality of second bitsets, wherein each selection of an available one of the plurality of items includes:
- selecting, based on the first bitset, one of the plurality of second bitsets as a currently selected second bitset, where the plurality of items have been divided into a plurality of fixed-sized groups because each of the plurality of second bitsets identifies an asynchronously updated version of the hold status of each of the plurality of items in a respective one of the plurality of fixed-sized groups, where the first bitset indicates which of the plurality of second bitsets identifies that the asynchronously updated version of the hold status of at least one of the plurality of items in its respective fixed-sized group is available,
- selecting, based on the currently selected second bitset, one of the plurality of items identified as being currently available by the currently selected second bitset, and
- attempting to place a hold on the selected item;
- and
- asynchronously updating the first bitset and the plurality of second bitsets to reflect a synchronously updated version of the hold status of the plurality of items resulting from one or more of the plurality of items being successfully placed on hold and/or released from being placed on hold.
Dependencies are inferred from the claim text.