An apparatus for object recovery in a computer system having a plurality of nodes networked together, wherein the nodes are grouped into a plurality of systems each having multiple nodes, the apparatus comprising a processor, a memory, and a read request processing module provided for each system, the read request processing module being configured to:
- receive from a client computer a read request for an object, the object having been replicated from/to a first system in which the read request processing module resides to/from at least one second system among the plurality of systems;
- if the object of the read request is available in the first system, return the object of the read request to the client computer;
- and
- if the object of the read request is not available in the first system, perform a read from replica process, the read from replica process comprising:
- if the read request utilizes HTTP protocol, retrieving the replica of the object from the second system and using the replica of the object to return the object of the read request to the client computer, and then initiating repair from replica of the object in the first system utilizing the replica of the object, and
- if the read request utilizes a protocol different from HTTP protocol, returning a notice to the client computer in order to delay a process for the read request, retrieving the replica of the object from the second system, performing repair from replica of the object in the first system utilizing the replica of the object, and then returning the repaired object to the client computer.