mirror of
https://github.com/chrislusf/seaweedfs
synced 2024-09-19 15:31:05 +02:00
Java: add retry on write
This commit is contained in:
parent
e6c026db65
commit
c7c60d1f8a
|
@ -29,11 +29,29 @@ public class SeaweedWrite {
|
||||||
final byte[] bytes,
|
final byte[] bytes,
|
||||||
final long bytesOffset, final long bytesLength,
|
final long bytesOffset, final long bytesLength,
|
||||||
final String path) throws IOException {
|
final String path) throws IOException {
|
||||||
|
for (long waitTime = 1000L; waitTime < 10 * 1000; waitTime += waitTime / 2) {
|
||||||
|
try {
|
||||||
FilerProto.FileChunk.Builder chunkBuilder = writeChunk(
|
FilerProto.FileChunk.Builder chunkBuilder = writeChunk(
|
||||||
replication, filerClient, offset, bytes, bytesOffset, bytesLength, path);
|
replication, filerClient, offset, bytes, bytesOffset, bytesLength, path);
|
||||||
|
lastException = null;
|
||||||
synchronized (entry) {
|
synchronized (entry) {
|
||||||
entry.addChunks(chunkBuilder);
|
entry.addChunks(chunkBuilder);
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
} catch (IOException ioe) {
|
||||||
|
LOG.debug("writeData:{}", ioe);
|
||||||
|
lastException = ioe;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Thread.sleep(waitTime);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lastException != null) {
|
||||||
|
throw lastException;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static FilerProto.FileChunk.Builder writeChunk(final String replication,
|
public static FilerProto.FileChunk.Builder writeChunk(final String replication,
|
||||||
|
|
Loading…
Reference in a new issue