accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam Fuchs (JIRA)" <>
Subject [jira] [Commented] (ACCUMULO-1052) Minor compactions not finishing before master kills tabletserver can very large number of files per tablet
Date Mon, 18 Feb 2013 18:57:13 GMT


Adam Fuchs commented on ACCUMULO-1052:

There are really only two reasons we have merging minor compactions -- the first is that HDFS
craps out when there are too many open files (like on a read of a tablet with lots and lots
of files). The second is that reading from a tablet with too many files can be slow. Merging
minor compactions have two effects. The first is to cap the number of files to prevent the
aforementioned crapping out. The second is to throttle long-term ingest so that it's tied
to disk I/O capacity. The problem with using merging minor compactions as a throttling mechanism
is that it actually generates more disk I/O load by making extra copies of entries (doing
N^2 work instead of NlogN in the worst case). We could probably use a better mechanism for
throttling. Meanwhile, an alternative solution might be to add more major compaction threads
and reduce the number of minor compaction threads.

When major compactions are keeping up, the smallest file should be really small. With a 100GB
tablet and a major compaction ratio of 3.0, the 15th largest file should be no more than 257MB
and the 20th largest file should be no bigger than about 34MB. With a max files limit of 20,
minor compactions should take on the order of 5 seconds in that scenario. This might be a
reason to bump up the max files threshold from the default of 15. Here's a chart that shows
a few file size stats, with major compaction ratio 3, assuming major compactions are keeping
||#Files||Min(Max File Size/Min File Size)||Min(Tabet Size/Min File Size)||
> Minor compactions not finishing before master kills tabletserver can very large number
of files per tablet
> ----------------------------------------------------------------------------------------------------------
>                 Key: ACCUMULO-1052
>                 URL:
>             Project: Accumulo
>          Issue Type: Improvement
>          Components: master, tserver
>    Affects Versions: 1.4.2
>         Environment: Large, write-heavy cluster
>            Reporter: Josh Elser
>            Assignee: Eric Newton
> On a cluster that is being saturated with heavy ingest, a tserver is observed attempting
to perform a minor compaction for a tablet with multiple WALs. Because of this, commits to
this tablet end up being held.
> After churning on the minc for some time, the master's hold-time limit for tservers is
exceeded, however the minc didn't finish. The tserver is forcibly killed, the tablet is migrated,
recovery occurs on the new tserver and the problem repeats.
> Some of the minor compactions must finish, as the number of files for that tablet continue
to grow, but major compactions must not have time to finish since the number of files grow

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:

View raw message