Patent ID: 7752241

Claim:
A system for implementing a distributed file system, comprising: a plurality of devices, wherein each device comprises: a processor; and a memory coupled to the processor, wherein the memory comprises program instructions that are executable by the processor to implement one or more file system components and one or more messaging components that are distinct from said one or more file system components, wherein the one or more file system components are operable to fulfill file I/O requests from client applications that are external to the one or more file system components and external to the one or more messaging components; wherein for at least some of the file system components, different ones of said file system components are compatible with different file system standards, wherein said at least some of the file system components have different message interfaces specific to each file system component, wherein ones of the different message interfaces are compatible with different ones of the different file system standards such that said at least some file system components are incompatible to communicate with each other without use of said one or more messaging components; wherein each of the file system components is configured to: perform a sub-function of the distributed file system; communicate with at least one other file system component via one or more of the messaging components to fulfill a client application file I/O request; wherein one or more of the file system components are further configured to: send, via a given one of the one or more messaging components, a message to each of a plurality of file system components each configured to perform the same sub-function of the distributed file system, wherein the message comprises information regarding the client application file I/O request; receive, according to the given messaging component, a response from one of the plurality of file system components indicating completion of the sub-function; and subsequent to receiving the response, discard any further responses from others of the plurality of file system components; wherein to communicate with any given file system component, each of said file system components is configured to convey a message to said given file system component via one or more of the messaging components without invoking a remote procedure call or a direct function call exposed by said given file system component, such that any one of said file system components is operable to communicate with said given file system component without dependence on any message interface or any file system standard that is specific to said given file system component.