IP Library Granted Patent US 9,189,494
Granted Patent B2
US 9,189,494 · App. 14/498,923 · Granted Nov 17, 2015

Object file system

Inventors: Jan Olderdissen (Thousand Oaks, CA); Dan Olster (Woodland Hills, CA); Craig Robertson (Simi Valley, CA); Doug Schafer (Agoura Hills, CA); Dave Fellinger (Westlake Village, CA)
Assignee: DataDirect Networks, Inc.
G06F17/30182G06F11/1076G06F17/30218H04L67/1097G06F17/30864G06F2211/1038
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,189,494
App. No.
14/498,923
Granted
Nov 17, 2015
Kind
B2
Abstract

An object based file system for storing and accessing objects is disclosed. The file system may be implemented as a method in hardware, firmware, software, or a combination thereof. The method may include receiving from an application program an object write request. A selected storage node on which to store the object may be selected, including identifying a least busy storage node and/or a least full storage node. The object and the object write request may be sent to the selected storage node. A write success message may be received from the selected storage node. The successful writing of the object may be reported to the application program.

Claims (60)

1. A method for accessing objects comprising:

object access software on a server receiving from an application program an object write request, the write request including an object comprised of object data and meta data

the object access software selecting a best storage node from a plurality of storage nodes on which to store the object including identifying and evaluating among a least busy storage node, a most used storage node and a least full storage node of the plurality of storage nodes

the object access software selecting at least one additional storage node from the plurality of storage nodes on which to store the object

the object access software sending the object and the object write request to the best storage node and concurrently sending the object to the at least one additional storage node

the object access software receiving a first write success message from the best storage node, the first write success message including an object identifier, the object identifier including a version identifier, a location identifier and a unique identifier

the object access software receiving a second write success message from the additional storage node

the object access software reporting successful writing of the object to the application program

the object access software receiving a read request for a requested object specifying the object identifier

the object access software selecting to obtain the requested object from between at least the best storage node and the additional storage node according to criteria including a shortest path, a highest speed connection, and a least accessed.

2. The method of claim 1 wherein each storage node includes a plurality of storage media.

3. The method of claim 2 wherein each storage node runs a local file system.

4. The method of claim 2 wherein the storage media are one or more selected from the group including hard disk drives, silicon storage devices and magnetic tape devices.

5. The method of claim 1 further comprising:

the object access software storing the object identifier and the meta data in a database.

6. The method of claim 1 wherein the meta data includes at least one selected from the group including an object creator, object owner, access permissions, and a creation time.

7. The method of claim 1 further comprising:

recognizing the addition of a new storage node

automatically adapting to the new storage node including redistributing objects from a more full node of the plurality of storage nodes to the new storage node.

8. A non-transitory storage medium having instructions stored thereon which when executed by a processor cause the processor to perform actions comprising:

receiving from an application program an object write request, the write request including an object comprised of object data and meta data

selecting a best storage node from a plurality of storage nodes on which to store the object including identifying and evaluating among a least busy storage node, a most used storage node and a least full storage node of the plurality of storage nodes

selecting at least one additional storage node from the plurality of storage nodes on which to store the object

sending the object and the object write request concurrently to the best storage node and the at least one additional storage node

receiving a first write success message from the best storage node, the write success message including an object identifier, the object identifier including a version identifier, a location identifier and a unique identifier

receiving a second write success message from the additional storage node

reporting successful writing of the object to the application program

receiving a read request for a requested object specifying the object identifier

selecting to obtain the requested object from between at least the best storage node and the additional storage node according to criteria including a shortest path, a highest speed connection, and a least accessed.

9. The non-transitory storage medium of claim 8 wherein each storage node includes a plurality of storage media.

10. The non-transitory storage medium of claim 9 wherein the storage media are one or more selected from the group including hard disk drives, silicon storage devices and magnetic tape devices.

11. The non-transitory storage medium of claim 8 wherein each storage node runs a local file system.

12. The non-transitory storage medium of claim 8 having further instructions stored thereon which when executed cause the processor to perform additional actions comprising:

storing the object identifier and the meta data in a database.

13. The non-transitory storage medium of claim 8 wherein the meta data includes at least one selected from the group including an object creator, object owner, access permissions, and a creation time.

14. The non-transitory storage medium of claim 8 having further instructions stored thereon which when executed by the processor cause the processor to perform further actions comprising:

recognizing the addition of a new storage node

automatically adapting to the new storage node including redistributing objects from a more full node of the plurality of storage nodes to the new storage node.

15. A computing device to manage a plurality of storage arrays of storage devices, the computing device comprising:

a processor;

a memory coupled with the processor;

a storage medium having instructions stored thereon which when executed cause the computing device to perform actions comprising:

receiving from an application program an object write request, the write request including an object comprised of object data and meta data

selecting a best storage node from a plurality of storage nodes on which to store the object including identifying and evaluating among a least busy storage node, a most used storage node and a least full storage node of the plurality of storage nodes

selecting at least one additional storage node from the plurality of storage nodes on which to store the object

sending the object and the object write request concurrently to the best storage node and the additional storage node

receiving a first write success message from the best storage node, the write success message including an object identifier, the object identifier including a version identifier, a location identifier and a unique identifier

receiving a second write success message from the additional storage node

reporting successful writing of the object to the application program

receiving a read request for a requested object specifying the object identifier

selecting to obtain the requested object from between at least the best storage node and the additional storage node according to criteria including a shortest path, a highest speed connection, and a least accessed.

16. The computing device of claim 15 wherein each storage node includes a plurality of storage media.

17. The computing device of claim 16 wherein each storage node runs a local file system.

18. The computing device of claim 16 wherein the storage media are one or more selected from the group including hard disk drives, silicon storage devices and magnetic tape devices.

19. The computing device of claim 15 wherein the meta data includes at least one selected from the group including an object creator, object owner, access permissions, and a creation time.

20. The computing device of claim 15 wherein the storage medium has further instructions stored thereon which when executed cause the computing device to perform further actions comprising:

storing the object identifier and the meta data in a database.

21. The computing device of claim 15 wherein the storage medium has further instructions stored thereon which when executed cause the computing device to perform further actions comprising:

recognizing the addition of a new storage node

automatically adapting to the new storage node including redistributing objects from a more full node of the plurality of storage nodes to the new storage node.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Jun 12, 2026
From: TRIPLEPOINT CAPITAL LLC
To: DATADIRECT NETWORKS, INC.
Reel/Frame 075737/0508 →
RELEASE OF SECURITY INTEREST Recorded Apr 21, 2026
From: TRIPLEPOINT CAPITAL LLC
To: DATADIRECT NETWORKS, INC.
Reel/Frame 075478/0178 →
SECURITY INTEREST Recorded Oct 13, 2018
From: DATADIRECT NETWORKS, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 047228/0734 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2014
From: OLDERDISSEN, JAN; OLSTER, DAN; ROBERTSON, CRAIG; SCHAFER, DOUG; FELLINGER, DAVE
To: DATADIRECT NETWORKS, INC.
Reel/Frame 033833/0348 →
Continuity (2)
Continuation 12873137 · Aug 31, 2010
Related Publication 20150019599A1 · Jan 15, 2015