IP Library › Granted Patent US 12,541,328
Granted Patent B2
US 12,541,328 · App. 18/915,820 · Granted Feb 3, 2026

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,541,328
App. No.
18/915,820
Granted
Feb 3, 2026
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 (40)

1 . A system comprising:

a registry of a plurality of memory blocks, wherein:

the registry is configured to be 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,

each of the one or more keys comprises an index,

each index comprises a specified number of bits, and

the split level corresponds to the specified number.

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 configured to be resized as the one or more memory blocks are written.

5 . The system of claim 1 , wherein the registry is configured to be 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 configured to be 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 configured to be 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 configured to be 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 configured to be merged with another registry block of the one or more registry blocks.

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

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

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,

each of the one or more keys comprises an index,

each index comprises a specified number of bits, and

the split level corresponds to the specified number.

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 18 , wherein each registry block is identified by the index and the split level.

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

Continuity (5)
Continuation 18540244 · Dec 14, 2023
Continuation 17539500 · Dec 1, 2021
Continuation 16121500 · Sep 4, 2018
Provisional Application 62585054 · Nov 13, 2017
Related Publication 20250068359A1 · Feb 27, 2025
References Cited (54)
US 6487636B1 · Dolphin et al. · 2002 [cited by applicant]
US 7447839B2 · Uppala · 2008 [cited by applicant]
US 7681072B1 · Gibson et al. · 2010 [cited by applicant]
US 7793146B1 · Gibson et al. · 2010 [cited by applicant]
US 7877511B1 · Berger et al. · 2011 [cited by applicant]
US 8347010B1 · Radovanovic · 2013 [cited by applicant]
US 8645749B2 · Reche · 2014 [cited by applicant]
US 8793465B1 · Forgette et al. · 2014 [cited by applicant]
US 8918478B2 · Ozzie et al. · 2014 [cited by applicant]
US 9075710B2 · Talagala · 2015 [cited by examiner]
US 9087012B1 · Hayes et al. · 2015 [cited by applicant]
US 9448887B1 · Ben Dayan et al. · 2016 [cited by applicant]
US 9747162B2 · Ben Dayan et al. · 2017 [cited by applicant]
US 20030084266A1 · Knippel et al. · 2003 [cited by applicant]
US 20030115218A1 · Bobbitt et al. · 2003 [cited by applicant]
US 20040098415A1 · Bone et al. · 2004 [cited by applicant]
US 20050289152A1 · Earl et al. · 2005 [cited by applicant]
US 20070061542A1 · Uppala · 2007 [cited by applicant]
US 20070143261A1 · Uppala · 2007 [cited by applicant]
US 20070143311A1 · Uppala · 2007 [cited by applicant]
US 20080109466A1 · Havens et al. · 2008 [cited by applicant]
US 20090119541A1 · Inoue et al. · 2009 [cited by applicant]
US 20100174690A1 · Marcotte · 2010 [cited by applicant]
US 20100199125A1 · Reche · 2010 [cited by applicant]
US 20110213994A1 · Thereska et al. · 2011 [cited by applicant]
US 20120210095A1 · Nellans et al. · 2012 [cited by applicant]
US 20120323970A1 · Larson et al. · 2012 [cited by applicant]
US 20130097655A1 · Vaidyanathan et al. · 2013 [cited by applicant]
US 20130103729A1 · Cooney et al. · 2013 [cited by applicant]
US 20130346425A1 · Bruestle · 2013 [cited by applicant]
US 20140244897A1 · Goss et al. · 2014 [cited by applicant]
US 20140281280A1 · Goss et al. · 2014 [cited by applicant]
US 20150248366A1 · Bergsten et al. · 2015 [cited by applicant]
US 20150254088A1 · Chou et al. · 2015 [cited by applicant]
US 20150355971A1 · Becker-Szendy et al. · 2015 [cited by applicant]
US 20160034356A1 · Aron et al. · 2016 [cited by applicant]
US 20160246677A1 · Sangamkar et al. · 2016 [cited by applicant]
US 20170031774A1 · Bolen et al. · 2017 [cited by applicant]
US 20170109295A1 · Lasperas et al. · 2017 [cited by applicant]
US 20170149890A1 · Shamis et al. · 2017 [cited by applicant]
CN 101535949A · 2009 [cited by applicant]
European Office Communication with extended search report Appln No. 24205816.2 dated Jan. 2, 2025. [cited by applicant]
European Office Communication with extended search report Appln No. 25151237.2 Mar. 13, 2025. [cited by applicant]
Int'l Search Report and Written Opinion Appln No. PCT/IB2016/001177 dated Dec. 2, 2016. [cited by applicant]
Int'l Preliminary Report on Patentability Appln No. PCT/IB2016/001177 dated Mar. 8, 2018. [cited by applicant]
Int'l Search Report and Written Opinion Appln No. PCT/IB2016/000996 dated Oct. 20, 2016. [cited by applicant]
Int'l Preliminary Report on Patentability Appln No. PCT/IB2016/000996 dated Jan. 2, 2018. [cited by applicant]
Extended European Search Report Appln No. 16817312.8-1217 dated Oct. 25, 2018. [cited by applicant]
Int'l Search Report and Written Opinion Appln No. PCT/IB2018/01226 dated Feb. 19, 2019. [cited by applicant]
Int'l Preliminary Report on Patentability Appln No. PCT/IB2018/001226 dated May 28, 2020. [cited by applicant]
Extended European Search Report Appln No. 18878775.0 dated Jul. 13, 2021. [cited by applicant]
Ou Yang et al: “NIS: A New Index Scheme for Flash File System”, 2015 Third International Conference on Advanced Cloud and Big Data, IEEE, Oct. 30, 2015 (Oct. 30, 2015), pp. 44-51, XP032883793, DOI: 10.1109/CBD.2015.17 I… [cited by applicant]
European Office Communication Appln No. 18876775.0 dated Aug. 31, 2022. [cited by applicant]
Chinese Office Action with search report Appln No. 2018800863854 dated Sep. 28, 2023. [cited by applicant]