As you point out, DiskStore reads in too much at once, as in my current implementation. ByteStreams.limit() is good alternative.