busbey commented on a change in pull request #623: HBASE-22749: Distributed MOB
compactions
URL: https://github.com/apache/hbase/pull/623#discussion_r336255785
##########
File path:
hbase-server/src/main/java/org/apache/hadoop/hbase/mob/DefaultMobStoreCompactor.java
##########
@@ -183,105 +270,166 @@ protected boolean performCompaction(FileDetails fd,
InternalScanner scanner, Cel
boolean hasMore;
Path path = MobUtils.getMobFamilyPath(conf, store.getTableName(),
store.getColumnFamilyName());
byte[] fileName = null;
- StoreFileWriter mobFileWriter = null, delFileWriter = null;
- long mobCells = 0, deleteMarkersCount = 0;
+ StoreFileWriter mobFileWriter = null;
+ long mobCells = 0;
long cellsCountCompactedToMob = 0, cellsCountCompactedFromMob = 0;
long cellsSizeCompactedToMob = 0, cellsSizeCompactedFromMob = 0;
boolean finished = false;
+
ScannerContext scannerContext =
ScannerContext.newBuilder().setBatchLimit(compactionKVMax).build();
throughputController.start(compactionName);
- KeyValueScanner kvs = (scanner instanceof KeyValueScanner)?
(KeyValueScanner)scanner : null;
- long shippedCallSizeLimit = (long) numofFilesToCompact *
this.store.getColumnFamilyDescriptor().getBlocksize();
+ KeyValueScanner kvs = (scanner instanceof KeyValueScanner) ?
(KeyValueScanner) scanner : null;
+ long shippedCallSizeLimit =
+ (long) numofFilesToCompact *
this.store.getColumnFamilyDescriptor().getBlocksize();
+
+ MobCell mobCell = null;
try {
try {
// If the mob file writer could not be created, directly write the
cell to the store file.
mobFileWriter = mobStore.createWriterInTmp(new Date(fd.latestPutTs),
fd.maxKeyCount,
compactionCompression, store.getRegionInfo().getStartKey(), true);
fileName = Bytes.toBytes(mobFileWriter.getPath().getName());
} catch (IOException e) {
- LOG.warn("Failed to create mob writer, "
- + "we will continue the compaction by writing MOB cells
directly in store files", e);
+ // Bailing out
Review comment:
That's true. For us to make progress in the old approach we'd need to have
some kind of odd configuration, like different quotas or perms on the mobdir
compared to active. I can see how drawing attention while staying in a holding
pattern has advantages over bouncing bunch of data around.
We should make sure to release note this behavior change.
----------------------------------------------------------------
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]
With regards,
Apache Git Services