Abstract:
A distributed storage system node (125, 130, 135) is disclosed. The distributed storage system node (125, 130, 135) may include at least one storage device (140, 145, 150, 155, 160, 165, 225, 230), which may act as the primary replica (2315) for data subject to an Input/Output (I/O) request (905). A cost analyzer (2310) may calculate a local estimated time required (3305) to complete the I/O request (905) at the primary replica, and a remote estimated time required (3710) to complete the I/O request (905) at a secondary replica (2320, 2325) of the data. An I/O redirector (215) may direct the I/O request (905) to either the primary replica (2315) or the secondary replica (2320, 2325) based on the local estimated time required (3305) and the one remote estimated time required (3710).
Abstract:
According to one general aspect, a method may include requesting, from a second tier of a cache memory system, a first instruction stored at a first memory address. The method may also include requesting, from a second tier of a branch target buffer system, a branch record associated with the first memory address. The method may also include receiving the branch record before receiving the first instruction. The method may also include pre-fetching, in response to receiving the branch record and before receiving the first instruction, a non-sequential instruction stored at a non-sequential memory address.