IP Library Granted Patent US 10,678,701
Granted Patent B2
US 10,678,701 · App. 16/122,309 · Granted Jun 9, 2020

Direct read control in a data storage system

Inventors: Eyal Gordon (Haifa, IL); Ilan Steinberg (Haifa, IL); Eli Malul (Tirat Carmel, IL); Shahar Salzman (Givat Ela, IL); Gilad Hitron (Haifa, IL); Eran Mann (Yoqneam, IL)
Assignee: Kaminario Technologies Ltd.
G06F12/10G06F12/1072G06F12/1441G06F12/1483G06F2212/1016G06F2212/1032G06F2212/65G06F2212/657
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 10,678,701
App. No.
16/122,309
Granted
Jun 9, 2020
Kind
B2
Abstract

The presently disclosed subject matter includes various inventive aspects, which are directed to direct read access of a host computer device to a share storage space in a data storage system, as well as control of the direct read of the host computer device by a control computer device in the data storage system.

Claims (46)

1. A data storage system comprising one or more control computer devices operatively connected to a shared physical storage space and to one or more host computer devices, each control computer device being assigned with access control and write permission to a respective physical storage area in the shared physical storage space, wherein a control computer device of the data storage system is configured to:

for each given write operation of writing data at a specific time to a given physical data block in the respective physical storage area accessible to the control computer device, store a generation identifier in a predefined location within the given physical data block, the generation identifier being a unique identification of the given write operation, thereby providing respective generation identifiers for distinguishing between different write operations to the given physical data block; and

responsive to a direct read request from a host computer device of the one or more host computer devices to read data from the shared physical storage space, the direct read request indicative of one or more logical data blocks accessible to the host computer device, transmit metadata pertaining to the one or more logical data blocks to the host computer device, wherein the metadata includes physical location of one or more physical data blocks in the shared physical storage space corresponding to the one or more logical data blocks and an expected generation identifier of each of the one or more physical data blocks;

thereby enabling the host computer device to read data from the physical location and verify whether the read data is valid using the generation identifier;

wherein the data storage system further comprises the one or more host computer devices, wherein the host computer device is configured to:

read data from the physical location including reading a current generation identifier from the predefined location within each of the one or more physical data blocks;

verify whether the current generation identifier matches the expected generation identifier; and

in case of a match, determine the read data is valid; otherwise, send a new direct read request to the control computer device to request updated metadata.

2. The data storage system of claim 1 , wherein the generation identifier is selected from a group comprising: a write generation, a commit ID, and a timestamp value.

3. The data storage system of claim 1 , wherein the generation identifier is stored at the predefined location with a predefined size.

4. The data storage system of claim 1 , wherein the control computer device is further configured to store additional information pertaining to data validity at the predefined location.

5. The data storage system of claim 1 , wherein the physical location includes an offset within a physical data block of the one or more physical data blocks and a length of the data to be read.

6. A computerized method of direct read control of a host computer device reading from a shared physical storage space in a data storage system, the data storage system comprising one or more control computer devices operatively connected to the shared physical storage space and to one or more host computer devices, each control computer device being assigned with access control and write permission to a respective storage area in the shared physical storage space, the method comprising:

for each given write operation of writing data at a specific time to a given physical data block in the respective physical storage area accessible to a control computer device, storing, by the control computer device, a generation identifier in a predefined location within the given physical data block, the generation identifier being a unique identification of the given write operation, thereby providing respective generation identifiers for distinguishing between different write operations to the given physical data block; and

responsive to a direct read request from a host computer device of the one or more host computer devices to read data from the shared physical storage space, the direct read request indicative of one or more logical data blocks accessible to the host computer device, transmitting, by the control computer device, metadata pertaining to the one or more logical data blocks to the host computer device, wherein the metadata includes physical location of one or more physical data blocks in the shared physical storage space corresponding to the one or more logical data blocks and an expected generation identifier of each of the one or more physical data blocks;

thereby enabling the host computer device to read data from the physical location and verify whether the read data is valid using the generation identifier;

wherein the enabling comprises enabling the host computer device to:

read data from the physical location including reading a current generation identifier from the predefined location within each of the one or more physical data blocks;

verify whether the current generation identifier matches the expected generation identifier; and

in case of a match, determine the read data is valid; otherwise, send a new direct read request to the control computer device to request updated metadata.

7. The computerized method of claim 6 , wherein the generation identifier is selected from a group comprising: a write generation, a commit ID, and a timestamp value.

8. The computerized method of claim 6 , wherein the generation identifier is stored at the predefined location with a predefined size.

9. The computerized method of claim 6 , further comprising storing additional information pertaining to data validity at the predefined location.

10. The computerized method of claim 6 , wherein the physical location includes an offset within a physical data block of the one or more physical data blocks and a length of the data to be read.

