1 / 11

Distributed Parity Cache Table

Distributed Parity Cache Table. Motivation. Parity updating is a high cost operation Especially for small write operations Read old data 、 Read Old Parity 、 write new data 、 write new parity Basic ideas Delay the generation of parity Cached data could be used without reread

gram
Download Presentation

Distributed Parity Cache Table

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Distributed Parity Cache Table

  2. Motivation • Parity updating is a high cost operation • Especially for small write operations • Read old data、Read Old Parity、write new data、write new parity • Basic ideas • Delay the generation of parity • Cached data could be used without reread • Parity & newly written data could be cached for “the same” write • Beyond parity? • A server-side cooperative cache

  3. Distributed Parity Cache Table • A whole stripe is more meaningful than partial blocks • Local file system cache knows nothing about a whole stripe • Distributed parity cache table knows !! • Small write phenomenon • Could aggregate small writes • Benefits from previous read • Cooperative cache • PVFS does not provide cache

  4. Architecture

  5. Striping Size and Cache Blocks

  6. Cache Block • Each block contains 16K data + 256 bytes metadata • DTag : Data tag • PTag : Parity tag • LRef : # of hits in this block • GRef: # of hits in this stripe

  7. Cache Replacement Algorithm IF PTag is null THEN IF Operation is READ THEN USE LRef Field & LRU ELSE IF Dirty bit is Set THEN Write the Parity Block and the replaced Block END IF Write Operation Proceed Update the PTag Field END IF ELSE IF PTag == itself.DTag and DTag != itself.DTag THEN Replace the block ELSE IF PTag != DTag USE LRef Field & LRU END IF END IF

  8. Performance Evaluation (1/4) –Native Calls

  9. Performance Evaluation (2/4) –Native Calls

  10. Performance Evaluation (3/4) –POSIX APIs

  11. Performance Evaluation (4/4) – POSIX APIs

More Related