IP Library Granted Patent US 8,700,727
Granted Patent B1
US 8,700,727 · App. 13/020,697 · Granted Apr 15, 2014

Peer-to-peer based caching for network file system

Inventors: Abhijeet P. Gole (Cupertino, CA); Premkumar Mahadev Nikam (Sunnyvale, CA); Arvind Pruthi (Los Gatos, CA); Shekhar S. Deshkar (Pune, IN)
Assignee: Toshiba Corporation
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 8,700,727
App. No.
13/020,697
Granted
Apr 15, 2014
Kind
B1
Abstract

Systems and techniques relating to network file systems are described. A described technique includes associating with a process that exports a network file system, where the process manages the network file system, associating with one or more peers that use the network file system, where the one or more peers cache data associated with the network file system on one or more non-volatile memory structures, receiving a file system request to read or write at least a portion of a file that is associated with the network file system, and processing the file system request by selectively communicating with the one or more peers to retrieve cached data associated with the file when the file system request indicates a read or inform the one or more peers of a write to the file when the file system request indicates a write.

Claims (63)

1. A system comprising:

a server system running a process that exports a network file system, wherein the process manages the network file system; and

a device that is communicatively coupled with the server system via a network, the device comprising: (i) a non-volatile memory structure to cache data associated with the network file system, and (ii) processor electronics configured to

associate with the network file system,

associate with one or more peers that are configured to cache data associated with the network file system, the one or more peers having respective one or more connections with the network file system,

receive a file system request to read or write at least a portion of a file that is associated with the network file system,

selectively communicate with the one or more peers to retrieve cached data associated with the file when the file system request indicates a read, and

perform a write file operation when the file system request indicates a write, the write file operation to receive file data from an application for writing to the file, selectively communicate with the one or more peers to inform the one or more peers of a write to the file, selectively perform data de-duplication to invalidate any remotely cached versions of the file that are cached by the one or more peers, and cache the file data in the non-volatile memory structure,

wherein the processor electronics are configured to commit the file data to the network file system.

2. The system of claim 1 , wherein the file system request comprises a write request, and wherein the processor electronics are configured to

commit the file data in aggregate with additional file data to the network file system after the write file operation is successfully completed, the additional file data being associated with an additional write file operation.

3. The system of claim 1 , wherein the file system request comprises a read request, and wherein the processor electronics are configured to

check for the file in the non-volatile memory structure,

selectively identify a peer of the one or more peers having a cached version of the file,

selectively send, based on a lack of the file in the non-volatile memory structure, a request to the identified peer to retrieve at least a portion of a remotely cached version of the file, and

selectively communicate, based on a lack of locally and remotely cached versions of the file, with a process exporting the network file system to retrieve at least a portion of the file.

4. The system of claim 1 , wherein the processor electronics are configured to

cache the file on the non-volatile memory structure, and

perform data de-duplication to invalidate one or more remotely cached versions of the file.

5. The system of claim 1 , wherein the processor electronics are configured to run virtual machines that comprise a first virtual machine and a second virtual machine, wherein the first virtual machine runs a first peer process to access the network file system, wherein the second virtual machine runs a second peer process to access the network file system, and wherein the first peer process and second peer process cache data associated with the network file system on the non-volatile memory structure.

6. The system of claim 5 , wherein the first peer process caches a first version of the file on the non-volatile memory structure, wherein the second peer process caches a second version of the file on the non-volatile memory structure and causes the first peer process to invalidate the first version.

7. The system of claim 1 , wherein the device comprises a solid state drive that comprises the non-volatile memory structure, wherein the non-volatile memory structure comprises a flash memory structure.

8. An apparatus comprising:

a non-volatile memory structure to cache data associated with a network file system; and

processor electronics configured to

associate with the network file system,

associate with one or more peers that are configured to cache data associated with the network file system, the one or more peers having respective one or more connections with the network file system,

receive a file system request to read or write at least a portion of a file that is associated with the network file system,

selectively communicate with the one or more peers to retrieve cached data associated with the file, when the file system request indicates a read, and

perform a write file operation when the file system request indicates a write, the write file operation to receive file data from an application for writing to the file, selectively communicate with the one or more peers to inform the one or more peers of a write to the file, selectively perform data de-duplication to invalidate any remotely cached versions of the file that are cached by the one or more peers, and cache the file data in the non-volatile memory structure,

wherein the processor electronics are configured to commit the file data to the network file system.

9. The apparatus of claim 8 , wherein the file system request comprises a write request, and wherein the processor electronics are configured to

commit the file data in aggregate with additional file data to the network file system after the write file operation is successfully completed, the additional file data being associated with an additional write file operation.

10. The apparatus of claim 8 , wherein the file system request comprises a read request, and wherein the processor electronics are configured to

check for the file in the non-volatile memory structure,

selectively identify a peer of the one or more peers having a cached version of the file,

selectively send, based on a lack of the file in the non-volatile memory structure, a request to the identified peer to retrieve at least a portion of a remotely cached version of the file, and

selectively communicate, based on a lack of locally and remotely cached versions of the file, with a process exporting the network file system to retrieve at least a portion of the file.

11. The apparatus of claim 8 , wherein the processor electronics are configured to

cache the file on the non-volatile memory structure, and

perform data de-duplication to invalidate one or more remotely cached versions of the file.

12. The apparatus of claim 8 , wherein the processor electronics are configured to run virtual machines that comprise a first virtual machine and a second virtual machine, wherein the first virtual machine runs a first peer process to access the network file system, wherein the second virtual machine runs a second peer process to access the network file system, and wherein the first peer process and second peer process cache data associated with the network file system on the non-volatile memory structure.

13. The apparatus of claim 12 , wherein the first peer process caches a first version of the file on the non-volatile memory structure, wherein the second peer process caches a second version of the file on the non-volatile memory structure and causes the first peer process to invalidate the first version.

14. The apparatus of claim 8 , comprising:

a solid state drive that comprises the non-volatile memory structure, wherein the non-volatile memory structure comprises a flash memory structure.

15. A method comprising:

associating with a process that exports a network file system, wherein the process manages the network file system;

associating with one or more peers that use the network file system, wherein the one or more peers cache data associated with the network file system on one or more non-volatile memory structures;

receiving a file system request to read or write at least a portion of a file that is associated with the network file system; and

processing the file system request by selectively communicating with the one or more peers to retrieve cached data associated with the file when the file system request indicates a read and performing a write file operation when the file system request indicates a write, the write file operation comprising: receiving file data from an application for writing to the file, selectively informing the one or more peers of a write to the file, selectively performing data de-duplication to invalidate any remotely cached versions of the file that are cached by the one or more peers, and caching the file data in a local non-volatile memory structure, wherein processing the file system request comprises committing the file data to the network file system.

16. The method of claim 15 , wherein the file system request comprises a write request, and wherein

the file data is committed in aggregate with additional file data to the network file system after the write file operation is successfully completed, the additional file data being associated with an additional write file operation.

17. The method of claim 15 , wherein the file system request comprises a read request, and wherein processing the file system request comprises:

checking for the file in the local non-volatile memory structure;

selectively identifying a peer of the one or more peers having a cached version of the file;

selectively sending, based on a lack of the file in the local non-volatile memory structure, a request to the identified peer to retrieve at least a portion of a remotely cached version of the file; and

selectively communicating, based on a lack of locally and remotely cached versions of the file, with a process exporting the network file system to retrieve at least a portion of the file.

18. The method of claim 15 , wherein processing the file system request comprises:

caching the file on the local non-volatile memory structure; and

performing data de-duplication to invalidate one or more remotely cached versions of the file.

19. The method of claim 15 , comprising:

running virtual machines that comprise a first virtual machine and a second virtual machine, wherein the first virtual machine runs a first peer process to access the network file system, wherein the second virtual machine runs a second peer process to access the network file system, and wherein the first peer process and second peer process cache data associated with the network file system on the one or more non-volatile memory structures.

20. The method of claim 19 , wherein the first peer process caches a first version of the file on the one or more non-volatile memory structures, wherein the second peer process caches a second version of the file on the one or more non-volatile memory structures and causes the first peer process to invalidate the first version.

Assignments (9)
MERGER Recorded Jan 22, 2021
From: TOSHIBA MEMORY CORPORATION
To: K.K. PANGEA
Reel/Frame 055659/0471 →
CHANGE OF NAME AND ADDRESS Recorded Jan 22, 2021
From: K.K. PANGEA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 055669/0401 →
CHANGE OF NAME AND ADDRESS Recorded Jan 22, 2021
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 055669/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2018
From: TOSHIBA CORPORATION
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 047262/0500 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2014
From: MARVELL INTERNATIONAL LTD.
To: TOSHIBA CORPORATION
Reel/Frame 032208/0241 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2011
From: DESHKAR, SHEKHAR S.
To: MARVELL INDIA PVT. LTD.
Reel/Frame 025793/0299 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2011
From: MARVELL INDIA PVT. LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 025793/0325 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2011
From: MARVELL SEMICONDUCTOR, INC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 025793/0286 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2011
From: GOLE, ABHIJEET P.; NIKAM, PREMKUMAR MAHADEV; PRUTHI, ARVIND
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 025793/0260 →
Continuity (1)
Provisional Application 61301770 · Feb 5, 2010