11. A non-transitory computer readable storage medium tangibly embodying a program of instructions that, when executed by a computer, causing the computer to perform a method of direct read control of a host computer device reading from a shared physical storage space in a data storage system, the data storage system comprising one or more control computer devices operatively connected to the shared physical storage space and to one or more host computer devices, each control computer device being assigned with access control and write permission to a respective storage area in the shared physical storage space, the method being performed by a control computer device in the data storage system and comprising:

for each given write operation of writing data at a specific time to a given physical data block in the respective physical storage area accessible to the control computer device, storing a generation identifier in a predefined location within the given physical data block, the generation identifier being a unique identification of the given write operation, thereby providing respective generation identifiers for distinguishing between different write operations to the given physical data block; and

responsive to a direct read request from a host computer device of the one or more host computer devices to read data from the shared physical storage space, the direct read request indicative of one or more logical data blocks accessible to the host computer device, transmitting metadata pertaining to the one or more logical data blocks to the host computer device, wherein the metadata includes physical location of one or more physical data blocks in the shared physical storage space corresponding to the one or more logical data blocks and an expected generation identifier of each of the one or more physical data blocks;

thereby enabling the host computer device to read data from the physical location and verify whether the read data is valid using the generation identifier;

wherein the enabling comprises enabling the host computer device to:

read data from the physical location including reading a current generation identifier from the predefined location within each of the one or more physical data blocks;

verify whether the current generation identifier matches the expected generation identifier; and

in case of a match, determine the read data is valid; otherwise, send a new direct read request to the control computer device to request updated metadata.

12. The storage medium of claim 11 , wherein the generation identifier is selected from a group comprising: a write generation, a commit ID, and a timestamp value.

13. The storage medium of claim 11 , wherein the generation identifier is stored at the predefined location with a predefined size.

14. The storage medium of claim 11 , wherein the method further comprises storing additional information pertaining to data validity at the predefined location.

15. The storage medium of claim 11 , wherein the physical location includes an offset within a physical data block of the one or more physical data blocks and a length of the data to be read.

16. A non-transitory computer readable storage medium tangibly embodying a program of instructions that, when executed by a computer, causing the computer to perform a method of direct read of a host computer device to a shared physical storage space in a data storage system, the data storage system comprising one or more control computer devices operatively connected to the shared physical storage space and to one or more host computer devices including the host computer device, each control computer device being assigned with access control and write permission to a respective storage area in the shared physical storage space, the method comprising:

sending a direct read request to a control computer device of the one or more control computer devices, the direct read request indicative of one or more logical data blocks accessible to the host computer device;

receiving, from the control computer device, metadata pertaining to the one or more logical data blocks, wherein the metadata includes physical location of one or more physical data blocks on the shared physical storage space corresponding to the one or more logical data blocks and an expected generation identifier of each of the one or more physical data blocks, wherein, for each given write operation of writing data at a specific time to a given physical data block in the respective physical storage area accessible to the control computer device, a generation identifier is stored in a predefined location within the given physical data block, the generation identifier being a unique identification of the given write operation, thereby providing respective generation identifiers for distinguishing between different write operations to the given physical data block;

reading data from the physical location including reading a current generation identifier from the predefined location within each of the one or more physical data blocks;

verifying whether the current generation identifier matches the expected generation identifier; and

in case of a match, determining the read data is valid; otherwise, sending a new direct read request to the control computer device to request updated metadata.

17. The storage medium of claim 16 , wherein the generation identifier is selected from a group comprising: a write generation, a commit ID, and a timestamp value.

18. The storage medium of claim 16 , wherein the generation identifier is stored at the predefined location with a predefined size.

19. The storage medium of claim 16 , wherein the method further comprises storing additional information pertaining to data validity at the predefined location.

20. The storage medium of claim 16 , wherein the physical location includes an offset within a physical data block of the one or more physical data blocks and a length of the data to be read.

Assignments (4)
SECURITY INTEREST Recorded Nov 4, 2024
From: SILK TECHNOLOGIES INC.; THE SILK TECHNOLOGIES ILC LTD
To: TRINITY CAPITAL INC., AS COLLATERAL AGENT
Reel/Frame 069133/0868 →
SECURITY INTEREST Recorded Sep 19, 2023
From: THE SILK TECHNOLOGIES ILC LTD
To: KREOS CAPITAL VI (EXPERT FUND) L.P.
Reel/Frame 064945/0667 →
SECURITY INTEREST Recorded Sep 20, 2021
From: THE SILK TECHNOLOGIES ILC, LTD.
To: KREOS CAPITAL VI (EXPERT FUND) L.P.
Reel/Frame 057523/0433 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2019
From: GORDON, EYAL; STEINBERG, ILAN; MALUL, ELI; SALZMAN, SHAHAR; HITRON, GILAD; MANN, ERAN
To: KAMINARIO TECHNOLOGIES LTD.
Reel/Frame 049533/0158 →
Continuity (2)
Provisional Application 62555162 · Sep 7, 2017
Related Publication 20190073313A1 · Mar 7, 2019