IP Library › Granted Patent US 12,639,101
Granted Patent B2
US 12,639,101 · App. 19/022,927 · Granted May 26, 2026

Transaction interlocks for a distributed system

Inventors: John Hayes (Mountain View, CA); Brian Gold (Los Altos, CA); Shantanu Gupta (Santa Clara, CA); Robert Lee (Pebble Beach, CA); Hari Kannan (Sunnyvale, CA)
Assignee: EVERPURE, INC.
G06F9/466G06F3/0619G06F3/0656G06F3/0688G06F9/467G06F12/0802G06F12/0868G06F13/16G06F16/10G06F2212/1032G06F2212/152G06F2212/214G06F2212/222G06F2212/261
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,639,101
App. No.
19/022,927
Filed
Jan 15, 2025
Granted
May 26, 2026
Kind
B2
Art Unit
2161
USPC
707/615
Abstract

A method for a transactional commit in a storage unit is provided. The method includes receiving a logical record from a storage node into a transaction engine of a storage unit of the storage node and writing the logical record into a data structure of the transaction engine. The method includes writing, to a command queue of the transaction engine, an indication to perform an atomic update using the logical record and transferring each portion of the logical record from the data structure of the transaction engine to non-persistent memory of the storage unit as a committed transaction. A storage unit for a storage system is also provided.

Claims (36)

1 . A method, comprising:

writing data into a first memory portion of solid state memory of a storage node;

writing an indication to perform an update associated with the data into a second memory portion of the solid state memory, the indication comprising one or more pointers to the data in the first memory portion, wherein the writing the data and the writing the indication are managed by a processing device of the storage node;

performing the update; and

writing an image of the data to persistent solid state memory of the storage node upon a determination that the update is complete.

2 . The method of claim 1 , wherein one of a power loss, an operating system crash, or a software process crash triggers the writing the image of the data.

3 . The method of claim 1 , wherein writing the indication comprises writing to a queue of the second memory portion a timestamp indicating portions of the data have been written to the first memory.

4 . The method of claim 1 , wherein writing the image is supported by an energy reserve.

5 . The method of claim 1 , wherein the first memory portion and the second memory portion are non-persistent memory.

6 . The method of claim 1 , wherein writing the indication comprises:

writing a description of a transaction to the second memory, wherein the description of the transaction includes a sequence number and wherein writing the description of the transaction to the second memory records a transactional commit characterized by transferring an entirety of the data to the first memory.

7 . The method of claim 1 , wherein the first memory portion, the second memory portion, and the persistent memory are within a solid state storage device of the storage node, and wherein a plurality of storage nodes are operatively coupled together.

8 . A non-transitory computer readable storage medium comprising instructions that, when executed by a processing device, cause the processing device of a storage node to:

write data into a first memory portion of solid state memory of the storage node;

write an indication to perform an update associated with the data into a second memory portion of the solid state memory, the indication comprising one or more pointers to the data in the first memory portion;

perform the update; and

write an image of the data to persistent solid state memory of the storage node upon a determination that the update is complete.

9 . The non-transitory computer readable storage medium of claim 8 , wherein one of a power loss, an operating system crash, or a software process crash triggers the writing the image of the data.

10 . The non-transitory computer readable storage medium of claim 8 , wherein writing the indication comprises writing to a queue of the second memory portion a timestamp indicating portions of the data have been written to the first memory.

11 . The non-transitory computer readable storage medium of claim 8 , wherein writing the image is supported by an energy reserve.

12 . The non-transitory computer readable storage medium of claim 8 , wherein the first memory portion and the second memory portion are non-persistent memory.

13 . The non-transitory computer readable storage medium of claim 8 , wherein writing the indication comprises:

writing a description of a transaction to the second memory, wherein the description of the transaction includes a sequence number and wherein writing the description of the transaction to the second memory records a transactional commit characterized by transferring an entirety of the data to the first memory.

14 . The non-transitory computer readable storage medium of claim 8 , wherein the first memory portion, the second memory portion, and the persistent memory are within a solid state storage device of the storage node, and wherein a plurality of storage nodes are operatively coupled together.

15 . A storage system, comprising:

a plurality of storage nodes coupled together, at least one of the plurality of storge nodes comprising non-persistent solid state memory and persistent solid state memory; and

a processing device of the at least one of the plurality of storge nodes, operatively coupled to the non-persistent solid state memory and the persistent memory, the processing device configured to:

write data into a first memory portion of solid state memory of the storage node;

write an indication to perform an update associated with the data into a second memory portion of the solid state memory, the indication comprising one or more pointers to the data in the first memory portion;

performing the update; and

write an image of the data to persistent solid state memory of the storage node upon a determination that the update is complete.

16 . The storage system of claim 15 , wherein one of a power loss, an operating system crash, or a software process crash triggers the writing the image of the data.

17 . The storage system of claim 15 , wherein writing the indication comprises writing to a queue of the second memory portion a timestamp indicating portions of the data have been written to the first memory.

