[
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)