IP Library Granted Patent US 9,390,019
Granted Patent B2
US 9,390,019 · App. 11/365,474 · Granted Jul 12, 2016

Method and apparatus for providing high-performance and highly-scalable storage acceleration

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,019
App. No.
11/365,474
Granted
Jul 12, 2016
Kind
B2
Abstract

A method and apparatus of providing high performance and highly scalable storage acceleration includes a cluster node-spanning RAM disk (CRD) interposed in the data path between a storage server and a computer server. The CRD addresses performance problems with applications that need to access large amounts of data and are negatively impacted by the latency of classic disk-based storage systems. It solves this problem by placing the data the application needs into a large (with respect to the server's main memory) RAM-based cache where it can be accessed with extremely low latency, hence improving the performance of the application significantly. The CRD is implemented using a novel architecture which has very significant cost and performance advantages over existing or alternative solutions.

Claims (38)

1. A storage system, comprising:

a cache system disposed in a network path between, a storage server and a compute server, the cache system further comprising:

a plurality of cache devices, each cache device comprising:

a processor;

a data memory; and

a network interface,

wherein each cache device of the plurality of cache devices is configured to act as a proxy server to maintain a directory of a location of the cache device of the plurality of cache devices in which a data record is stored; and, one of the plurality of cache devices is designated as a default device to respond to a request from the compute server and to communicate with other cache devices of the plurality of cache devices so that:

responsive to the request for the stored data record, the stored data record is sent directly from the cache device in which the data record is stored to the compute server, providing that the data record of the request is stored in one or more of the plurality of cache devices, and

wherein the cache device intercepting the storage operation request has a network address that is a virtual address of a proxy computer application program operating on the cache system.

2. The system according to claim 1 , wherein the plurality of cache devices comprise blade servers.

3. The system according to claim 2 , wherein each cached device of the plurality of cache devices includes an available amount of memory for storage of a plurality data records and a memory pool for the cache system is comprised of a total amount of the available amount of memory of the plurality of cache devices.

4. The system according to claim 3 , wherein a size of the memory pool is at least 300 GB.

5. The system according to claim 1 , wherein the plurality of cache devices are interconnected by a local area network.

6. The system according to claim 5 , wherein the network comprises Gigabit Ethernet.

7. The system according to claim 5 , wherein the network is an Ethernet.

8. The system according to claim 5 , wherein the network uses a TCP (Transmission Control Protocol).

9. The system according to claim 1 , wherein the storage operations are in accordance with NFS protocol.

10. The storage system of claim 1 , wherein the storage operation requests comprise at least one of read requests or write requests.

11. A method of storage access, comprising:

providing a cache system disposed in a network path between a storage server and a compute server;

wherein the cache system comprises:

a plurality of cache devices, each cache device comprising:

a processor configured to act as a proxy server;

a data memory; and

a network interface,

configuring a cache device of the plurality of cache devices for intercepting storage operations between the compute server and the storage server and maintaining a directory of the cache device of the plurality of cache devices on which data records are stored;

determining the cache device on which a data record of the data records requested by the intercepted storage operation is stored using the directory;

communicating with the determined cache device to cause the requested data record to be sent from the cache device on which the requested data record is stored to the compute server;

sending intercepted storage operations where the data record is not stored in the plurality of cache devices to the storage server, and

wherein the cache device intercepting the storage operation request has a network address that is a virtual address of a proxy computer application program operating on the cache system.

12. The method according to claim 11 , wherein the plurality of cache devices comprise blade servers.

13. The method according to claim 11 , further comprising:

interconnecting the plurality of cache devices by a local area network.

14. The method according to claim 13 , wherein the local area network comprises Gigabit Ethernet.

15. The method according to claim 11 , wherein each of the cache devices includes an available amount of system memory, the method further comprising:

forming a memory pool for the cache system from the combined available memory of all of the cache devices.

16. The system according to claim 15 , wherein the cache device memory is a semiconductor memory.

17. The method according to claim 11 , wherein the network uses a TCP (Transmission Control Protocol).

Assignments (16)
CORRECTIVE ASSIGNMENT TO REMOVE US PATENT NO. 9013874 PREVIOUSLY RECORDED UNDER REEL AND FRAME 064272/0249. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 17, 2024
From: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC)
To: INNOVATIONS IN MEMORY LLC
Reel/Frame 068998/0780 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2023
From: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC)
To: INNOVATIONS IN MEMORY LLC
Reel/Frame 064272/0249 →
RELEASE OF SECURITY INTEREST Recorded Jun 16, 2021
From: SILICON VALLEY BANK
To: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC (F/K/A VIOLIN MEMORY, INC.))
Reel/Frame 056600/0186 →
CHANGE OF NAME Recorded May 25, 2021
From: VIOLIN SYSTEMS LLC
To: VSIP HOLDINGS LLC
Reel/Frame 056366/0849 →
RELEASE OF SECURITY INTEREST Recorded Jan 22, 2018
From: SILICON VALLEY BANK
To: VIOLIN SYSTEMS LLC
Reel/Frame 044686/0209 →
CHANGE OF NAME Recorded Dec 19, 2017
From: VIOLIN MEMORY, INC.
To: VIOLIN SYSTEMS LLC
Reel/Frame 044908/0680 →
SECURITY INTEREST Recorded Aug 27, 2014
From: VIOLIN MEMORY, INC.
To: SILICON VALLEY BANK
Reel/Frame 033645/0834 →
RELEASE OF SECURITY INTEREST Recorded Aug 26, 2014
From: COMERICA BANK
To: VIOLIN MEMORY, INC.
Reel/Frame 033617/0360 →
RELEASE OF SECURITY INTEREST Recorded Aug 22, 2014
From: TRIPLEPOINT CAPITAL LLC
To: VIOLIN MEMORY, INC.
Reel/Frame 033591/0759 →
SECURITY AGREEMENT Recorded Jul 19, 2013
From: VIOLIN MEMORY, INC.
To: COMERICA BANK, A TEXAS BANKING ASSOCIATION
Reel/Frame 030833/0440 →
SECURITY AGREEMENT Recorded May 16, 2013
From: VIOLIN MEMORY, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 030426/0821 →
CHANGE OF NAME Recorded Aug 10, 2010
From: GEAR SIX, INC.
To: GEAR6(ASSIGNMENT FOR THE BENEFIT OF CREDITORS)LLC
Reel/Frame 024813/0027 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2010
From: GEAR6(ASSIGNMENT FOR THE BENEFIT OF CREDITORS)LLC
To: VIOLIN MEMORY, INC.
Reel/Frame 024814/0008 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2008
From: PATTERSON, MARTIN; OBERDORFER, MATTHIAS
To: GEAR SIX, INC.
Reel/Frame 021441/0653 →
CHANGE OF NAME Recorded Feb 2, 2007
From: ENGINEERED INTELLIGENCE CORPORATION
To: GEAR SIX, INC.
Reel/Frame 018849/0704 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2006
From: PATTERSON, MARTIN; OBERDORFER, MATTHIAS
To: ENGINEERED INTELLIGENCE CORPORATION
Reel/Frame 017288/0432 →