18 . The storage system of claim 15 , wherein writing the image is supported by an energy reserve.

19 . The storage system of claim 15 , wherein the first memory portion and the second memory portion are non-persistent memory.

20 . The storage system of claim 15 , wherein the first memory portion, the second memory portion, and the persistent memory are within a solid state storage device of the storage node, and wherein a plurality of storage nodes are operatively coupled together.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2025
From: HAYES, JOHN; GOLD, BRIAN; GUPTA, SHANTANU; LEE, ROBERT; KANNAN, HARI
To: PURE STORAGE, INC.
Reel/Frame 070163/0087 →
Continuity (4)
Continuation 17552606 · Dec 16, 2021
Continuation 16200310 · Nov 26, 2018
Continuation 14716543 · May 19, 2015
Related Publication 20250156215A1 · May 15, 2025
References Cited (49)
US 6542645B1 · Silverbrook et al. · 2003 [cited by applicant]
US 7386674B1 · Lango · 2008 [cited by applicant]
US 8484259B1 · Makkar et al. · 2013 [cited by applicant]
US 8826273B1 · Chen · 2014 [cited by applicant]
US 9275063B1 · Natanzon · 2016 [cited by applicant]
US 9910742B1 · Faibish et al. · 2018 [cited by applicant]
US 10185495B2 · Katsuki · 2019 [cited by applicant]
US 10831720B2 · Mainali et al. · 2020 [cited by applicant]
US 11294588B1 · Miller et al. · 2022 [cited by applicant]
US 12235730B1 · Kumar et al. · 2025 [cited by applicant]
US 20040215619A1 · Rabold · 2004 [cited by examiner]
US 20060250640A1 · Lapstun et al. · 2006 [cited by applicant]
US 20100191713A1 · Lomet et al. · 2010 [cited by applicant]
US 20100306444A1 · Shirley et al. · 2010 [cited by applicant]
US 20130097136A1 · Goldberg · 2013 [cited by applicant]
US 20130198447A1 · Yochai · 2013 [cited by examiner]
US 20140075086A1 · Banikazemi et al. · 2014 [cited by applicant]
US 20140281269A1 · Chakrabarti et al. · 2014 [cited by applicant]
US 20140344503A1 · Deguchi et al. · 2014 [cited by applicant]
US 20150347523A1 · Patel et al. · 2015 [cited by applicant]
US 20160118121A1 · Kelly · 2016 [cited by examiner]
US 20160142485A1 · Mitkar et al. · 2016 [cited by applicant]
US 20170091169A1 · Bellegarda et al. · 2017 [cited by applicant]
US 20170155713A1 · Powell et al. · 2017 [cited by applicant]
US 20170185643A1 · Doshi et al. · 2017 [cited by applicant]
US 20180074748A1 · Makin et al. · 2018 [cited by applicant]
US 20180081562A1 · Vasudevan · 2018 [cited by applicant]
US 20190370360A1 · Mainali et al. · 2019 [cited by applicant]
US 20190370362A1 · Mainali et al. · 2019 [cited by applicant]
US 20190370365A1 · Chalakov et al. · 2019 [cited by applicant]
US 20200014688A1 · Kohli et al. · 2020 [cited by applicant]
US 20220012172A1 · Ostrovsky et al. · 2022 [cited by applicant]
US 20220156114A1 · Nagpal et al. · 2022 [cited by applicant]
US 20220222004A1 · Miller et al. · 2022 [cited by applicant]
US 20220261445A1 · Gentilcore et al. · 2022 [cited by applicant]
US 20230144662A1 · Tasinga et al. · 2023 [cited by applicant]
US 20250007918A1 · Helmick et al. · 2025 [cited by applicant]
CN 101506766A · 2009 [cited by applicant]
CN 101650972A · 2010 [cited by applicant]
CN 102187321A · 2011 [cited by applicant]
CN 102282548A · 2011 [cited by applicant]
CN 103814354A · 2014 [cited by applicant]
CN 104583989A · 2015 [cited by applicant]
JP 2008097155A · 2008 [cited by applicant]
WO WO2014142908A1 · 2014 [cited by applicant]
Extended European Search Report for European Application No. 16797310.6, mailed Nov. 29, 2018, 10 Pages. [cited by applicant]
Frakes Dan, “Up close with Mountain Lion: Power Nap (Frakes, Dan, Working Mac—Up close with Mountain Lion: Power Nap, Macworld.com,” Aug. 1, 2012, pp. 1-6. [cited by applicant]
Liu Yangfan, “Hardware Transactional Storage Micro-Architecture and its Verification Research,” Chinese Ph.D. Dissertation Full-text Database Information Technology Series, pp. 1137-2. [cited by applicant]
Yao Ming, “Design and Implementation of High-Density and High-Speed Storage System,” China Excellent Master's Thesis Full-text Database Information Technology Series, pp. 1137-1177. [cited by applicant]