Lookup in shard random walk test runs slowly sometimes
------------------------------------------------------

                 Key: ACCUMULO-314
                 URL: https://issues.apache.org/jira/browse/ACCUMULO-314
             Project: Accumulo
          Issue Type: Bug
          Components: tserver
         Environment: 1.4.0-SNAPSHOT on 10 node cluster
            Reporter: Keith Turner
            Assignee: Keith Turner
             Fix For: 1.4.0


While running the random walk test, I noticed the shard test was running slowly 
sometimes thanks to ACCUMULO-273.

{noformat}
13 19:56:47,284 [shard.Merge] DEBUG: merging ST_index_6389_1326478898465
13 19:56:52,543 [shard.Insert] DEBUG: Inserted document ac64000000000000
13 19:56:54,016 [shard.Commit] DEBUG: Committed inserts
13 19:56:54,019 [shard.Insert] DEBUG: Inserted document bc64000000000000
13 19:56:54,020 [shard.Insert] DEBUG: Inserted document cc64000000000000
13 19:56:54,021 [shard.Insert] DEBUG: Inserted document dc64000000000000
13 19:56:54,022 [shard.Insert] DEBUG: Inserted document ec64000000000000
13 19:56:54,023 [shard.Insert] DEBUG: Inserted document fc64000000000000
13 19:56:54,025 [shard.Insert] DEBUG: Inserted document 0d64000000000000
13 19:56:54,026 [shard.Insert] DEBUG: Inserted document 1d64000000000000
13 19:56:54,055 [shard.Commit] DEBUG: Committed inserts
13 19:56:54,068 [shard.Search] DEBUG: Looking up terms [154l, 1kzi] expect to 
find 9ee0000000000000
13 20:01:54,102 [randomwalk.Module] WARN : Node 
org.apache.accumulo.server.test.randomwalk.shard.Search has been running for 
300.0 seconds. You may want to look into it.
13 20:05:52,530 [randomwalk.Module] WARN : Node 
org.apache.accumulo.server.test.randomwalk.shard.Search, which was running 
long, has now completed after 538.475 seconds
{noformat}

I noticed a merge usually preceded the slow lookups.  I looked the the master 
logs and saw that the merge finished ok and saw which tablet server the merged 
tablet was assigned to. Below are some snippets from the master log that show 
the table id and tablet server.

{noformat}
13 18:36:43,236 [tableOps.RenameTable] DEBUG: Renamed table 1bk 
ST_index_6389_1326478898465_tmp ST_index_6389_1326478898465

13 19:56:47,293 [tableOps.Utils] INFO : table 1bk (3b08cf01ba49883) locked for 
write operation: MERGE

13 19:56:52,496 [tableOps.Utils] INFO : table 1bk (3b08cf01ba49883) unlocked 
for write
13 19:56:52,504 [master.Master] DEBUG: Normal Tablets assigning tablet 
1bk<<=xxx.xxx.xxx.xxx:9997[134d7425fc503db]
{noformat}

Some snippets from the tablet server logs are below and this shows the problem.

{noformat}
13 19:56:52,522 [tabletserver.Tablet] TABLET_HIST: 1bk<< opened

13 19:56:54,065 [tabletserver.Tablet] WARN : Tablet 1bk<< has too many files, 
batch lookup can not run

13 19:57:10,383 [tabletserver.Compactor] DEBUG: Compaction 1bk<< 6,954 read | 
6,954 written | 108,656 entries/sec |  0.064 secs
13 19:57:10,402 [tabletserver.Tablet] TABLET_HIST: 1bk<< MajC 
[/t-0000qzs/C0000sj3.rf, /t-0000qzt/F0000rtf.rf, /t-0000qzt/F0000s0r.rf, 
/t-0000qzz/F0000sc0.rf, /t-0000r00/F0000s0v.rf, /t-0000r0f/C0000rpu.rf, 
/t-0000r0l/C0000qqz.rf, /t-0000rqt/C0000s3m.rf, /t-0000rra/C0000sbx.rf, 
/t-0000rrh/F0000sgj.rf] --> /c-00000054/C0000soe.rf

13 19:57:40,534 [tabletserver.Compactor] DEBUG: Compaction 1bk<< 21,036 read | 
21,036 written | 104,656 entries/sec |  0.201 secs
13 19:57:40,564 [tabletserver.Tablet] TABLET_HIST: 1bk<< MajC 
[/t-0000qzm/C0000rfa.rf, /t-0000r0l/F0000sc6.rf, /t-0000rr1/C0000rpr.rf, 
/t-0000rr4/F0000sc2.rf, /t-0000rr5/F0000rq0.rf, /t-0000rr9/F0000s0y.rf, 
/t-0000rrb/F0000sc5.rf, /t-0000rrs/F0000sc7.rf, /t-0000rs1/F0000ssf.rf, 
/t-0000rs2/F0000ssg.rf] --> /c-00000054/C0000son.rf
{noformat}

The problem is that the merged tablet has too many files to open, so the batch 
scan for the shard test can not run.  However it takes the tablet server forver 
to work this issue out.  Every 30 seconds it compacts 10 tablet files down to 
one.  The compactions take a few hundred milliseconds, so it could be worked 
out much faster if the compactions occurred back to back.

In 1.3 compactions were changed from depth first to breadth first (e.g. if a 
tablet server has 100 tablets and all have 100 files, instead of compacting 
each tablet to one file go across the tablets compacting 10 at a time until 
each tablet has one file).  This change introduced this bug.  There is no need 
to wait 30 seconds between compactions in this case.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to