[ 
https://issues.apache.org/jira/browse/ARTEMIS-3327?focusedWorklogId=605558&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-605558
 ]

ASF GitHub Bot logged work on ARTEMIS-3327:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 02/Jun/21 21:23
            Start Date: 02/Jun/21 21:23
    Worklog Time Spent: 10m 
      Work Description: franz1981 commented on a change in pull request #3605:
URL: https://github.com/apache/activemq-artemis/pull/3605#discussion_r644325970



##########
File path: 
artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalImpl.java
##########
@@ -1075,14 +1067,27 @@ private void internalAppendUpdateRecord(long id,
                                            Persister persister,
                                            Object record,
                                            boolean sync,
+                                           BiConsumer<Long, Boolean> 
updateCallback,
                                            IOCompletion callback) throws 
InterruptedException, java.util.concurrent.ExecutionException {
-      final SimpleFuture<Boolean> result = newSyncAndCallbackResult(sync, 
callback);
       appendExecutor.execute(new Runnable() {
          @Override
          public void run() {
             journalLock.readLock().lock();
             try {
                JournalRecord jrnRecord = records.get(id);
+               if (jrnRecord == null) {
+                  if (compactor == null || (!compactor.containsRecord(id))) {

Review comment:
       Save the compactor in a local final variable to save it load it each time

##########
File path: 
artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalImpl.java
##########
@@ -1075,14 +1067,27 @@ private void internalAppendUpdateRecord(long id,
                                            Persister persister,
                                            Object record,
                                            boolean sync,
+                                           BiConsumer<Long, Boolean> 
updateCallback,
                                            IOCompletion callback) throws 
InterruptedException, java.util.concurrent.ExecutionException {
-      final SimpleFuture<Boolean> result = newSyncAndCallbackResult(sync, 
callback);
       appendExecutor.execute(new Runnable() {
          @Override
          public void run() {
             journalLock.readLock().lock();
             try {
                JournalRecord jrnRecord = records.get(id);
+               if (jrnRecord == null) {
+                  if (compactor == null || (!compactor.containsRecord(id))) {
+                     if (updateCallback != null) {
+                        updateCallback.accept(id, false);
+                     }
+                     logger.debug("Record " + id + " had not been found");
+

Review comment:
       Debug if is debug level to save string creation 

##########
File path: 
artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalImpl.java
##########
@@ -1075,14 +1067,27 @@ private void internalAppendUpdateRecord(long id,
                                            Persister persister,
                                            Object record,
                                            boolean sync,
+                                           BiConsumer<Long, Boolean> 
updateCallback,
                                            IOCompletion callback) throws 
InterruptedException, java.util.concurrent.ExecutionException {
-      final SimpleFuture<Boolean> result = newSyncAndCallbackResult(sync, 
callback);
       appendExecutor.execute(new Runnable() {
          @Override
          public void run() {
             journalLock.readLock().lock();
             try {
                JournalRecord jrnRecord = records.get(id);
+               if (jrnRecord == null) {
+                  if (compactor == null || (!compactor.containsRecord(id))) {
+                     if (updateCallback != null) {
+                        updateCallback.accept(id, false);

Review comment:
       Michael P spent some time to save boxed Long instances to be allocated 
and I think we should continue here: let's create a specific interface that can 
use primitive long and boolean 

##########
File path: 
artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalImpl.java
##########
@@ -1129,15 +1140,17 @@ public void appendDeleteRecord(final long id, final 
boolean sync, final IOComple
 
       checkJournalIsLoaded();
       lineUpContext(callback);
-      checkKnownRecordID(id, true);
-
-      internalAppendDeleteRecord(id, sync, callback);
+      SimpleFuture<Boolean> future = new SimpleFutureImpl<>();

Review comment:
       I would create a specific future that can act as a callback too here: it 
would save the lambda allocation

##########
File path: 
artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalImpl.java
##########
@@ -1097,26 +1102,32 @@ public void run() {
                // record==null here could only mean there is a compactor
                // computing the delete should be done after compacting is done
                if (jrnRecord == null) {
-                  compactor.addCommandUpdate(id, usedFile, 
updateRecord.getEncodeSize());
+                  if (compactor != null) {

Review comment:
       Save compactor in a local variable to save it to be loaded more then one 
time




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Issue Time Tracking
-------------------

    Worklog Id:     (was: 605558)
    Time Spent: 0.5h  (was: 20m)

> Remove unnecessary block operations on journal update
> -----------------------------------------------------
>
>                 Key: ARTEMIS-3327
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3327
>             Project: ActiveMQ Artemis
>          Issue Type: Improvement
>            Reporter: Clebert Suconic
>            Priority: Major
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to