List:Falcon Storage Engine« Previous MessageNext Message »
From:Jim Starkey Date:April 8 2009 10:07pm
Subject:Blobs, earlyWrite, and All That
View as plain text  
Falcon handles small and large blobs differentially.  Small blobs are 
handled about the same way as records, which is to say that they are 
written to the serial log and flushed to disk post commit.  However, it 
doesn't make sense to write large blobs to the serial log since they can 
be written directly to disk (blobs never overwrite anything, so this is 
safe).

The "earlyWrite" flag on Section::storeRecord is set for large blobs.  
Large blobs are initially stored like ordinary large records -- tail 
first -- as data overflow pages, except the pages are also posted the 
page writer so they can be written prior to commit.  The pages 
themselves are not written to serial log, just the page numbers.  The 
difference comes on the handling of the first data page.  For blobs with 
the earlyWrite option, the first data page is logged with SRLBlobUpdate.

In other words, large blob page numbers, but not the blobs themselves, 
are written to the serial log.  The pages themselves are written by the 
page write.  A commit, in turn, will wait for confirmation from page 
written that the pages are safely on disk.

-- 
Jim Starkey
President, NimbusDB, Inc.
978 526-1376

Thread
Blobs, earlyWrite, and All ThatJim Starkey9 Apr
  • Recovery bugs, classified by meVladislav Vaintroub9 Apr
    • PAGE IO bugs, classified by meVladislav Vaintroub9 Apr
    • Recovery and Page IO bugs classified by VladChristopher Powers11 Apr
  • Re: Recovery bugs, classified by mePhilip Stoev9 Apr
    • RE: Recovery bugs, classified by meVladislav Vaintroub9 Apr
      • Re: Recovery bugs, classified by meJames Day13 Apr
        • Re: Recovery bugs, classified by meKevin Lewis13 Apr
    • RE: Recovery bugs, classified by meVladislav Vaintroub9 Apr
    • Re: Recovery bugs, classified by meChristopher Powers11 Apr
      • Re: Recovery bugs, classified by meJames Day13 Apr
  • Re: Recovery bugs, classified by mePhilip Stoev9 Apr
    • RE: Recovery bugs, classified by meVladislav Vaintroub9 Apr
  • Re: Recovery bugs, classified by mePhilip Stoev9 Apr
  • Re: Recovery bugs, classified by mePhilip Stoev11 Apr