You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2020/07/24 17:24:07 UTC
[activemq-artemis] branch master updated: ARTEMIS-2853
page-max-concurrent-io cannot be disabled
This is an automated email from the ASF dual-hosted git repository.
clebertsuconic pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git
The following commit(s) were added to refs/heads/master by this push:
new f2d0d30 ARTEMIS-2853 page-max-concurrent-io cannot be disabled
new f46527b This closes #3224
f2d0d30 is described below
commit f2d0d300f5d317bd1c41c6efe92b8834c8111b66
Author: franz1981 <ni...@gmail.com>
AuthorDate: Fri Jul 24 13:04:12 2020 +0200
ARTEMIS-2853 page-max-concurrent-io cannot be disabled
---
.../persistence/impl/journal/JournalStorageManager.java | 3 ++-
.../impl/journal/JournalStorageManagerTest.java | 14 ++++++++++++++
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/JournalStorageManager.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/JournalStorageManager.java
index 94a2dc0..8d6e373 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/JournalStorageManager.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/persistence/impl/journal/JournalStorageManager.java
@@ -176,7 +176,8 @@ public class JournalStorageManager extends AbstractJournalStorageManager {
largeMessagesFactory = new NIOSequentialFileFactory(config.getLargeMessagesLocation(), false, criticalErrorListener, 1);
- if (config.getPageMaxConcurrentIO() != 1) {
+ // it doesn't make sense to limit paging concurrency < 0
+ if (config.getPageMaxConcurrentIO() >= 0) {
pageMaxConcurrentIO = new Semaphore(config.getPageMaxConcurrentIO());
} else {
pageMaxConcurrentIO = null;
diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/core/persistence/impl/journal/JournalStorageManagerTest.java b/artemis-server/src/test/java/org/apache/activemq/artemis/core/persistence/impl/journal/JournalStorageManagerTest.java
index a058094..3f65e88 100644
--- a/artemis-server/src/test/java/org/apache/activemq/artemis/core/persistence/impl/journal/JournalStorageManagerTest.java
+++ b/artemis-server/src/test/java/org/apache/activemq/artemis/core/persistence/impl/journal/JournalStorageManagerTest.java
@@ -91,6 +91,20 @@ public class JournalStorageManagerTest extends ActiveMQTestBase {
testExecutor.shutdownNow();
}
+ @Test
+ public void testDisablePageConcurrentMax() throws Exception {
+ if (journalType == JournalType.ASYNCIO) {
+ assumeTrue("AIO is not supported on this platform", AIOSequentialFileFactory.isSupported());
+ }
+ final Configuration configuration = createDefaultInVMConfig().setJournalType(journalType);
+ configuration.setPageMaxConcurrentIO(-1);
+ final ExecutorFactory executorFactory = new OrderedExecutorFactory(executor);
+ final ExecutorFactory ioExecutorFactory = new OrderedExecutorFactory(ioExecutor);
+ final JournalStorageManager manager = new JournalStorageManager(configuration, null, executorFactory, null, ioExecutorFactory);
+ // if -1 is being set it means that we should first call afterPageRead to acuire the permit to read a page
+ Assert.assertTrue(manager.beforePageRead(0, TimeUnit.NANOSECONDS));
+ }
+
/**
* Test of fixJournalFileSize method, of class JournalStorageManager.
*/