IP Library Granted Patent US 9,015,425
Granted Patent B2
US 9,015,425 · App. 14/094,121 · Granted Apr 21, 2015

Apparatus, systems, and methods for nameless writes

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 9,015,425
App. No.
14/094,121
Granted
Apr 21, 2015
Kind
B2
Abstract

An apparatus, system, and method are disclosed for implementing nameless storage operations. Storage clients can access and allocate portions of an address space of a non-volatile storage device to a nameless storage request. The methods include receiving from a storage client, a nameless storage request configured for storing data in an unspecified, available address of a logical block address of a non-volatile storage device, determining whether there exists enough logical capacity in the logical address space to satisfy the nameless storage request, allocating a logical identifier to the nameless storage request, and sending the allocated logical identifier to the storage client. Other embodiments are described.

Claims (41)

1. A method, comprising:

receiving, from a storage client, a block IO write request configured for storing data in an unspecified, available logical block address of a logical address space managed by a non-volatile storage device;

allocating a logical block address of the logical address space to data of the write request; and

communicating the allocated logical block address to the storage client.

2. The method of claim 1 , further comprising determining whether there is sufficient capacity in the logical address space to satisfy the write request.

3. The method of claim 2 , wherein determining whether there is sufficient capacity includes using a data structure for maintaining logical block address assignments in the logical address space.

4. The method of claim 3 , wherein the write request from the storage client does not specify a logical block address in the logical address space.

5. The method of claim 1 , wherein the allocated logical block address comprises one or more logical identifiers that are assigned to the write request when the logical block address is allocated.

6. The method of claim 5 , further comprising communicating the assigned one or more logical identifiers to the storage client.

7. The method of claim 5 , further comprising storing the data of the write request at one or more storage locations of the non-volatile storage device after the logical identifier is assigned to the data of the write request.

8. The method of claim 7 , further comprising storing the data sequentially in the one or more storage locations or storing the data in a log based format in the one or more storage locations.

9. The method of claim 7 , further comprising receiving from the storage client a request to read the stored data.

10. The method of claim 1 , wherein the non-volatile storage device allocates the logical block address to the data of the request.

11. A method for data allocation, comprising:

receiving, from a storage client, a block IO write request configured for writing data in an unspecified, available logical block address of a logical address space managed by a non-volatile storage device;

determining whether capacity exists in the logical address space to satisfy the write request;

allocating an unallocated logical block address of the logical address space to data of the write request; and

reporting the allocated logical block address to the storage client.

12. The method of claim 11 , wherein the write request from the storage client does not request a specific logical identifier.

13. The method of claim 11 , wherein the write request from the storage client identifies a specific logical identifier.

14. The method of claim 11 , further comprising assigning a logical identifier to the write request and reporting the assigned logical identifier to the storage client.

15. The method of claim 11 , further comprising writing the data of the write request at a storage location of the non-volatile storage device.

16. The method of claim 15 , further comprising receiving from the storage client a request to read the stored data.

17. A nameless storage method, comprising:

receiving, from a storage client, a nameless block IO write request configured for storing data in an unspecified, available logical block address of a logical address space managed by a non-volatile storage device;

determining whether there exists enough logical capacity in the logical address space to satisfy the nameless write request;

allocating a logical identifier to the nameless write request; and

sending the allocated logical identifier to the storage client.

18. The method of claim 17 , wherein determining whether there exists enough logical capacity includes using an index for managing logical identifier allocations in the logical address space.

19. The method of claim 17 , wherein a list of logical identifiers or a range of logical identifiers are allocated to the nameless write request.

20. The method of claim 17 , further comprising writing the data of the nameless write request at a storage location of the non-volatile storage device.

21. The method of claim 20 , further comprising receiving from the storage client a request to read the stored data.

22. A method for data allocation, comprising:

receiving, from a storage client, a block IO write request configured for writing data in an unspecified, available logical block address of a logical address space managed by a non-volatile storage device;

determining whether capacity exists in the logical address space to satisfy the write request using an index configured to maintain logical identifier assignments in the logical address space, the index being managed by the non-volatile storage device;

allocating an unallocated logical block address of the logical address space to data of the write request; and

reporting the allocated logical block address to the storage client.

23. The method of claim 22 , wherein the write request from the storage client does not specify a logical block address in the logical address space.

24. The method of claim 22 , wherein the allocated logical block address comprises one or more logical identifiers that are assigned to the write request when the logical block address is allocated.

25. The method of claim 24 , further comprising storing the data of the write request at one or more storage locations of the non-volatile storage device after the logical identifier is assigned to the data of the write request.

26. The method of claim 25 , further comprising storing the data sequentially in the one or more storage locations or storing the data in a log based format in the one or more storage locations.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
RELEASE OF SECURITY INTEREST Recorded May 4, 2016
From: FUSION-IO, INC.
To: SANDISK CORPORATION
Reel/Frame 038748/0880 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2016
From: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
To: PS12 LUXCO S.A.R.L.
Reel/Frame 038362/0575 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2016
From: PS12 LUXCO S.A.R.L.
To: LONGITUDE ENTERPRISE FLASH S.A.R.L.
Reel/Frame 038362/0604 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2016
From: LONGITUDE ENTERPRISE FLASH SARL
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 038324/0628 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2014
From: FUSION-IO, INC.
To: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
Reel/Frame 033419/0748 →
SECURITY INTEREST Recorded Jul 24, 2014
From: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
To: FUSION-IO, INC.
Reel/Frame 033410/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2014
From: FUSION-IO, INC.
To: INTELLECTUAL PROPERTY HOLDINGS 2 LLC
Reel/Frame 033389/0511 →