This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 14fb1fb064a78f04567946d12fce41f665e02560 Author: Benoit Tellier <[email protected]> AuthorDate: Sun Mar 28 22:45:23 2021 +0700 JAMES-3435 Configuration: mailbox.read.strong.consistency --- .../init/configuration/CassandraConfiguration.java | 23 +++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/configuration/CassandraConfiguration.java b/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/configuration/CassandraConfiguration.java index 57e60a4..41284c7 100644 --- a/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/configuration/CassandraConfiguration.java +++ b/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/init/configuration/CassandraConfiguration.java @@ -73,6 +73,7 @@ public class CassandraConfiguration { private static final String BLOB_PART_SIZE = "mailbox.blob.part.size"; private static final String ATTACHMENT_V2_MIGRATION_READ_TIMEOUT = "attachment.v2.migration.read.timeout"; private static final String MESSAGE_ATTACHMENTID_READ_TIMEOUT = "message.attachmentids.read.timeout"; + private static final String MAILBOX_READ_STRONG_CONSISTENCY = "mailbox.read.strong.consistency"; private static final String MESSAGE_READ_STRONG_CONSISTENCY = "message.read.strong.consistency"; private static final String MESSAGE_WRITE_STRONG_CONSISTENCY = "message.write.strong.consistency.unsafe"; private static final String CONSISTENCY_LEVEL_REGULAR = "cassandra.consistency_level.regular"; @@ -97,9 +98,20 @@ public class CassandraConfiguration { private Optional<Float> mailboxReadRepair = Optional.empty(); private Optional<Float> mailboxCountersReadRepairMax = Optional.empty(); private Optional<Float> mailboxCountersReadRepairChanceOneHundred = Optional.empty(); + private Optional<Boolean> mailboxReadStrongConsistency = Optional.empty(); private Optional<Boolean> messageReadStrongConsistency = Optional.empty(); private Optional<Boolean> messageWriteStrongConsistency = Optional.empty(); + public Builder mailboxReadStrongConsistency(boolean value) { + this.mailboxReadStrongConsistency = Optional.of(value); + return this; + } + + public Builder mailboxReadStrongConsistency(Optional<Boolean> value) { + this.mailboxReadStrongConsistency = value; + return this; + } + public Builder messageReadStrongConsistency(boolean value) { this.messageReadStrongConsistency = Optional.of(value); return this; @@ -326,6 +338,7 @@ public class CassandraConfiguration { mailboxReadRepair.orElse(DEFAULT_MAILBOX_READ_REPAIR), mailboxCountersReadRepairMax.orElse(DEFAULT_MAX_MAILBOX_COUNTERS_READ_REPAIR_CHANCE), mailboxCountersReadRepairChanceOneHundred.orElse(DEFAULT_ONE_HUNDRED_MAILBOX_COUNTERS_READ_REPAIR_CHANCE), + mailboxReadStrongConsistency.orElse(DEFAULT_STRONG_CONSISTENCY), messageReadStrongConsistency.orElse(DEFAULT_STRONG_CONSISTENCY), messageWriteStrongConsistency.orElse(DEFAULT_STRONG_CONSISTENCY)); } @@ -369,6 +382,8 @@ public class CassandraConfiguration { propertiesConfiguration.getFloat(MAILBOX_MAX_COUNTERS_READ_REPAIR, null))) .mailboxCountersReadRepairChanceOneHundred(Optional.ofNullable( propertiesConfiguration.getFloat(MAILBOX_ONE_HUNDRED_COUNTERS_READ_REPAIR, null))) + .mailboxReadStrongConsistency(Optional.ofNullable( + propertiesConfiguration.getBoolean(MAILBOX_READ_STRONG_CONSISTENCY, null))) .messageReadStrongConsistency(Optional.ofNullable( propertiesConfiguration.getBoolean(MESSAGE_READ_STRONG_CONSISTENCY, null))) .messageWriteStrongConsistency(Optional.ofNullable( @@ -392,6 +407,7 @@ public class CassandraConfiguration { private final float mailboxReadRepair; private final float mailboxCountersReadRepairChanceMax; private final float mailboxCountersReadRepairChanceOneHundred; + private final boolean mailboxReadStrongConsistency; private final boolean messageReadStrongConsistency; private final boolean messageWriteStrongConsistency; @@ -402,7 +418,7 @@ public class CassandraConfiguration { int blobPartSize, final int attachmentV2MigrationReadTimeout, int messageAttachmentIdsReadTimeout, String consistencyLevelRegular, String consistencyLevelLightweightTransaction, float mailboxReadRepair, float mailboxCountersReadRepairChanceMax, - float mailboxCountersReadRepairChanceOneHundred, boolean messageReadStrongConsistency, + float mailboxCountersReadRepairChanceOneHundred, boolean mailboxReadStrongConsistency, boolean messageReadStrongConsistency, boolean messageWriteStrongConsistency) { this.aclMaxRetry = aclMaxRetry; this.messageReadChunkSize = messageReadChunkSize; @@ -420,10 +436,15 @@ public class CassandraConfiguration { this.mailboxReadRepair = mailboxReadRepair; this.mailboxCountersReadRepairChanceMax = mailboxCountersReadRepairChanceMax; this.mailboxCountersReadRepairChanceOneHundred = mailboxCountersReadRepairChanceOneHundred; + this.mailboxReadStrongConsistency = mailboxReadStrongConsistency; this.messageReadStrongConsistency = messageReadStrongConsistency; this.messageWriteStrongConsistency = messageWriteStrongConsistency; } + public boolean isMailboxReadStrongConsistency() { + return mailboxReadStrongConsistency; + } + public boolean isMessageWriteStrongConsistency() { return messageWriteStrongConsistency; } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
