You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by rc...@apache.org on 2020/03/06 03:07:02 UTC
[james-project] 01/21: JAMES-2897 Set ConsistencyLevel to QUORUM at
the request level where needed
This is an automated email from the ASF dual-hosted git repository.
rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 27fda4a92a151f8b7d4255dcd659d43217cac79a
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Mar 5 18:10:01 2020 +0700
JAMES-2897 Set ConsistencyLevel to QUORUM at the request level where needed
Finding a mailbox and a message defaulted to ALL consistency level instead of the
expected QUORUM value.
This commit enforce QUORUM to be used for all cassandra reads of both of these operations
not being set at consistency level SERIAL.
---
.../apache/james/mailbox/cassandra/mail/CassandraAttachmentDAOV2.java | 4 +++-
.../org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java | 4 +++-
.../james/mailbox/cassandra/mail/CassandraMailboxPathDAOImpl.java | 4 +++-
.../org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java | 4 +++-
4 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentDAOV2.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentDAOV2.java
index a044e1f..5a1ee5f 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentDAOV2.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentDAOV2.java
@@ -19,6 +19,7 @@
package org.apache.james.mailbox.cassandra.mail;
+import static com.datastax.driver.core.ConsistencyLevel.QUORUM;
import static com.datastax.driver.core.querybuilder.QueryBuilder.bindMarker;
import static com.datastax.driver.core.querybuilder.QueryBuilder.eq;
import static com.datastax.driver.core.querybuilder.QueryBuilder.insertInto;
@@ -154,7 +155,8 @@ public class CassandraAttachmentDAOV2 {
Preconditions.checkArgument(attachmentId != null);
return cassandraAsyncExecutor.executeSingleRow(
selectStatement.bind()
- .setUUID(ID_AS_UUID, attachmentId.asUUID()))
+ .setUUID(ID_AS_UUID, attachmentId.asUUID())
+ .setConsistencyLevel(QUORUM))
.map(row -> CassandraAttachmentDAOV2.fromRow(row, blobIdFactory));
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java
index e5c097c..02a7b13 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java
@@ -19,6 +19,7 @@
package org.apache.james.mailbox.cassandra.mail;
+import static com.datastax.driver.core.ConsistencyLevel.QUORUM;
import static com.datastax.driver.core.querybuilder.QueryBuilder.bindMarker;
import static com.datastax.driver.core.querybuilder.QueryBuilder.eq;
import static com.datastax.driver.core.querybuilder.QueryBuilder.insertInto;
@@ -135,7 +136,8 @@ public class CassandraMailboxDAO {
public Mono<Mailbox> retrieveMailbox(CassandraId mailboxId) {
return executor.executeSingleRow(readStatement.bind()
- .setUUID(ID, mailboxId.asUuid()))
+ .setUUID(ID, mailboxId.asUuid())
+ .setConsistencyLevel(QUORUM))
.map(row -> mailboxFromRow(row, mailboxId));
}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathDAOImpl.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathDAOImpl.java
index 50093ff..df210a0 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathDAOImpl.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathDAOImpl.java
@@ -19,6 +19,7 @@
package org.apache.james.mailbox.cassandra.mail;
+import static com.datastax.driver.core.ConsistencyLevel.QUORUM;
import static com.datastax.driver.core.querybuilder.QueryBuilder.bindMarker;
import static com.datastax.driver.core.querybuilder.QueryBuilder.count;
import static com.datastax.driver.core.querybuilder.QueryBuilder.eq;
@@ -127,7 +128,8 @@ public class CassandraMailboxPathDAOImpl {
return cassandraAsyncExecutor.executeSingleRow(
select.bind()
.setUDTValue(NAMESPACE_AND_USER, mailboxBaseTupleUtil.createMailboxBaseUDT(mailboxPath.getNamespace(), mailboxPath.getUser()))
- .setString(MAILBOX_NAME, mailboxPath.getName()))
+ .setString(MAILBOX_NAME, mailboxPath.getName())
+ .setConsistencyLevel(QUORUM))
.map(this::fromRowToCassandraIdAndPath)
.map(FunctionalUtils.toFunction(this::logGhostMailboxSuccess))
.switchIfEmpty(ReactorUtils.executeAndEmpty(() -> logGhostMailboxFailure(mailboxPath)));
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java
index 0bfce81..621a685 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java
@@ -19,6 +19,7 @@
package org.apache.james.mailbox.cassandra.mail;
+import static com.datastax.driver.core.ConsistencyLevel.QUORUM;
import static com.datastax.driver.core.querybuilder.QueryBuilder.bindMarker;
import static com.datastax.driver.core.querybuilder.QueryBuilder.eq;
import static com.datastax.driver.core.querybuilder.QueryBuilder.insertInto;
@@ -248,7 +249,8 @@ public class CassandraMessageDAO {
return cassandraAsyncExecutor.execute(retrieveSelect(fetchType)
.bind()
- .setUUID(MESSAGE_ID, cassandraMessageId.get()));
+ .setUUID(MESSAGE_ID, cassandraMessageId.get())
+ .setConsistencyLevel(QUORUM));
}
private Mono<MessageResult>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org