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/08/26 18:01:44 UTC
[james-project] 01/09: JAMES-3924 Allow conditional Cassandra statement recording
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 453a0c41bc52ac1438da760f076c1971730779c8
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri Jun 30 21:49:36 2023 +0700
JAMES-3924 Allow conditional Cassandra statement recording
Upon massive operations, recording all statements leads to OOM
---
.../org/apache/james/backends/cassandra/StatementRecorder.java | 8 ++++++--
.../java/org/apache/james/backends/cassandra/TestingSession.java | 6 +++++-
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/StatementRecorder.java b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/StatementRecorder.java
index 99a0d59908..e4204fe07b 100644
--- a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/StatementRecorder.java
+++ b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/StatementRecorder.java
@@ -52,14 +52,18 @@ public class StatementRecorder {
List<Statement> select(List<Statement> statements);
}
+ private final StatementRecorder.Selector selector;
private final ConcurrentLinkedDeque statements;
- StatementRecorder() {
+ StatementRecorder(Selector selector) {
+ this.selector = selector;
statements = new ConcurrentLinkedDeque();
}
void recordStatement(Statement statement) {
- statements.add(statement);
+ if (statements.addAll(selector.select(ImmutableList.of(statement)))) {
+ System.out.println("recordStatement");
+ }
}
public List<Statement> listExecutedStatements() {
diff --git a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/TestingSession.java b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/TestingSession.java
index 226c60ae5c..6b856e2ea8 100644
--- a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/TestingSession.java
+++ b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/TestingSession.java
@@ -85,7 +85,11 @@ public class TestingSession implements CqlSession {
}
public StatementRecorder recordStatements() {
- StatementRecorder statementRecorder = new StatementRecorder();
+ return recordStatements(StatementRecorder.Selector.ALL);
+ }
+
+ public StatementRecorder recordStatements(StatementRecorder.Selector selector) {
+ StatementRecorder statementRecorder = new StatementRecorder(selector);
this.statementRecorder = Optional.of(statementRecorder);
return statementRecorder;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org