IP Library Granted Patent US 9,400,802
Granted Patent B2
US 9,400,802 · App. 14/702,559 · Granted Jul 26, 2016

System and method for providing a unified storage system that supports file/object duality

Inventor: David Slik (Burnaby, CA)
Assignee: NetApp, Inc.
G06F17/302G06F17/30171H04L67/1097
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,400,802
App. No.
14/702,559
Granted
Jul 26, 2016
Kind
B2
Abstract

Methods and systems that permit file protocols and object protocols to co-exist using a file namespace and an object namespace in a unified storage system are disclosed. Data stored in the unified storage system are file-objects that preserve the behaviors expected by both file clients and object clients.

Claims (50)

1. A method for updating file objects based on modifications to file representations of data entities, said method comprising:

generating a file representation of a data entity in a storage system;

generating a first object representation of the data entity in the storage system;

generating a first object namespace redirector that includes a pointer to the first object representation;

generating a file namespace redirector that includes a pointer to the file representation and a pointer to the first object namespace redirector; and

if the file representation has been modified,

copying data content of the modified file representation to a second object representation;

generating a second object namespace redirector that includes a pointer to the second object representation; and

modifying the first object namespace redirector pointer to point to the second object namespace redirector.

2. The method of claim 1 , wherein said copying comprises cloning.

3. The method of claim 1 , further comprising waiting until a holdoff period expires prior to copying data content of the modified file representation to the second object representation.

4. The method of claim 1 , further comprising:

if the object representation has been modified and if the file representation is locked for writing, waiting until a write lock on the file representation is released prior to copying data content of the modified object representation to update the file representation.

5. The method of claim 1 , further comprising:

allocating object identifiers (OIDs) for each of multiple, sequential historical versions of the object representation; and

associating the OIDs with respective object namespace redirectors.

6. A method for providing access to consistent object and file representations of data entities in a storage system, said method comprising:

creating and storing a first representation of a data entity in a storage system;

creating and storing a second representation of the data entity in the storage system;

wherein a first namespace is used by a first protocol to locate the first representation, and a second namespace is used by a second protocol to locate the second representation;

creating a first namespace redirector in the first namespace, wherein the first namespace redirector includes a pointer to the first representation;

creating a second namespace redirector in the second namespace, wherein the second namespace redirector includes a pointer to the second representation and a pointer to the first namespace redirector; and

modifying the first object namespace redirector pointer to point to the second object namespace redirector.

7. The method of claim 6 , further comprising:

in an event that the first representation has been modified, copying the modified first representation to update the second representation; and

in an event that the second representation has been modified, copying the modified second representation to update the first representation, and

wherein modifications made via the first protocol are accessible via the second protocol, and modifications made via the second protocol are accessible via the first protocol.

8. The method of claim 7 , further comprising waiting until a holdoff period expires for the first representation prior to copying the second representation to update the first representation.

9. The method of claim 7 , further comprising in an event that the second representation is locked for writing, waiting until a write lock on the second representation is released prior to copying the modified first representation to update the second representation.

10. The method of claim 6 , further comprising:

creating a third namespace redirector in the first namespace to point to a previous version of the first representation, wherein, when the first representation is modified, an unmodified version of the first representation is retained as the previous version.

11. The method of claim 10 , further comprising:

allocating identifiers for the first representation and each of multiple previous versions of the first representation; and

associating the identifiers with the respective first namespace redirectors.

12. One or more non-transitory machine-readable storage media having program code for updating file objects based on modifications to file representations of data entities stored therein, the program code to:

generate a file representation of a data entity in a storage system;

generate a first object representation of the data entity in the storage system;

generate a first object namespace redirector that includes a pointer to the first object representation;

generate a file namespace redirector that includes a pointer to the file representation and a pointer to the first object namespace redirector; and

if the file representation has been modified,

copy data content of the modified file representation to a second object representation;

generate a second object namespace redirector that includes a pointer to the second object representation; and

modify the first object namespace redirector pointer to point to the second object namespace redirector.

13. The machine-readable storage media of claim 12 , wherein the program code to copy comprises program code to clone.

14. The machine-readable storage media of claim 12 , further comprising program code to wait until a holdoff period expires prior to copying data content of the modified file representation to the second object representation.

15. The machine-readable storage media of claim 12 , further comprising program code to:

if the object representation has been modified, and in an event that the file representation is locked for writing, wait until a write lock on the file representation is released prior to copying data content of the modified object representation to update the file representation.

16. The machine-readable storage media of claim 12 , further comprising program code to:

allocate object identifiers (OIDs) for each of multiple, sequential historical versions of the object representation; and

associate the OIDs with respective object namespace redirectors.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2015
From: SLIK, DAVID
To: NETAPP, INC.
Reel/Frame 037257/0359 →
Continuity (3)
Continuation 14088026 · Nov 22, 2013
Continuation 13168431 · Jun 24, 2011
Related Publication 20150234815A1 · Aug 20, 2015