persistency programming 101
play

Persistency Programming 101 Why and What of memory - PowerPoint PPT Presentation

Persistency Programming 101 Why and What of memory persistency Aasheesh Kolli* Steven Pelley Ali Saidi $ Peter M. Chen*


  1. Persistency ¡Programming ¡101 ¡ ¡ Why ¡and ¡What ¡of ¡memory ¡persistency ¡ ¡ Aasheesh ¡Kolli* ¡ ¡ ¡ ¡Steven ¡Pelley † ¡ ¡ ¡ ¡Ali ¡Saidi $ ¡ Peter ¡M. ¡Chen* ¡ ¡ ¡ ¡Thomas ¡F. ¡Wenisch* ¡ ¡ * ¡University ¡of ¡Michigan ¡ † ¡Snowflake ¡CompuHng ¡ $ ARM ¡ ¡ 1 ¡

  2. ExecuHve ¡summary ¡ • NVMs ¡ � ¡in-­‑memory, ¡recoverable ¡data ¡structs ¡ • Require ¡ordering ¡of ¡NVM ¡writes ¡(persists) ¡ • Consistency ¡models ¡do ¡not ¡order ¡persists ¡ • Memory ¡persistency ¡[ISCA ¡‘14] ¡ – Consistency ¡models ¡for ¡NVM ¡ • This ¡talk: ¡ – MoNvate ¡memory ¡persistency ¡ – Summarize ¡persistency ¡models ¡ 2 ¡

  3. Background ¡-­‑ ¡Memory ¡consistency ¡ • Contract ¡b/w ¡hardware ¡and ¡soRware ¡on ¡store ¡ visibility ¡(implementaNon ¡independent) ¡ • May ¡be ¡strict ¡(SC) ¡or ¡relaxed ¡(RMO) ¡ Consistency spectrum • Does ¡not ¡apply ¡ ¡to ¡persists ¡ Need persistency models to order persists 3 ¡

  4. Future ¡system ¡abstracHon ¡ Memory events (stores/loads) Core0 Core1 Core0 Core1 1 1 2 2 3 3 4 4 5 5 6 6 Recovery Time Persist memory order Volatile memory order (persistency model) (consistency model) No Failures Failures 4 ¡

  5. Future ¡system ¡abstracHon ¡ Memory events (stores/loads) Core0 Core1 Core0 Core1 1 1 2 2 Persistency model governs store visibility in the 3 3 presence of failures 4 4 5 5 6 6 Recovery Time Persist memory order Volatile memory order (persistency model) (consistency model) No Failures Failures 5 ¡

  6. Types ¡of ¡persistency ¡models ¡ Memory events (stores/loads) Core0 Core1 Core0 Core1 Core0 Core1 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 Relaxed Strict Consistency persistency persistency 6 ¡

  7. Strict ¡vs ¡relaxed ¡persistency ¡ • Strict ¡persistency ¡ – Consistency ¡model ¡= ¡persistency ¡model ¡ – Expensive ¡(cost ¡of ¡persist ¡> ¡cost ¡of ¡store) ¡ • Relaxed ¡persistency ¡ – Separate ¡consistency ¡and ¡persistency ¡models ¡ – Reduces ¡persist ¡memory ¡order ¡constraints ¡ – Might ¡require ¡more ¡robust ¡recovery ¡soRware ¡ – Failures ¡are ¡infrequent ¡ � ¡recovery ¡overhead ¡OK ¡ Relaxed persistency models à à performance 7 ¡

  8. How ¡do ¡persists ¡affect ¡performance? ¡ • Persists ¡form ¡a ¡directed ¡acyclic ¡graph ¡(DAG) ¡ – CriNcal ¡path ¡limits ¡overall ¡performance ¡ D[0] 1: ¡persist ¡Qe.data[0] ¡= ¡x ¡ D[0] D[1] 2: ¡persist ¡Qe.data[1] ¡= ¡y ¡ 3: ¡persist ¡Qe.valid ¡= ¡true ¡ D[1] V V Models ¡should ¡allow ¡expression ¡of ¡minimal ¡constraints ¡ 8 ¡

  9. Strict ¡persistency ¡ • Consistency ¡model ¡= ¡persistency ¡model ¡ • Relaxed ¡consistency ¡ � ¡ ¡ ¡ ¡persist ¡concurrency ¡ 9 ¡

  10. Strict ¡persistency ¡with ¡SC ¡ 1. lock (volatile mutex) D[0] 2. persist Qe.data[0] = x 3. persist Qe.data[1] = y D[1] 4. persist Qe.valid = true 5. unlock V • Program ¡order ¡ � ¡store ¡order ¡ � ¡persist ¡order ¡ • No ¡annotaNons ¡required ¡ • SubopNmal ¡persist ¡criNcal ¡paths ¡ 10 ¡

  11. Strict ¡persistency ¡with ¡RMO ¡ 1. lock (volatile mutex) 2. barrier D[0] D[1] 3. persist Qe.data[0] = x 4. persist Qe.data[1] = y 5. barrier 6. persist Qe.valid = true V 7. barrier 8. unlock • Barriers ¡for ¡synchronizaNon ¡and ¡recovery ¡ • AnnotaNon ¡burden ¡on ¡the ¡programmer ¡ • Affects ¡volaNle ¡perf ¡ 11 ¡

  12. Strict ¡persistency ¡with ¡RMO ¡ 1. lock (volatile mutex) 2. barrier D[0] D[1] 3. persist Qe.data[0] = x 4. persist Qe.data[1] = y 5. barrier 6. persist Qe.valid = true V 7. barrier 8. unlock • Barriers ¡for ¡synchronizaNon ¡and ¡recovery ¡ • AnnotaNon ¡burden ¡on ¡the ¡programmer ¡ • Affects ¡volaNle ¡perf ¡ 12 ¡

  13. Relaxed ¡persistency ¡models ¡ • Decouple ¡consistency ¡and ¡persistency ¡models ¡ • Expose ¡addiNonal ¡persist ¡concurrency ¡ – Important ¡for ¡conservaNve ¡consistency ¡models ¡ • Will ¡use ¡SC ¡as ¡underlying ¡consistency ¡model ¡ 13 ¡

  14. Epoch ¡persistency ¡ 1. lock (volatile mutex) 2. persist Qe.data[0] = x D[0] D[1] Epoch 1 3. persist Qe.data[1] = y 4. persist barrier 5. persist Qe.valid = true Epoch 2 V ¡ 6. unlock • Persist ¡barriers ¡divide ¡program ¡into ¡epochs ¡ – Inspired ¡from ¡BPFS ¡[SOSP ¡‘09] ¡ – Persists ¡within ¡epoch ¡concurrent ¡ – Persists ¡from ¡successive ¡epochs ¡ordered ¡ – Store ¡visibility ¡sNll ¡dictated ¡by ¡program ¡order ¡ 14 ¡ ¡

  15. Epoch ¡persistency ¡drawback ¡ DAG-2 Ideal DAG-1 persist A persist A persist A persist C persist A persist barrier persist barrier persist C persist A persist B persist B persist C persist barrier persist barrier persist C persist B persist B persist B persist C A A A C C B B C B Cannot express minimal constraints 15 ¡

  16. Strand ¡persistency ¡ • Divide ¡thread’s ¡execuNon ¡into ¡strands ¡ – A ¡strand ¡can ¡be ¡abstracted ¡as ¡a ¡logical ¡thread ¡ • Persists ¡on ¡different ¡strands ¡are ¡concurrent ¡ • New ¡memory ¡event ¡ newStrand ¡ ¡ – Persist ¡barriers ¡order ¡persists ¡within ¡a ¡strand ¡ persist A A persist barrier persist B C newStrand B persist C Can enforce only the necessary constraints 16 ¡

  17. Ordering ¡persists ¡across ¡threads ¡ • ConflicNng ¡accesses ¡establish ¡persist ¡order ¡ – Two ¡accesses ¡to ¡same ¡address, ¡at ¡least ¡one ¡store ¡ – Persist ¡order ¡must ¡match ¡volaNle ¡order ¡ – Could ¡be ¡to ¡volaNle/non-­‑volaNle ¡addresses ¡ – Strong ¡persist ¡atomicity ¡ 17 ¡

  18. Strong ¡persist ¡atomicity ¡example ¡ Thread ¡-­‑ ¡1 ¡ Thread ¡-­‑ ¡2 ¡ lock ¡X ¡(volaNle ¡mutex) ¡ ¡ Persist order persist ¡barrier ¡ ¡ Conflicting persist ¡A ¡ ¡ accesses persist ¡barrier ¡ ¡ unlock ¡X ¡ ¡ lock ¡X ¡ persist ¡barrier ¡ persist ¡B ¡ Time persist ¡barrier ¡ unlock ¡X ¡ 18 ¡

  19. Conclusions ¡ • Strict ¡persistency ¡ – Unifies ¡consistency ¡and ¡persistency ¡model ¡ • Epoch ¡persistency ¡ – Persists ¡within ¡epoch ¡concurrent, ¡epochs ¡ordered ¡ • Strand ¡persistency ¡ – Allows ¡enforcing ¡only ¡minimal ¡constraints ¡ • Strong ¡persist ¡atomicity ¡ – Allows ¡ordering ¡persists ¡across ¡threads/strands ¡ 19 ¡

  20. Thank ¡You! ¡ QuesHons? ¡ 20 ¡

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend