Implementing coherency and page cache support in a distributed way for files
A plurality of computing devices are communicatively coupled to each other via a network, and each of the plurality of computing devices is operably coupled to one or more of a plurality of storage devices. The computing devices may use local caches in a coherent manner when accessing the plurality of storage devices.
1 . A system comprising:
a first computing device; and
a second computing device operably coupled to one or more storage devices, wherein:
the second computing device is configured to provide a token, associated with the one or more storage devices, to the first computing device in response to a lease request from the first computing device,
the token is configured to govern access by the first computing device to the one or more storage devices, and
the token is configured to define caching permissions associated with the access.
2 . The system of claim 1 , wherein the first computing device is operable to access the one or more storage devices according to the token.
3 . The system of claim 1 , wherein the token is shared between the first computing device and the second computing device.
4 . The system of claim 1 , wherein the token is configured to signal an access by the first computing device.
5 . The system of claim 1 , wherein the first computing device comprises a read cache and a write cache.
6 . The system of claim 5 , wherein the token allows caching in the read cache and write cache.
7 . The system of claim 1 , wherein the token does not allow caching into a cache memory.
8 . The system of claim 1 , wherein the first computing device comprises a random access memory (RAM).
9 . The system of claim 1 , wherein the first computing device comprises one or both of a dynamic RAM (DRAM) and a static RAM (SRAM).
10 . The system of claim 1 , wherein the one or more storage devices comprise flash memory.
11 . The system of claim 1 , wherein the token allows access to at least a portion of a file stored on the one or more storage devices.
12 . The system of claim 1 , wherein the token allows access to a directory of a file system stored on the one or more storage devices.
13 . The system of claim 1 , wherein the second computing device provides the token in response to the first computing device submitting a lease request to the second computing device.
14 . The system of claim 13 , wherein the lease request comprises lease capability information.
15 . The system of claim 1 , wherein the first computing device is configured to submit a lease renewal request to the second computing device, and the lease renewal request comprises a lease renewal capability.
16 . The system of claim 15 , wherein the second computing device is configured to provide a lease renewal when the lease renewal capability is the same as an initial lease capability.
17 . The system of claim 1 , wherein the second computing device is configured to determine that the first computing device does not need the token, and upon determining that the first computing device does not need the token, the second computing device is configured to revoke a lease.
18 . The system of claim 1 , wherein the first computing device is configured to relinquish a lease upon determining that the first computing device does not need the token.
19 . The system of claim 1 , wherein the first computing device comprises a local memory, and at least a portion of the local memory is used as the cache memory.
20 . The system of claim 1 , wherein the second computing device is locally attached to at least one storage device of the one or more storage devices.