CPC G06F 12/0868 (2013.01) [G06F 3/0604 (2013.01); G06F 3/067 (2013.01); G06F 3/0659 (2013.01); G06F 12/0802 (2013.01); G06F 16/13 (2019.01); G06F 16/93 (2019.01); G06F 2212/60 (2013.01); G06F 2212/6042 (2013.01)] | 20 Claims |
1. A computer system for object-based data storage, the system comprising:
one or more queue processors configured to maintain a queue that stores a plurality of operations that interact with objects maintained at an object-based data storage;
a read/write cache configured to cache (i) objects to be written to the object-based data storage, and (ii) objects that are read from the object-based data storage for provision to a requestor, wherein objects in the read/write cache are associated with a lock state; and
one or more ingestion processors configured communicative coupled with the one or more queue processors and the read/write cache, and configured to:
set the lock state for objects being written to the object-based data storage to a locked state;
set the lock state for objects that finished writing to the object-based data storage to an unlocked state;
set the lock state for objects retrieved from the object-based data storage and not yet provided to a requestor to a locked state;
set the lock state for objects retrieved from the object-based data storage and provided to a requestor to an unlocked state;
delete, from the read/write cache, and according to a first target rate, the objects in the unlocked state if the amount of used memory in the read/write cache is below a read/write cache memory threshold or inode threshold; and
delete, from the read/write cache, and according to a second target rate, the objects in the unlocked state if an amount of used memory in the read/write cache is above the read/write cache memory threshold or inode threshold;
wherein the second target rate is greater than the first target rate.
|