[ https://issues.apache.org/jira/browse/HBASE-9648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13777147#comment-13777147 ]
Jean-Marc Spaggiari commented on HBASE-9648: -------------------------------------------- Ok. I see your point. In trunk, the code moved to DefaultCompactor {code} // Create the writer even if no kv(Empty store file is also ok), // because we need record the max seq id for the store file, see HBASE-6059 writer = store.createWriterInTmp(fd.maxKeyCount, this.compactionCompression, true, fd.maxMVCCReadpoint >= smallestReadPoint, fd.maxTagsLength > 0); {code} So basically, we need to avoid creating this empty file if it doesn't have the max seq id. The thing is, we don't have this information there. However, the modification to RatioBasedcompactionPolicy.selectExpiredStoreFiles should not be difficult. ... Ok. I think I found something. I will draft that and post it tomorrow morning for your review. > collection one expired storefile causes it to be replaced by another expired > storefile > -------------------------------------------------------------------------------------- > > Key: HBASE-9648 > URL: https://issues.apache.org/jira/browse/HBASE-9648 > Project: HBase > Issue Type: Bug > Components: Compaction > Reporter: Sergey Shelukhin > Assignee: Jean-Marc Spaggiari > Attachments: HBASE-9648-v0-0.94.patch, HBASE-9648-v0-trunk.patch > > > There's a shortcut in compaction selection that causes the selection of > expired store files to quickly delete. > However, there's also the code that ensures we write at least one file to > preserve seqnum. This new empty file is "expired", because it has no data, > presumably. > So it's collected again, etc. > This affects 94, probably also 96. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira