Volume-based key-value store
First Claim
1. A computer-implemented method, comprising:
- providing a storage volume on a storage server, the storage volume including a block-data store and a key-value store, the block-data store accessible via a block-data interface that supports block-data operations, the key-value store accessible via a key-value interface that supports key-value operations, the key-value store holding input/output throttling information associated with the storage volume, and the key-value store holding throttling parameters associated with the storage volume that include a burst-bucket key-value record that includes a burst-bucket value and a timestamp value that is updated with a current time when the burst-bucket value is updated;
receiving, from a client via the key-value interface, a request to perform a key value operation on the key-value store;
performing the key-value operation on the key-value store;
receiving, from a client via the block-data interface, a request to perform a block-data operation on the block-data store; and
performing the block-data operation on the block-data store.
1 Assignment
0 Petitions
Accused Products
Abstract
The current document describes a storage system that provides a storage volume with a block-data interface to one or more clients. The storage system provides a key-value store that is associated with the storage volume. The clients access the key-value store via a key-value interface that provides a number of key-value operations to read, write, list, and delete key-value records from the key-value store. In some implementations, the key-value interface provides additional key-value operations that support the use of the key-value store by more than one client at a time. An environment in which the key-value store is used by the clients to retain I/O throttling parameters is described.
43 Citations
17 Claims
-
1. A computer-implemented method, comprising:
-
providing a storage volume on a storage server, the storage volume including a block-data store and a key-value store, the block-data store accessible via a block-data interface that supports block-data operations, the key-value store accessible via a key-value interface that supports key-value operations, the key-value store holding input/output throttling information associated with the storage volume, and the key-value store holding throttling parameters associated with the storage volume that include a burst-bucket key-value record that includes a burst-bucket value and a timestamp value that is updated with a current time when the burst-bucket value is updated; receiving, from a client via the key-value interface, a request to perform a key value operation on the key-value store; performing the key-value operation on the key-value store; receiving, from a client via the block-data interface, a request to perform a block-data operation on the block-data store; and performing the block-data operation on the block-data store. - View Dependent Claims (2, 3)
-
-
4. A storage system, comprising:
-
a storage volume containing a key-value store and a block-data store, the key-value store holding input/output throttling information associated with the storage volume, and the key-value store holding throttling parameters associated with the storage volume that include a burst-bucket key-value record that includes a burst-bucket value and a timestamp value that is updated with a current time when the burst-bucket value is updated; a volume interface configured to process requests specifying key-value operations and requests specifying block-data operations; and one or more processors coupled to a non-transitory computer readable storage medium containing instructions that, when executed by the one or more processors, cause the system to implement one or more interfaces and, as part of implementing the one or more interfaces; receive the request from a client via the volume interface, the received request specifying a key-value operation or a block-data operation; and process the request. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11)
-
-
12. A non-transitory computer-readable storage medium having stored thereon executable instructions that, if executed by one or more processors of a computer system, cause the computer system to at least:
-
receive, from a client via a key-value interface on a storage server, a request to perform a key-value operation on a key-value store, the storage server including a volume being accessible to the client via a block-data interface configured to receive requests to process requests, from the client, to perform block-data operations, the key-value store holding input/output throttling information associated with the volume, and the key-value store holding throttling parameters associated with the storage volume that include a burst-bucket key-value record that includes a burst-bucket value and a timestamp value that is updated with a current time when the burst-bucket value is updated; and perform the key-value operation on the key-value store as part of processing the request. - View Dependent Claims (13, 14, 15, 16, 17)
-
Specification