IP Library › Granted Patent US 12,182,453
Granted Patent B2
US 12,182,453 · App. 18/540,244 · Granted Dec 31, 2024

Flash registry with on-disk hashing

Inventors: Maor Ben Dayan (Tel Aviv, IL); Omri Palmon (Tel Aviv, IL); Liran Zvibel (Tel Aviv, IL); Kanael Arditti (Tel Aviv, IL)
Assignee: Weka.IO Ltd.
G06F3/0659G06F3/0604G06F3/0664G06F3/067G06F13/1668G06F13/4027G06F13/4282G06F2213/0026
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,182,453
App. No.
18/540,244
Granted
Dec 31, 2024
Kind
B2
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 of a plurality of storage devices. Each computing device is operable to access one or more memory blocks within the storage devices and maintain a registry over the same one or more memory blocks. The registry may be adaptively resized according to the access of the one or more memory blocks.

Claims (38)

1. A system comprising:

a registry of a plurality of memory blocks, wherein:

the registry is adaptively resized,

the registry comprises one or more registry blocks,

each registry block comprises a split level and one or more keys,

each of the one or more keys comprises an identical number of bits,

an index, in each of the one or more keys, is indicated by a specified number of bits, and

the specified number is the split level.

2. The system of claim 1 , wherein the plurality of memory blocks comprises non-volatile memory.

3. The system of claim 1 , wherein the plurality of memory blocks comprises flash memory.

4. The system of claim 1 , wherein the registry is resized as the one or more memory blocks are written.

5. The system of claim 1 , wherein the registry is resized as the one or more memory blocks are read.

6. The system of claim 1 , wherein each of the one or more keys in each of the one or more registry blocks is associated with a key-value entry of one or more key-value entries.

7. The system of claim 6 , wherein the one or more key-value entries are added to a registry block of the one or more registry blocks until a number of the one or more key-value entries exceeds a predetermined capacity, at which time the registry block is split and a new registry block is added to the one or more registry blocks.

8. The system of claim 6 , wherein the one or more key-value entries are removed from a registry block of the one or more registry blocks until a number of the one or more key-value entries is at or below a predetermined level, at which time the registry block is merged with another registry block of the one or more registry blocks.

9. The system of claim 1 , wherein the storage network comprises a failure resilient address space distributed across a plurality of storage devices.

10. The system of claim 8 , wherein each registry block is identified by the index and the split level.

11. A method comprising:

maintaining a registry of one or more memory blocks; and

adaptively resizing the registry, wherein:

the registry comprises one or more registry blocks,

each registry block comprises a split level and one or more keys,

each of the one or more keys comprises an identical number of bits,

an index, in each of the one or more keys, is indicated by a specified number of bits, and

the specified number is the split level.

12. The method of claim 11 , wherein the plurality of memory blocks comprises non-volatile memory.

13. The method of claim 11 , wherein the plurality of memory blocks comprises flash memory.

14. The method of claim 11 , wherein the registry is resized as the one or more memory blocks are written.

15. The method of claim 11 , wherein the registry is resized as the one or more memory blocks are read.

16. The method of claim 11 , wherein each of the one or more keys in each of the one or more registry blocks is associated with a key-value entry of one or more key-value entries.

17. The method of claim 16 , wherein the method comprises:

adding the one or more key-value entries to a registry block of the one or more registry blocks; and

if a number of the one or more key-value entries exceeds a predetermined capacity, splitting the registry block and adding a new registry block to the one or more registry blocks.

18. The method of claim 16 , wherein the method comprises:

removing the one or more key-value entries from a registry block of the one or more registry blocks; and

if a number of the one or more key-value entries is at or below a predetermined level, merging the registry block with another registry block of the one or more registry blocks.

19. The method of claim 11 , wherein the storage network comprises a failure resilient address space distributed across a plurality of storage devices.

20. The method of claim 18 , wherein each registry block is identified by the index and the split level.

Continuity (4)
Continuation 17539500 · Dec 1, 2021
Continuation 16121500 · Sep 4, 2018
Provisional Application 62585054 · Nov 13, 2017
Related Publication 20240201906A1 · Jun 20, 2024