Skip to content

Commit ffe0b63

Browse files
Explain that readBlob requires two concurrent connections
1 parent a8c931c commit ffe0b63

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

x-pack/plugin/repository-encrypted/src/main/java/org/elasticsearch/repositories/encrypted/EncryptedRepository.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -523,9 +523,11 @@ public BlobPath path() {
523523
*/
524524
@Override
525525
public InputStream readBlob(String blobName) throws IOException {
526-
// TODO this requires two concurrent readBlob operations and it's technically possible that the storage server has concurrent
527-
// connections handling limit which gets saturated with only the first connection of the pair, thereby hampering progress,
528-
// when connections start timing out on read until the pair connection for an existing live connection succeeds
526+
// this requires two concurrent readBlob connections so it's possible that, under lab conditions, the storage service
527+
// is saturated only by the first read connection of the pair, so that the second read connection (for the metadata) can not be
528+
// fulfilled. In this case the second connection will time-out which will trigger the closing of the first one, therefore
529+
// allowing other pair connections to complete. In this situation the restore process should slowly make headway, albeit under
530+
// read-timeout exceptions
529531
final InputStream encryptedDataInputStream = delegatedBlobContainer.readBlob(blobName);
530532
try {
531533
// read the metadata identifier (fixed length) which is prepended to the encrypted blob

0 commit comments

Comments
 (0)