Ashwani Raina created KUDU-3783:
-----------------------------------

             Summary: Extend clean-superblock guarantee into LoadFromSuperBlock
                 Key: KUDU-3783
                 URL: https://issues.apache.org/jira/browse/KUDU-3783
             Project: Kudu
          Issue Type: Bug
            Reporter: Ashwani Raina
            Assignee: Ashwani Raina


KUDU-1060 guarantees a clean superblock when cleanup happens through 
{{DeleteTabletData}}. It does not cover the crash-recovery path followed by 
load-time path.
 # A crash occurs after a superblock was written with orphaned-block entries 
but before the cleanup {{Flush()}} completed 
 # On the next startup, {{LoadFromSuperBlock}} calls {{DeleteOrphanedBlocks, 
}}so the blocks get deleted from disk and removed from the in-memory set but on 
{{master}} today it never flushes {{{}{}}}a clean superblock afterward.
 # For a tombstoned tablet, that could be fatal to the optimization: a 
tombstoned tablet receives no further normal flushes, so the on-disk superblock 
keeps the stale orphaned block IDs forever. Every subsequent restart re-parses 
those block IDs and re-runs {{DeleteOrphanedBlocks}} (now mostly 
{{{}NotFound{}}}, but still parsed and attempted), a recurring per-restart cost 
proportional to:
{{{{No. of tombstoned tablets}}{{ x No. of orphaned blocks per tablet


}}}}This ticket tracks the changes to extend clean-superblock guarantee into 
{{{}LoadFromSuperBlock.{}}}{{{}{}}}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to