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/04 08:03:52 UTC
[james-project] 06/09: JAMES-2897 Lightweight transactions: Not
required for mailboxPathDAOV1
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 4c86016cbcee31085621156b18aa37b150d287d5
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Mar 2 10:59:35 2020 +0700
JAMES-2897 Lightweight transactions: Not required for mailboxPathDAOV1
New records are never written to it.
Records are deleted from it if, and only if they are successfully written
in daoV2 (which is linearizable), ensuring they will never be read again
from daoV1. Lowering the consistency guaranties is thus safe here.
Lightweight transactions add latencies even on reads, and a read is
performed on daoV1 when listing one mailboxes. Lowering the consistency
level thus enhances performances.
---
.../james/mailbox/cassandra/mail/CassandraMailboxPathDAOImpl.java | 6 ++----
.../mailbox/cassandra/mail/CassandraMailboxPathDAOImplTest.java | 6 ------
2 files changed, 2 insertions(+), 10 deletions(-)
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 b795777..50093ff 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
@@ -90,16 +90,14 @@ public class CassandraMailboxPathDAOImpl {
return session.prepare(QueryBuilder.delete()
.from(TABLE_NAME)
.where(eq(NAMESPACE_AND_USER, bindMarker(NAMESPACE_AND_USER)))
- .and(eq(MAILBOX_NAME, bindMarker(MAILBOX_NAME)))
- .ifExists());
+ .and(eq(MAILBOX_NAME, bindMarker(MAILBOX_NAME))));
}
private PreparedStatement prepareInsert(Session session) {
return session.prepare(insertInto(TABLE_NAME)
.value(NAMESPACE_AND_USER, bindMarker(NAMESPACE_AND_USER))
.value(MAILBOX_NAME, bindMarker(MAILBOX_NAME))
- .value(MAILBOX_ID, bindMarker(MAILBOX_ID))
- .ifNotExists());
+ .value(MAILBOX_ID, bindMarker(MAILBOX_ID)));
}
private PreparedStatement prepareSelect(Session session) {
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathDAOImplTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathDAOImplTest.java
index 0926921..9b88ebd 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathDAOImplTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxPathDAOImplTest.java
@@ -67,12 +67,6 @@ class CassandraMailboxPathDAOImplTest {
}
@Test
- void saveOnSecondShouldBeFalse() {
- assertThat(testee.save(USER_INBOX_MAILBOXPATH, INBOX_ID).block()).isTrue();
- assertThat(testee.save(USER_INBOX_MAILBOXPATH, INBOX_ID).block()).isFalse();
- }
-
- @Test
void retrieveIdShouldReturnEmptyWhenEmptyData() {
assertThat(testee.retrieveId(USER_INBOX_MAILBOXPATH).blockOptional())
.isEmpty();
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org