IP Library Granted Patent US 9,390,102
Granted Patent B2
US 9,390,102 · App. 12/569,579 · Granted Jul 12, 2016

Client application program interface for network-attached storage system

Inventors: Brandon Patrick Byers (San Diego, CA); Scott Philip Chatley (Las Vegas, NV); Thanh Trac Phan (San Diego, CA); J. Gabriel Gallagher (San Diego, CA); Peter Jan Pistek (San Diego, CA)
Assignee: ORACLE INTERNATIONAL CORPORATION
G06F17/302
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,390,102
App. No.
12/569,579
Granted
Jul 12, 2016
Kind
B2
Abstract

Methods and apparatus for providing a network attached storage system which does not require specialized hardware to operate. In one embodiment, a downloadable software package is provided via a web interface. After a user has downloaded and installed the software package, a sharable volume is created upon a host system. In one embodiment, the sharable volume is adapted to present the contents of one or more remote systems to the host system as a local file, drive, or directory. One or more processes resident in the host system are adapted to intercept a command interpretable by the host system and translate the command into one or more commands interpretable by at least one remote system. The one or more commands are then serviced by at least one remote system and a result set is generated. The result set may then be converted into a format interpretable by the host system and output accordingly.

Claims (43)

1. A method of performing file operations on a network-attached storage system, comprising:

receiving at an interface module disposed within a local file system a command interpretable by the local file system;

converting the command into a translated command at the interface module, wherein the translated command is interpretable by a remote file system and comprises an upload request;

determining whether a cache of the interface module has space available for a requested upload corresponding to the upload request, wherein the cache limits a number of concurrent uploads from the local file system;

transmitting the translated command from the interface module to the remote file system and caching the requested upload locally at the cache of the interface module in response to the cache having space available for the requested upload;

receiving at the interface module a set of results from the remote file system in response to the translated command being transmitted from the interface module to the remote file system;

translating the set of results into a format interpretable by the local file system;

placing the translated command in a queue in response to the cache not having space available for the requested upload;

transmitting the queued translated command from the interface module to the remote file system and caching the requested upload of the queued translated command locally at the cache of the interface module in response to the cache having space become available for the requested upload within a first time period of the placing of the translated command in the queue; and

expiring the queued translated command in response to the cache not having space become available for the requested upload within the first time period of the placing of the translated command in the queue.

2. The method of claim 1 , wherein said transmitting the translated command from the interface module to the remote file system comprises applying one or more compression processes to a file designated for upload.

3. The method of claim 1 , wherein said transmitting the translated command from the interface module to the remote file system comprises applying one or more layers of encryption to the translated command.

4. The method of claim 1 , wherein said transmitting the translated command from the interface module to the remote file system comprises creating multiple threads to service a single upload request.

5. The method of claim 1 , wherein the translated command comprises security credentials associated with one or more users of the interface module.

6. An apparatus for performing file operations on a network-attached storage system, the apparatus comprising:

a memory device to store data;

a communications module connected to the memory device to transmit commands to a remote system external to the apparatus;

a first set of instructions contained within the memory device for execution by a processor, wherein the first set of instructions comprise instructions to:

receive a command interpretable by the apparatus;

convert the command into a translated command interpretable by the remote system, the command comprising an upload request;

determine whether a cache of the apparatus has space available for a requested upload corresponding to the upload request, wherein the cache limits a number of concurrent uploads from the apparatus;

provide the translated command to the communications module and cache the requested upload locally at the cache in response to the cache having space available for the requested upload;

place the translated command in a queue in response to the cache not having space available for the requested upload;

provide the queued translated command to the communications module and cache the requested upload of the queued translated command locally at the cache in response to the cache having space become available for the requested upload within a first time period of the placing of the translated command in the queue; and

expire the queued translated command in response to the cache not having space become available for the requested upload within the first time period of the placing of the translated command in the queue; and

a second set of instructions contained within the memory device for execution by the processor, wherein the second set of instructions comprise instructions to translate, into a format interpretable by the apparatus, a set of results received from the remote system after servicing the translated command.

7. The apparatus of claim 6 further comprising a traffic control module to regulate an amount of data being sent from the communications module to the remote system.

8. The apparatus of claim 6 further comprising an upload acceleration module to enhance transmission speeds between the communications module and the remote system.

9. The apparatus of claim 6 further comprising a load balancing module to distribute a set of transfer operations associated with the translated command over a set of transmission media available to the communications module.

10. The apparatus of claim 6 further comprising a file system level trash folder disposed within the memory device to enable one or more deleted files on the memory device to be restored upon instructions from the remote system.

11. A non-transitory computer-readable medium for use in a client device of a remote storage system, the computer-readable medium comprising instructions which, when executed by the client device, perform a process comprising:

receiving at an interface module of the client device a command interpretable by the client device;

converting the command into a translated command at the interface module, wherein the translated command is interpretable by the remote storage system and comprises an upload request;

determining whether a cache of the interface module has space available for a requested upload corresponding to the upload request, wherein the cache limits a number of concurrent uploads from the client device;

transmitting the translated command from the interface module to the remote storage system and caching the requested upload locally at the cache of the interface module in response to the cache having space available for the requested upload;

receiving at the interface module a result set from the remote storage system in response to the translated command being transmitted from the interface module to the remote storage system;

translating the result set into a format interpretable by the client device;

placing the translated command in a queue in response to the cache not having space available for the requested upload;

transmitting the queued translated command from the interface module to the remote storage system and caching the requested upload of the queued translated command locally at the cache of the interface module in response to the cache having space become available for the requested upload within a first time period of the placing of the translated command in the queue; and

expiring the queued translated command in response to the cache not having space become available for the requested upload within the first time period of the placing of the translated command in the queue.

12. The computer readable medium of claim 11 , wherein the process further comprises:

detecting whether one or more errors have occurred; and

transmitting a record of the one or more errors to the remote storage system.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2016
From: ACME ACQUISITION LLC
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 038632/0289 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2015
From: NIRVANIX, INC.
To: ACME ACQUISITION LLC
Reel/Frame 036061/0310 →
SECURITY AGREEMENT Recorded Aug 13, 2013
From: NIRVANIX, INC.
To: TRIPLEPOINT CAPITAL LLC AS COLLATERAL AGENT
Reel/Frame 031005/0628 →
SECURITY AGREEMENT Recorded Aug 9, 2013
From: NIRVANIX, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 030997/0972 →
SECURITY AGREEMENT Recorded Jan 22, 2013
From: NIRVANIX, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 029673/0596 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2012
From: CHATLEY, SCOTT PHILIP
To: NIRVANIX, INC.
Reel/Frame 028062/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2012
From: BYERS, BRANDON PATRICK; PHAN, THANH TRAC; GALLAGHER, J. GABRIEL; PISTEK, PETER JAN
To: NIRVANIX, INC.
Reel/Frame 027829/0952 →
EMPLOYEE PROPRIETARY INFORMATION AND INVENTIONS AGREEMENT Recorded Mar 8, 2012
From: CHATLEY, SCOTT P.
To: NIRVANIX, INC. (FORMERLY DBA STREAMLOAD, INC.)
Reel/Frame 027838/0826 →
Continuity (2)
Provisional Application 61101106 · Sep 29, 2008
Related Publication 20100198889A1 · Aug 5, 2010