You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by ch...@apache.org on 2022/07/26 09:18:21 UTC
[bookkeeper] branch master updated: avoid init WriteSet when waitForWriteSetMs < 0. (#3325)
This is an automated email from the ASF dual-hosted git repository.
chenhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
The following commit(s) were added to refs/heads/master by this push:
new cb70194be6 avoid init WriteSet when waitForWriteSetMs < 0. (#3325)
cb70194be6 is described below
commit cb70194be62ba8110a9dba316f53b9760b6a8fc0
Author: Yan Zhao <ho...@apache.org>
AuthorDate: Tue Jul 26 17:18:16 2022 +0800
avoid init WriteSet when waitForWriteSetMs < 0. (#3325)
### Motivation
Avoid init WriteSet when waitForWriteSetMs < 0.
And LedgerHandleAdv didn't recycle WriteSet.
---
.../org/apache/bookkeeper/client/LedgerHandle.java | 28 ++++++++++++----------
.../apache/bookkeeper/client/LedgerHandleAdv.java | 12 +++++++---
2 files changed, 25 insertions(+), 15 deletions(-)
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java
index 4d9090e589..4b1a20c25e 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java
@@ -878,13 +878,15 @@ public class LedgerHandle implements WriteHandle {
// Naturally one of the solutions would be to submit smaller batches and in this case
// current implementation will prevent next batch from starting when bookie is
// unresponsive thus helpful enough.
- DistributionSchedule.WriteSet ws = distributionSchedule.getWriteSet(firstEntry);
- try {
- if (!waitForWritable(ws, ws.size() - 1, clientCtx.getConf().waitForWriteSetMs)) {
- op.allowFailFastOnUnwritableChannel();
+ if (clientCtx.getConf().waitForWriteSetMs >= 0) {
+ DistributionSchedule.WriteSet ws = distributionSchedule.getWriteSet(firstEntry);
+ try {
+ if (!waitForWritable(ws, ws.size() - 1, clientCtx.getConf().waitForWriteSetMs)) {
+ op.allowFailFastOnUnwritableChannel();
+ }
+ } finally {
+ ws.recycle();
}
- } finally {
- ws.recycle();
}
if (isHandleWritable()) {
@@ -1343,13 +1345,15 @@ public class LedgerHandle implements WriteHandle {
return;
}
- DistributionSchedule.WriteSet ws = distributionSchedule.getWriteSet(op.getEntryId());
- try {
- if (!waitForWritable(ws, 0, clientCtx.getConf().waitForWriteSetMs)) {
- op.allowFailFastOnUnwritableChannel();
+ if (clientCtx.getConf().waitForWriteSetMs >= 0) {
+ DistributionSchedule.WriteSet ws = distributionSchedule.getWriteSet(op.getEntryId());
+ try {
+ if (!waitForWritable(ws, 0, clientCtx.getConf().waitForWriteSetMs)) {
+ op.allowFailFastOnUnwritableChannel();
+ }
+ } finally {
+ ws.recycle();
}
- } finally {
- ws.recycle();
}
try {
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandleAdv.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandleAdv.java
index d755061727..1320fc0fd2 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandleAdv.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandleAdv.java
@@ -263,9 +263,15 @@ public class LedgerHandleAdv extends LedgerHandle implements WriteAdvHandle {
return;
}
- if (!waitForWritable(distributionSchedule.getWriteSet(op.getEntryId()),
- 0, clientCtx.getConf().waitForWriteSetMs)) {
- op.allowFailFastOnUnwritableChannel();
+ if (clientCtx.getConf().waitForWriteSetMs >= 0) {
+ DistributionSchedule.WriteSet ws = distributionSchedule.getWriteSet(op.getEntryId());
+ try {
+ if (!waitForWritable(ws, 0, clientCtx.getConf().waitForWriteSetMs)) {
+ op.allowFailFastOnUnwritableChannel();
+ }
+ } finally {
+ ws.recycle();
+ }
}
try {