accumulo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Keith Turner (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ACCUMULO-444) Data loss possible when tablet killed immediately after recovery
Date Tue, 06 Mar 2012 16:46:56 GMT

    [ https://issues.apache.org/jira/browse/ACCUMULO-444?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13223405#comment-13223405
] 

Keith Turner commented on ACCUMULO-444:
---------------------------------------

Posting the tablet server logs that show how this scenario played out.

Below are the logs for tablet server T2

{noformat}
04 04:46:32,613 [log.RemoteLogger] DEBUG: Got new write-ahead log: xxx.xxx.xxx.10:11224/3f729699-6a7b-4ed0-8e41-cd767056a62e
04 04:46:32,615 [log.RemoteLogger] DEBUG: Got new write-ahead log: xxx.xxx.xxx.11:11224/6042d841-0f4f-40a0-b480-1e7d51047982

04 04:50:59,873 [tabletserver.TabletServer] DEBUG: Loading extent: !0;~;!0<
04 04:50:59,877 [util.MetadataTable] INFO : Returning logs [!0;~; 661acb95-8fb9-4ac7-8545-83032f05eb2b
(257)] for extent !0;~;!0<
04 04:50:59,877 [tabletserver.Tablet] DEBUG: got [!0;~; 661acb95-8fb9-4ac7-8545-83032f05eb2b
(257)] for logs for !0;~;!0<
04 04:50:59,901 [tabletserver.Tablet] INFO : Starting Write-Ahead Log recovery for !0;~;!0<
04 04:50:59,901 [tabletserver.TabletServer] INFO : Looking for /accumulo/recovery/661acb95-8fb9-4ac7-8545-83032f05eb2b.recovered/finished
04 04:50:59,902 [log.SortedLogRecovery] INFO : Looking at mutations from /accumulo/recovery/661acb95-8fb9-4ac7-8545-83032f05eb2b.recovered
for !0;~;!0<
04 04:50:59,914 [log.SortedLogRecovery] DEBUG: Found tid, seq 257 9
04 04:50:59,928 [log.SortedLogRecovery] INFO : Scanning for mutations starting at sequence
number 10 for tid 257
04 04:51:00,047 [log.SortedLogRecovery] INFO : Recovery complete for /accumulo/recovery/661acb95-8fb9-4ac7-8545-83032f05eb2b.recovered
04 04:51:00,047 [tabletserver.Tablet] INFO : Write-Ahead Log recovery complete for !0;~;!0<
(4721 mutations applied, 21111 entries created)
04 04:51:00,047 [tabletserver.Tablet] TABLET_HIST: !0;~;!0< opened 

04 04:51:00,066 [tabletserver.TabletServer] INFO : Adding 2 logs for extent !0;~;!0< as
alias 353

04 05:01:25,326 [tabletserver.TabletServer] FATAL: Lost tablet server lock (reason = LOCK_DELETED),
exiting.
04 05:08:48,307 [server.Accumulo] INFO : tserver starting
{noformat}

Below is the lost mutation that was written to walog 3f729699-6a7b-4ed0-8e41-cd767056a62e
on T2.

{noformat}
MUTATION 353 3
1 mutations:
  7kb;000054
      file:/t-000h69l/F000h8ae.rf [system]:2175897 [] 64826,16582
      srv:time [system]:2175897 [] M1330836309355
      last:335d51be2cb3cc6 [system]:2175897 [] xxx.xxx.xxx.11:9997
      log:xxx.xxx.xxx.10:11224/d1699ae9-04c7-4128-8b9d-a6355af0393a [system]:2175897 [] <deleted>
      log:xxx.xxx.xxx.13:11224/4b28c8e0-8729-4d52-a0a7-e080e03601a0 [system]:2175897 [] <deleted>
      srv:flush [system]:2175897 [] 0
      srv:lock [system]:2175897 [] tservers/xxx.xxx.xxx.11:9997/zlock-0000000001$335d51be2cb3cc6
{noformat}

