Skip to content

adds support for compacting lots of tablets#3945

Merged
keith-turner merged 2 commits into
apache:elasticityfrom
keith-turner:compact-one-million-tablets
Nov 27, 2023
Merged

adds support for compacting lots of tablets#3945
keith-turner merged 2 commits into
apache:elasticityfrom
keith-turner:compact-one-million-tablets

Conversation

@keith-turner
Copy link
Copy Markdown
Contributor

Removes buffering of all conditional results in memory in the compaction code. This allows compacting more tablets than would fit in memory.

Changed the condition result BiConsumer to a Consumer because it was passing the extents twice, so a BiConsumer was not needed and made the code more verbose.

Updated the compaction code to collect stats and log a trace. It was logging a lot of per tablet information at debug. When compacting one million tablets, this resulted in a lot of information in the manager logs. Moved the per tablet information to trace logging. Added collection of stats for the different per tablet information and logged the stats once for all tablets scanned.

Added compaction to the SplitMillionIT. Without the other changes in this PR adding compaction to the SplitMillion would cause the Manager to die with an out of memory error because the conditional write was buffering all 1 million tablets.

Removes buffering of all conditional results in memory in the compaction
code.  This allows compacting more tablets than would fit in memory.

Changed the condition result BiConsumer to a Consumer because it was
passing the extents twice, so a BiConsumer was not needed and made the
code more verbose.

Updated the compaction code to collect stats and log a trace.  It was
logging a lot of per tablet information at debug.  When compacting one
million tablets, this resulted in a lot of information in the manager
logs.  Moved the per tablet information to trace logging.  Added
collection of stats for the different per tablet information and logged
the stats once for all tablets scanned.

Added compaction to the SplitMillionIT. Without the other changes in
this PR adding compaction to the SplitMillion would cause the Manager
to die with an out of memory error because the conditional write was
buffering all 1 million tablets.
@keith-turner keith-turner linked an issue Nov 13, 2023 that may be closed by this pull request
8 tasks
Comment thread test/src/main/java/org/apache/accumulo/test/functional/SplitMillionIT.java Outdated
@keith-turner keith-turner merged commit 7f748e7 into apache:elasticity Nov 27, 2023
@keith-turner keith-turner deleted the compact-one-million-tablets branch November 27, 2023 22:48
@ctubbsii ctubbsii added this to the 4.0.0 milestone Jul 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

Tests table operations with lots of tablets

3 participants