In-memory distributed cache
AssigneeGoogle Inc.
InventorAsa Briggs
Life of this patent
Estimating the term…
Abstract
A method for an in-memory distributed cache includes receiving a write request from a client device to write a block of client data in random access memory (RAM) of a memory host and determining whether to allow the write request by determining whether the client device has permission to write the block of client data at the memory host, determining whether the block of client data is currently saved at the memory host, and determining whether a free block of RAM is available. When the client device has permission to write the block of client data at the memory host, the block of client data is not currently saved at the memory host, and a free block of RAM is available, the write request is allowed and the client is allowed to write the block of client data to the free block of RAM.
Claims20
A method comprising:
- determining, at a memory host of a distributed storage system, an amount of spare dynamic random access memory (DRAM) available on the memory host;
- determining, at the memory host, whether the amount of spare DRAM satisfies a threshold amount comprising at least one free block of DRAM, the threshold amount corresponding to a predetermined amount of headroom within the memory host ;
- when the amount of spare DRAM satisfies the threshold amount, allocating, at the memory host, the at least one free block of DRAM to a free block queue;
- and
- when the amount of spare DRAM fails to satisfy the threshold amount, deleting, at the memory host, a block of client data from the memory host based on a priority of the block of client data, the priority of the block of client data indicating a replication level of the block of client data throughout the distributed storage system.
A memory host of a distributed storage system, the memory host comprising:
- data processing hardware;
- and
- memory hardware in communication with the data processing hardware, the memory hardware storing instructions that when executed on the data processing hardware cause the data processing hardware to perform operations comprising:
- determining an amount of spare dynamic random access memory (DRAM) available on the memory host;
- determining whether the amount of spare DRAM satisfies a threshold amount comprising at least one free block of DRAM, the threshold amount corresponding to a predetermined amount of headroom within the memory host;
- when the amount of spare DRAM satisfies the threshold amount, allocating the at least one free block of DRAM to a free block queue;
- and
- when the amount of spare DRAM fails to satisfy the threshold amount, deleting a block of client data from the memory host based on a priority of the block of client data, the priority of the block of client data indicating a replication level of the block of client data throughout the distributed storage system.
A computer program product encoded on a non-transitory computer readable storage medium comprising instructions that when executed by a data processing apparatus cause the data processing apparatus to perform operations comprising:
- determining an amount of spare dynamic random access memory (DRAM) available on a memory host of a distributed storage system;
- determining whether the amount of spare DRAM satisfies a threshold amount comprising at least one free block of DRAM, the threshold amount corresponding to a predetermined amount of headroom within the memory host of the distributed storage system;
- when the amount of spare DRAM satisfies the threshold amount, allocating the at least one free block of DRAM to a free block queue;
- and
- when the amount of spare DRAM fails to satisfy the threshold amount, deleting a block of client data from the memory host based on a priority of the block of client data, the priority of the block of client data indicating a replication level of the block of client data throughout the distributed storage system.
Dependencies are inferred from the claim text.