increasing performance in byzantine fault tolerant
play

Increasing Performance in Byzantine Fault-Tolerant Systems with - PowerPoint PPT Presentation

Increasing Performance in Byzantine Fault-Tolerant Systems with On-Demand Replica Consistency Tobias Distler and R udiger Kapitza System Software Group Friedrich-Alexander University Erlangen-Nuremberg EuroSys April 11, 2011 supported by


  1. Increasing Performance in Byzantine Fault-Tolerant Systems with On-Demand Replica Consistency Tobias Distler and R¨ udiger Kapitza System Software Group Friedrich-Alexander University Erlangen-Nuremberg EuroSys April 11, 2011 supported by

  2. Byzantine Fault Tolerance (BFT) Agreement-based Byzantine fault tolerance Replica 0 3 f + 1 replicas to tolerate f faults BFT agreement protocol Client-side voting Replica 1 Client Drawbacks Replica 2 High resource usage Performance overhead for agreement Replica 3 [Castro et al., Practical Byzantine fault tolerance, OSDI ’99] REFIT Project Research Goal Resource-efficient BFT systems Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 2

  3. Making BFT Systems More Resource-Efficient REFIT Project Research Goal Resource-efficient BFT systems Optimizing Resource Usage Optimizing Performance Reduced number of replicas Default number of replicas Same performance Increased performance Recent examples ⇒ ODRC SPARE [Distler et al., NDSS ’11] ZZ [Wood et al., EuroSys ’11] Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 3

  4. Where to Optimize? Agreement 0 Execution 0 Agreement stage BFT agreement protocol Sequence of agreed requests Agreement 1 Execution 1 Client Execution stage Agreement 2 Execution 2 Service application Request processing Agreement 3 Execution 3 [Yin et al., Separating agreement from execution Observations for Byzantine fault tolerant services, SOSP ’03] Past optimizations have significantly reduced agreement overhead Non-trivial services: response times are dominated by execution stage ODRC Approach Reducing the load on the execution stage Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 4

  5. Basic Approach Traditional BFT systems All 3 f + 1 replicas process all requests Client waits for f + 1 identical replies Insight In the absence of faults , a client only needs f + 1 replies to make progress ODRC Each request is processed by only f + 1 replicas Load distribution across replicas Additional replicas process the request in case of faults Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 5

  6. Talk Outline ODRC Selective Request Execution O n- D emand R eplica C onsistency Evaluation Conclusion Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 6

  7. Talk Outline ODRC Selective Request Execution O n- D emand R eplica C onsistency Evaluation Conclusion Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 7

  8. Architecture Selector Selects requests for execution Stores requests that have not been selected Agreement 0 Selector 0 Execution 0 Agreement 1 Selector 1 Execution 1 Client Agreement 2 Selector 2 Execution 2 Agreement 3 Selector 3 Execution 3 Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 8

  9. Application State Set of objects Examples: files, directories, ... Assumption: requests carry information about object access Agreement 0 Selector 0 Execution 0 Agreement 1 Selector 1 Execution 1 Client Agreement 2 Selector 2 Execution 2 Agreement 3 Selector 3 Execution 3 State Objects Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 9

  10. Application State Distribution Object distribution scheme Each object is maintained on f + 1 replicas, unmaintained on others State of unmaintained objects may be outdated Selector 0 Agreement 0 Execution 0 Selector 1 Agreement 1 Execution 1 Client Selector 2 Agreement 2 Execution 2 Selector 3 Agreement 3 Execution 3 Maintained Objects Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 10

  11. Selective Request Execution in Action Normal-case operation Selector 0 0 0 Agreement 0 Execution 0 0 0 Selector 1 0 0 Agreement 1 Execution 1 0 0 Client Selector 2 0 0 Agreement 2 Execution 2 0 0 Selector 3 0 0 Agreement 3 Execution 3 0 0 Garbage collection of stored requests Periodic object checkpoints of maintained objects Stable checkpoint: f + 1 identical checkpoints Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 11

  12. Selective Request Execution in Action Normal-case operation Selector 0 0 0 inc() Agreement 0 Execution 0 0 0 Selector 1 0 0 inc() Agreement 1 Execution 1 0 0 Client Selector 2 0 0 inc() Agreement 2 Execution 2 0 0 Selector 3 0 0 inc() Agreement 3 Execution 3 0 0 Garbage collection of stored requests Periodic object checkpoints of maintained objects Stable checkpoint: f + 1 identical checkpoints Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 11

  13. Selective Request Execution in Action Normal-case operation Selector 0 inc() 0 0 Agreement 0 Execution 0 0 0 Selector 1 inc() 0 0 Agreement 1 Execution 1 0 0 Client Selector 2 0 0 inc() Agreement 2 Execution 2 0 0 Selector 3 0 0 inc() Agreement 3 Execution 3 0 0 Garbage collection of stored requests Periodic object checkpoints of maintained objects Stable checkpoint: f + 1 identical checkpoints Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 11

  14. Selective Request Execution in Action Normal-case operation Selector 0 inc() 0 0 Agreement 0 Execution 0 0 0 Selector 1 inc() 0 0 Agreement 1 Execution 1 0 0 Client Selector 2 0 1 Agreement 2 Execution 2 0 0 Selector 3 0 1 Agreement 3 Execution 3 0 0 Garbage collection of stored requests Periodic object checkpoints of maintained objects Stable checkpoint: f + 1 identical checkpoints Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 11

  15. Selective Request Execution in Action Normal-case operation Selector 0 inc() 0 0 inc() Agreement 0 Execution 0 0 0 Selector 1 inc() 0 0 inc() Agreement 1 Execution 1 0 0 Client Selector 2 0 1 inc() Agreement 2 Execution 2 0 0 Selector 3 0 1 inc() Agreement 3 Execution 3 0 0 Garbage collection of stored requests Periodic object checkpoints of maintained objects Stable checkpoint: f + 1 identical checkpoints Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 11

  16. Selective Request Execution in Action Normal-case operation Selector 0 inc() 0 0 inc() Agreement 0 Execution 0 0 0 Selector 1 inc() 0 0 inc() Agreement 1 Execution 1 0 0 Client Selector 2 inc() 0 1 Agreement 2 Execution 2 0 0 Selector 3 inc() 0 1 Agreement 3 Execution 3 0 0 Garbage collection of stored requests Periodic object checkpoints of maintained objects Stable checkpoint: f + 1 identical checkpoints Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 11

  17. Selective Request Execution in Action Normal-case operation Selector 0 inc() 1 0 Agreement 0 Execution 0 0 0 Selector 1 inc() 1 0 Agreement 1 Execution 1 0 0 Client Selector 2 inc() 0 1 Agreement 2 Execution 2 0 0 Selector 3 inc() 0 1 Agreement 3 Execution 3 0 0 Garbage collection of stored requests Periodic object checkpoints of maintained objects Stable checkpoint: f + 1 identical checkpoints Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 11

  18. Talk Outline ODRC Selective Request Execution O n- D emand R eplica C onsistency Evaluation Conclusion Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 12

  19. Multi-Object Operations Access of multiple objects Only unmaintained objects ⇒ store request At least one maintained object Update unmaintained objects Process request Selector 0 inc() 1 0 Agreement 0 Execution 0 0 0 Selector 1 inc() 1 0 Agreement 1 Execution 1 0 0 Client Selector 2 inc() 0 1 Agreement 2 Execution 2 0 0 Selector 3 inc() 0 1 Agreement 3 Execution 3 0 0 Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 13

  20. Multi-Object Operations Access of multiple objects Only unmaintained objects ⇒ store request At least one maintained object Update unmaintained objects Process request inc() Selector 0 inc() 1 0 Agreement 0 Execution 0 0 0 inc() Selector 1 inc() 1 0 Agreement 1 Execution 1 0 0 Client inc() Selector 2 inc() 0 1 Agreement 2 Execution 2 0 0 inc() Selector 3 inc() 0 1 Agreement 3 Execution 3 0 0 Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 13

  21. Multi-Object Operations Access of multiple objects Only unmaintained objects ⇒ store request At least one maintained object Update unmaintained objects Process request inc() Selector 0 inc() 1 0 Agreement 0 Execution 0 0 0 inc() Selector 1 inc() 1 0 Agreement 1 Execution 1 0 0 Client inc() Selector 2 inc() 0 1 Agreement 2 Execution 2 0 0 inc() Selector 3 inc() 0 1 Agreement 3 Execution 3 0 0 Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 13

  22. Multi-Object Operations Access of multiple objects Only unmaintained objects ⇒ store request At least one maintained object Update unmaintained objects Process request inc() Selector 0 inc() 1 0 Agreement 0 Execution 0 0 0 inc() Selector 1 inc() 1 0 Agreement 1 Execution 1 0 0 Client inc() Selector 2 inc() 0 1 Agreement 2 Execution 2 0 0 Selector 3 inc() inc() 0 1 Agreement 3 Execution 3 0 0 Tobias Distler ( distler@cs.fau.de ) Increasing Performance in BFT Systems with ODRC 13

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