CPC G06F 3/0659 (2013.01) [G06F 3/0611 (2013.01); G06F 3/0619 (2013.01); G06F 3/0664 (2013.01); G06F 3/067 (2013.01)] | 19 Claims |
14. An apparatus comprising:
a cluster of nodes each having a processor and storage; and
a network interconnecting the nodes and connecting to a client, wherein the processors of the nodes are configured to:
record, in a persistent memory (PMEM) of a node of the cluster, metadata corresponding to input/output (I/O) write accesses having data from the client directed to a virtual disk (vdisk) of the cluster, the metadata locating the data cached in an operations log (oplog) prior to persistent storage of the data at a backend of the cluster;
index the metadata by offset ranges of the vdisk;
store a first probabilistic data structure created from the metadata in a dynamic random access memory (DRAM) of the node, wherein the first probabilistic data structure includes locations of the data cached in the oplog and drained from the oplog;
store in the DRAM, a second probabilistic data structure having the metadata locating the data cached in the oplog;
in response to an I/O access having an offset directed to the vdisk, use the second probabilistic data structure and then the first probabilistic data structure to determine whether the offset is in the metadata; and
in response to determining that the offset is in the metadata, search the metadata using the offset to locate and retrieve the data.
|