[ 
https://issues.apache.org/jira/browse/GEODE-8667?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17241965#comment-17241965
 ] 

ASF GitHub Bot commented on GEODE-8667:
---------------------------------------

gesterzhou commented on a change in pull request #5689:
URL: https://github.com/apache/geode/pull/5689#discussion_r533822731



##########
File path: geode-core/src/main/java/org/apache/geode/internal/cache/Oplog.java
##########
@@ -5789,9 +5789,8 @@ boolean needsCompaction() {
       if (((rv / (double) rvHWMtmp) * 100) <= parent.getCompactionThreshold()) 
{
         return true;
       }
-    } else {

Review comment:
       Darrel and I discussed again. We might need to re-fix it the other way: 
   
   Since the trouble is caused by offline compaction wrote totalCount=0 into 
krf, there's a potential bug that we restart with totalCount=0, but 
totalLiveCount=1, then with your current code change this oplog will never get 
a chance to compact until the only live entry is destroyed. 
   
   So a better fix maybe: when restart and found totalCount=0, then update 
totalCount to be totalLiveCount. With this fix, you don't need to change 
needsCompaction() any more. 
   
   




----------------------------------------------------------------
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:
us...@infra.apache.org


> Duplicate online Oplog compaction after offline Oplog compaction
> ----------------------------------------------------------------
>
>                 Key: GEODE-8667
>                 URL: https://issues.apache.org/jira/browse/GEODE-8667
>             Project: Geode
>          Issue Type: Bug
>            Reporter: Jianxia Chen
>            Assignee: Jianxia Chen
>            Priority: Major
>              Labels: GeodeOperationAPI, pull-request-available
>
> Use `compact offline-disk-store` command to compact the Oplogs offline. 
> Then restart the servers. 
> The logs show OplogCompactor thread is compacting Oplogs again when 
> restarting the servers, even though the Oplogs were just compacted offline. 
> For example:
> ```
> [info 2020/10/27 16:32:22.534 PDT <Idle OplogCompactor1> tid=0x35] Recovered 
> values for disk store DEFAULT with unique id 
> 76393d3c-dd10-4b89-b655-821d37631774
> [info 2020/10/27 16:32:22.535 PDT <OplogCompactor DEFAULT for oplog oplog#2> 
> tid=0x35] OplogCompactor for DEFAULT compaction oplog id(s): oplog#2
> [info 2020/10/27 16:32:22.537 PDT <OplogCompactor DEFAULT for oplog oplog#2> 
> tid=0x35] compaction did 2 creates and updates in 2 ms
> [info 2020/10/27 16:32:22.537 PDT <Oplog Delete Task1> tid=0x36] Deleted 
> oplog#2 crf for disk store DEFAULT.
> [info 2020/10/27 16:32:22.538 PDT <Oplog Delete Task1> tid=0x36] Deleted 
> oplog#2 krf for disk store DEFAULT.
> [info 2020/10/27 16:32:22.538 PDT <Oplog Delete Task1> tid=0x36] Deleted 
> oplog#2 drf for disk store DEFAULT.
> ```



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

Reply via email to