Back to results
US 12,632,413 B2Granted
Directory structure for a distributed storage system
AssigneeWeka.IO Ltd.
InventorsMaor Ben Dayan, Omri Palmon, Liran Zvibel, Kanael Arditti
Life of this patent
Estimating the term…
Abstract
A plurality of computing devices are communicatively coupled to each other via a network, and each of the plurality of computing devices is operably coupled to one or more flash storage devices. Each computing device is operable to access one or more memory blocks within the flash storage devices and maintain a directory structure for managing access to the memory. The directory structure may be adaptively resized according to the addition or removal of one or more associated files stored in memory.
Claims20
A system comprising:
- a non-transitory, computer-readable, recording medium storing instructions executable by a computing device to:
- communicate with a storage network comprising a plurality of memory blocks,
- maintain a directory structure, comprising a hash set, for managing access to one or more memory blocks of the plurality of memory blocks, wherein:
- managing access comprises managing existing files, balancing load and/or redistributing memory blocks according to read/write operations,
- the hash set comprises on-disk hashing (ODH) comprising a plurality of buckets and registry blocks,
- each registry block stores metadata comprising an outer split level, an outer split index, an inner split level and an inner split index, and
- an anti-hash-collision (AHC) key is stored for each entry of the hash set,
- shard a particular frontend according to an ID of a particular file, of the existing files, to ensure that the particular file is always accessed via the particular frontend,
- redistribute one or more memory blocks according to read/write operations, without creating a new file, wherein the redistribution comprises moving complete registry blocks to a new bucket when increasing an outer split level and decreasing an inner split level such that blocks that have an inner split index that ends with “1” are moved and blocks that have an inner split index that ends with “0” remain,
- adaptively resize the directory structure according to the access of the one or more memory blocks, and
- redistribute a portion of the directory structure to another computing device to enlarge the hash set and to split or merge buckets according to directory load.
8 more elements
A method comprising:
- communicatively coupling a computing device to a storage network comprising a plurality of memory blocks;
- maintaining a directory structure for managing access to one or more memory blocks of the plurality of memory blocks, wherein the directory structure comprises a hash set for managing access to one or more memory blocks of the plurality of memory blocks, by managing existing files, balancing load and/or redistributing memory blocks according to read/write operations, wherein the directory structure is implemented as on-disk hashing (ODH) comprising a plurality of buckets and registry blocks, each registry block storing an outer split level, an outer split index, an inner split level, an inner split index, and per-entry anti-hash-collision (AHC) keys;
- sharding a particular frontend according to an ID of a particular file, of the existing files, to ensure that the particular file is always accessed via the particular frontend,
- adaptively resizing the directory structure according to the access of the one or more memory blocks of the plurality of memory blocks;
- and
- redistributing a portion of the directory structure to another computing device to enlarge the hash set, wherein redistributing comprises moving complete registry blocks between buckets responsive to a bucket split in which the outer split level is increased and the inner split level is decreased such that blocks with inner split index ending in “1” are moved.
3 more elements
Dependencies are inferred from the claim text.