Below shows that the metadata table was loaded on tablet server T3, and even though it should
recover more data is recovers the same amount as when it recovered on T2.  This shows that
all data written while the tablet was hosted on T2 was lost.

{noformat}
04 05:01:49,458 [tabletserver.TabletServer] DEBUG: Loading extent: !0;~;!0<
04 05:01:49,460 [util.MetadataTable] INFO : Returning logs [!0;~; 661acb95-8fb9-4ac7-8545-83032f05eb2b
(257), !0;~; 3f729699-6a7b-4ed0-8e41-cd767056a62e (353)] for extent !0;~;!0<
04 05:01:49,461 [tabletserver.Tablet] DEBUG: got [!0;~; 661acb95-8fb9-4ac7-8545-83032f05eb2b
(257), !0;~; 3f729699-6a7b-4ed0-8e41-cd767056a62e (353)] for logs for !0;~;!0<
04 05:01:49,474 [tabletserver.Tablet] INFO : Starting Write-Ahead Log recovery for !0;~;!0<
04 05:01:49,489 [log.SortedLogRecovery] DEBUG: Found tid, seq 257 9
04 05:01:49,495 [log.SortedLogRecovery] INFO : Looking at mutations from /accumulo/recovery/3f729699-6a7b-4ed0-8e41-cd767056a62e.recovered
for !0;~;!0<
04 05:01:49,500 [log.SortedLogRecovery] DEBUG: Found tid, seq 353 3
04 05:01:49,510 [log.SortedLogRecovery] INFO : Scanning for mutations starting at sequence
number 10 for tid 257
04 05:01:49,624 [log.SortedLogRecovery] INFO : Recovery complete for /accumulo/recovery/661acb95-8fb9-4ac7-8545-83032f05eb2b.recovered
04 05:01:49,629 [log.SortedLogRecovery] INFO : Scanning for mutations starting at sequence
number 10 for tid 353
04 05:01:49,674 [log.SortedLogRecovery] INFO : Recovery complete for /accumulo/recovery/3f729699-6a7b-4ed0-8e41-cd767056a62e.recovered
04 05:01:49,674 [tabletserver.Tablet] INFO : Write-Ahead Log recovery complete for !0;~;!0<
(4721 mutations applied, 21111 entries created)
04 05:01:49,674 [tabletserver.Tablet] TABLET_HIST: !0;~;!0< opened 
{noformat}
                
> Data loss possible when tablet killed immediately after recovery
> ----------------------------------------------------------------
>
>                 Key: ACCUMULO-444
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-444
>             Project: Accumulo
>          Issue Type: Bug
>          Components: tserver
>    Affects Versions: 1.3.5
>         Environment: Running random walk, continuous ingest, and agitator on 10 node
cluster.
>            Reporter: Keith Turner
>            Assignee: Keith Turner
>            Priority: Blocker
>              Labels: 14_qa_bug
>             Fix For: 1.4.0, 1.3.6
>
>
> Came in after a weekend of running test to find the Shard random walk test had lost data
in its index table.  After debugging I found the following sequence of events occurred.
>  * Mutation X was written to shard index on Tablet T1
>  * X was minor compacted to file F1
>  * Tablet server serving T1 was killed
>  * When T1 came up on another tablet server, it did not know about F1
> The above sequence of events indicate that the !METADATA table lost data.  So I started
looking into that, and found the following sequence of events.
>  * Tablet server T1 serving METADATA tablet MT was killed
>  * MT comes up on another tablet server T2
>  * Mutation Y is written to MT about file F1 for tablet T1
>  * Tablet server T2 is killed.
>  * MT comes up in tablet server T3
>  * The mutations for MT from T1 are recovered, but not from T2.. therefore Y is lost
> There is code that supposed to handle this situation, but its not working... I think
this issue exist in 1.3
> Data loss is not certain in this situation.  In the scenario above, when MT is loaded
on T2 a minor compaction is started.  If the server is killed before this minor compaction
completes then data loss will likely occur.
>   

--
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

        

Mime
View raw message