IP Library Granted Patent US 11,216,210
Granted Patent B2
US 11,216,210 · App. 16/121,500 · Granted Jan 4, 2022

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)
G06F3/0659G06F3/0604G06F3/067G06F3/0664G06F13/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 11,216,210
App. No.
16/121,500
Granted
Jan 4, 2022
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 (42)

1. A method comprising:

communicatively coupling a computing device to a storage network comprising a plurality of memory blocks;

accessing one or more memory blocks of the plurality of memory blocks via the computing device;

maintaining a registry over the one or more memory blocks; and

adaptively resizing the registry according to the access of the one or more memory blocks, wherein:

the registry comprises one or more registry blocks,

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

a specified number of bits in each of the one or more keys of each registry block indicate the index of each registry block,

the specified number is the split level of each registry block,

when the one or more memory blocks fill up, the split level is increased, and an entry of the one or more memory blocks is moved to a new memory block by least significant bits (LSBs) of a hash of the one or more keys, and

the split level is stored inside each registry block apart from the one or more keys.

2. The method of claim 1 , wherein the storage network comprises a non-volatile memory.

3. The method of claim 1 , wherein the storage network comprises a flash memory.

4. The method of claim 1 , wherein accessing the one or more memory blocks comprises writing data into the one or more memory blocks.

5. The method of claim 1 , wherein accessing the one or more memory blocks comprises reading data from the plurality of memory blocks.

6. The method 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 method of claim 6 , wherein the method comprises:

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

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

8. The method of claim 6 , wherein the method comprises:

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

if a number of 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.

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

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

11. A system comprising:

a computing device communicatively coupled to a storage network comprising a plurality of memory blocks, wherein:

the computing device is operable to access one or more memory blocks of the plurality of memory blocks and maintain a registry over the one or more memory blocks,

the registry is adaptively resized according to the access of the one or more memory blocks,

the registry comprises one or more registry blocks,

each registry block comprises a split level, one or more keys, and an index, a specified number of bits in each of the one or more keys of each registry block indicate the index of each registry block,

the specified number is the split level of each registry block,

when the one or more memory blocks fill up, the split level is increased, and an entry of the one or more memory blocks is moved to a new memory block by least significant bits (LSBs) of a hash of the one or more keys, and

the split level is stored inside each registry block apart from the one or more keys.

12. The system of claim 11 , wherein the storage network comprises a non-volatile memory.

13. The system of claim 11 , wherein the storage network comprises a flash memory.

14. The system of claim 11 , wherein the access comprises writing data into the one or more memory blocks.

15. The system of claim 11 , wherein the access of the one or more memory blocks comprises reading data from the plurality of memory blocks.

16. The system 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 system of claim 16 , wherein key-value entries are added to a registry block of the one or more registry blocks until a number of 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.

18. The system of claim 16 , wherein key-value entries are removed from a registry block of the one or more registry blocks until a number of 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.

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

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

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Jun 20, 2024
From: BANK LEUMI LE-ISRAEL B.M.
To: WEKAIO LTD.
Reel/Frame 067783/0962 →
SECURITY INTEREST Recorded Mar 29, 2020
From: WEKAIO LTD.
To: BANK LEUMI LE-ISRAEL B.M.
Reel/Frame 052253/0860 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2018
From: DAYAN, MAOR BEN; PALMON, OMRI; ZVIBEL, LIRAN; ARDITTI, KANAEL
To: WEKA.IO LTD.
Reel/Frame 047101/0029 →
Continuity (2)
Provisional Application 62585054 · Nov 13, 2017
Related Publication 20190146713A1 · May 16, 2019