if (!requestComplete.get() && request.complete(rCtx.getBookieIndex(), bookie, buffer, entryId)) {
@Override boolean complete(int bookieIndex, BookieSocketAddress host, ByteBuf buffer, long entryId) { boolean completed = super.complete(bookieIndex, host, buffer, entryId); if (completed) { int numReplicasTried = getNextReplicaIndexToReadFrom(); // Check if any speculative reads were issued and mark any bookies before the // first speculative read as slow for (int i = 0; i < numReplicasTried; i++) { int slowBookieIndex = orderedEnsemble.get(i); BookieSocketAddress slowBookieSocketAddress = ensemble.get(slowBookieIndex); clientCtx.getPlacementPolicy().registerSlowBookie(slowBookieSocketAddress, entryId); } } return completed; } }