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