Thanks Christopher for detailed explanation.

Appreciated your response!

-S



-----Original Message-----
From: Christopher <ctubb...@apache.org> 
Sent: Thursday, April 14, 2022 3:33 PM
To: accumulo-user <user@accumulo.apache.org>
Subject: [External] Re: minor compaction same as flush

Ed's description is slightly wrong:

Yes, flush is the same as a minor compaction, writing in-memory data to an 
RFile. The shell calls this a "flush", because it's a more intuitive name than 
"minor compaction". In the technical documentation, it could be referred to as 
either, and some of our configuration options and APIs may have "minc" for 
minor compaction.

If you just say "compaction", without qualification, it implies "major 
compaction", which combines multiple files into one replacement file.
The shell has a "compact" command for forcing one to occur.

Furthermore, major compactions come in a few varieties: partial and full. A 
partial one is when only a subset of a tablet's file set are combined. Ed 
incorrectly referred to these partial major comapctions as a minor compaction, 
but these are still major compactions... they just don't include all files. A 
full major compaction is when all the tablet's files are combined. There are 
some operations (like dropping delete markers) that can only occur if the major 
compaction is of the full variety.

There is also something called a "merging minor compaction", which is a kind of 
flush/minor compaction that also picks up a small file to combine with. It was 
overly complex and not really necessary, so we removed it in 2.1 (not yet 
released).

There's also some special terms that refer to major compactions that occur 
under certain circumstances: chop compactions are partial major compactions 
that occur to truncate files in different tablets before those tablets are 
merged; idle compactions are major compactions that happen periodically when a 
tablet is not busy. Most compactions are system-initiated, but a user 
compaction is one that is user-initiated, such as from the shell's 'compact' 
command.

I hope that helps.

Reply via email to