public final class JournalingBlobWriteSessionConfig extends BlobWriteSessionConfig
There are scenarios in which disk space is more plentiful than memory space. This new BlobWriteSessionConfig allows augmenting an instance of storage to produce BlobWriteSessions which will buffer to disk rather than holding things in memory.
If we have disk available we can checkpoint the contents of an object to disk before transmitting to GCS. The checkpointed data on disk allows arbitrary rewind in the case of failure but allows the upload to happen as soon as the checkpoint ack is complete.
Due to the details of how Resumable Upload Sessions are implemented in the GCS gRPC API this is possible. However, this approach will not work with the HTTP transports Resumable Upload Session spec. See Also: Storage#blobWriteSession(BlobInfo, BlobWriteOption...), GrpcStorageOptions.Builder#setBlobWriteSessionConfig(BlobWriteSessionConfig)