You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2023/04/05 03:00:39 UTC

[james-project] branch master updated (2238ea2377 -> 7b064d702c)

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git


    from 2238ea2377 [UPGRADE] Mime4J 0.8.9: use TextBody::getCharset
     new 361fd65dd2 [PERF] Fasten searching deleted messages
     new 7b064d702c [FIX] Ranged search in CassandraFirstUnseenDAO was including too much results

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../james/mailbox/cassandra/mail/CassandraDeletedMessageDAO.java | 9 ++++++++-
 .../james/mailbox/cassandra/mail/CassandraFirstUnseenDAO.java    | 7 ++++---
 2 files changed, 12 insertions(+), 4 deletions(-)


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org


[james-project] 01/02: [PERF] Fasten searching deleted messages

Posted by bt...@apache.org.
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 361fd65dd22d3dc2ea642c57fd14b59128e06e82
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Tue Apr 4 17:55:47 2023 +0700

    [PERF] Fasten searching deleted messages
---
 .../james/mailbox/cassandra/mail/CassandraDeletedMessageDAO.java | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraDeletedMessageDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraDeletedMessageDAO.java
index ee4624d847..c6d3f902f1 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraDeletedMessageDAO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraDeletedMessageDAO.java
@@ -39,6 +39,7 @@ import org.apache.james.mailbox.cassandra.ids.CassandraId;
 import org.apache.james.mailbox.model.MessageRange;
 
 import com.datastax.oss.driver.api.core.CqlSession;
+import com.datastax.oss.driver.api.core.ProtocolVersion;
 import com.datastax.oss.driver.api.core.cql.BatchStatement;
 import com.datastax.oss.driver.api.core.cql.BatchStatementBuilder;
 import com.datastax.oss.driver.api.core.cql.BatchType;
@@ -64,6 +65,7 @@ public class CassandraDeletedMessageDAO {
     private final PreparedStatement selectOneUidStatement;
     private final PreparedStatement selectBetweenUidStatement;
     private final PreparedStatement selectFromUidStatement;
+    private final ProtocolVersion protocolVersion;
 
     @Inject
     public CassandraDeletedMessageDAO(CqlSession session) {
@@ -75,6 +77,7 @@ public class CassandraDeletedMessageDAO {
         this.selectOneUidStatement = prepareOneUidStatement(session);
         this.selectBetweenUidStatement = prepareBetweenUidStatement(session);
         this.selectFromUidStatement = prepareFromUidStatement(session);
+        this.protocolVersion = session.getContext().getProtocolVersion();
     }
 
     private PreparedStatement prepareAllUidStatement(CqlSession session) {
@@ -192,7 +195,7 @@ public class CassandraDeletedMessageDAO {
 
     public Flux<MessageUid> retrieveDeletedMessage(CassandraId cassandraId, MessageRange range) {
         return retrieveResultSetOfDeletedMessage(cassandraId, range)
-            .map(row -> MessageUid.of(row.getLong(0)));
+            .map(this::asMessageUid);
     }
 
     private Flux<Row> retrieveResultSetOfDeletedMessage(CassandraId cassandraId, MessageRange range) {
@@ -237,4 +240,8 @@ public class CassandraDeletedMessageDAO {
                 .setUuid(MAILBOX_ID, cassandraId.asUuid())
                 .setLong(UID_FROM, from.asLong()));
     }
+
+    private MessageUid asMessageUid(Row row) {
+        return MessageUid.of(TypeCodecs.BIGINT.decodePrimitive(row.getBytesUnsafe(0), protocolVersion));
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org


[james-project] 02/02: [FIX] Ranged search in CassandraFirstUnseenDAO was including too much results

Posted by bt...@apache.org.
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 7b064d702c9e4f11682670d6f6dae7a10fb5030f
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Tue Apr 4 17:56:15 2023 +0700

    [FIX] Ranged search in CassandraFirstUnseenDAO was including too much results
---
 .../james/mailbox/cassandra/mail/CassandraFirstUnseenDAO.java      | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraFirstUnseenDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraFirstUnseenDAO.java
index 6611a13ca6..b140164294 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraFirstUnseenDAO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraFirstUnseenDAO.java
@@ -227,7 +227,8 @@ public class CassandraFirstUnseenDAO {
                 return listUnseen(cassandraId);
             case FROM:
                 return cassandraAsyncExecutor.executeRows(
-                    listStatement.bind()
+                    selectFromUidStatement.bind()
+                        .setLong(UID_FROM, range.getUidFrom().asLong())
                         .set(MAILBOX_ID, cassandraId.asUuid(), TypeCodecs.TIMEUUID))
                     .map(this::asMessageUid);
             case RANGE:
@@ -239,8 +240,8 @@ public class CassandraFirstUnseenDAO {
                     .map(this::asMessageUid);
             case ONE:
                 return cassandraAsyncExecutor.executeRows(
-                    selectFromUidStatement.bind()
-                        .setLong(UID_FROM, range.getUidFrom().asLong())
+                    selectOneUidStatement.bind()
+                        .setLong(UID, range.getUidFrom().asLong())
                         .set(MAILBOX_ID, cassandraId.asUuid(), TypeCodecs.TIMEUUID))
                     .map(this::asMessageUid);
             default:


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org