low overhead concurrency control for partitioned main
play

Low Overhead Concurrency Control for Partitioned Main Memory - PowerPoint PPT Presentation

Low Overhead Concurrency Control for Partitioned Main Memory Databases Evan P. C. Jones Daniel J. Abadi Samuel Madden Banks Payment Processing Airline Reservations E-Commerce Web 2.0 Problem :


  1. Low Overhead Concurrency Control for Partitioned Main Memory Databases 
 Evan P. C. Jones Daniel J. Abadi Samuel Madden �

  2. Banks � Payment Processing � Airline Reservations � E-Commerce � Web 2.0 �

  3. Problem : � Millions of transactions per second �

  4. Problem : � Millions of transactions per second �

  5. Problem : � Millions of transactions per second � = � $$$$ �

  6. Alternative: H-Store Project � Redesign specifically for OLTP � Prototype: ~10X throughput � Idea: Remove un-needed features � Source: Stonebraker et. al, “The End of an Architectural Era”, VLDB 2007. �

  7. H-Store: High Throughput OLTP � Redesign DB specifically for OLTP � Prototype: ~10X throughput � Main memory database � Concurrency control consumes ~30-40% of CPU time �

  8. *!)# *$%++ Q=02 .+7# I02 *!"# ,)--("- $!)# 0Q=W2 concurrency control ,)'.("- ! 30-40% 87',+# $!"# 0C=I2 ,/$'0("- (!)# I`=L2 (!"# 1&22+% 3/"/-+% !)# 0I=12 !"# CPU Cycle Breakdown for Shore on TPC-C New Order � Source: Harizopoulos, Abadi, Madden and Stonebraker, � “OLTP Under the Looking Glass”, SIGMOD 2008 �

  9. *!)# *$%++ Q=02 .+7# I02 *!"# ,)--("- $!)# 0Q=W2 concurrency control ,)'.("- ! 30-40% 87',+# $!"# 0C=I2 ,/$'0("- (!)# I`=L2 (!"# 1&22+% 3/"/-+% !)# 0I=12 !"# CPU Cycle Breakdown for Shore on TPC-C New Order � Source: Harizopoulos, Abadi, Madden and Stonebraker, � “OLTP Under the Looking Glass”, SIGMOD 2008 �

  10. Speculative Concurrency Control � Eliminate fine-grained access tracking (locks or read/write sets) � Eliminate undo logs (where possible) � Up to 2X faster than locking for appropriate workloads �

  11. Why Support Concurrency? � Use idle resources: � � disk stalls � main memory � � user stalls � stored procedures � Physical resources: � � multiple CPUs � partition per core � � multiple disks � Long running txns: � don ʼ t do them �

  12. H-Store: Single thread engine � Assumptions: � Database divided into partitions � Transactions access one partition (mostly) � Mapping procedures to partitions is given � Total data fits in memory of N machines � Partitions are replicated on 2 machines �

  13. System Overview � Clients Client Library Client Library Client Library H-Store Coordinator Partition 1 Partition 2 Primary Primary Partition 1 Partition 2 Backup Backup

  14. Single Partition Transaction � Client 1 Primary Backup

  15. Single Partition Transaction � Client 1 Primary 2 Backup

  16. Single Partition Transaction � Client 1 Primary execute 2 Backup

  17. Single Partition Transaction � Client 1 Primary execute 2 3 Backup

  18. Single Partition Transaction � Client 1 4 Primary execute 2 3 Backup

  19. Single Partition Transaction � Client 1 4 Primary execute execute 2 3 Backup

  20. Single Partition Transaction � Clients Client Library Client Library Client Library H-Store 1 Coordinator Partition 1 Partition 2 Primary Primary Partition 1 Partition 2 Backup Backup

  21. Single Partition Transaction � Clients Client Library Client Library Client Library H-Store 1 Coordinator Partition 1 Partition 2 Primary Primary 2 Partition 1 Partition 2 Backup Backup

  22. Single Partition Transaction � Clients Client Library Client Library Client Library H-Store 1 Coordinator Partition 1 Partition 2 Primary Primary 2 3 Partition 1 Partition 2 Backup Backup

  23. Single Partition Transaction � Clients Client Library Client Library Client Library H-Store 1 4 Coordinator Partition 1 Partition 2 Primary Primary 2 3 Partition 1 Partition 2 Backup Backup

  24. Single Partition Transaction � Clients Client Library Client Library Client Library H-Store 1 4 Coordinator Partition 1 Partition 2 Primary Primary 2 3 Partition 1 Partition 2 Backup Backup

  25. Single Partition Transaction � Clients Client Library Client Library Client Library H-Store 1 4 Coordinator Partition 1 Partition 2 Primary Primary 2 3 Partition 1 Partition 2 Backup Backup

  26. Single Partition Transaction � Clients Client Library Client Library Client Library H-Store 1 4 Coordinator Partition 1 Partition 2 Primary Primary 2 3 Partition 1 Partition 2 Backup Backup

  27. Single Partition Transaction � Clients Client Library Client Library Client Library H-Store 1 4 Coordinator Partition 1 Partition 2 Primary Primary 2 3 Partition 1 Partition 2 Backup Backup

  28. Single Partition Transaction � Clients Client Library Client Library Client Library H-Store 1 4 Coordinator Partition 1 Partition 2 Primary Primary 2 3 Partition 1 Partition 2 Backup Backup

  29. Single Partition Transaction � Clients Client Library Client Library Client Library H-Store 1 4 Coordinator Partition 1 Partition 2 Primary Primary 2 3 Partition 1 Partition 2 Backup Backup

  30. Single Partition Transaction � Clients Client Library Client Library Client Library H-Store 1 4 Coordinator Partition 1 Partition 2 Primary Primary 2 3 Partition 1 Partition 2 Backup Backup

  31. Not Perfectly Partionable? � Example: users and groups � Many applications are mostly partitionable � e.g. TPC-C: 11% multi-partition transactions �

  32. Distributed Transactions � Need two-phase commit (consensus) � Simple solution: � block until the transaction finishes � Introduces network stall ( bad ) �

  33. Blocking Multi-Partition � Clients Client Library Client Library Client Library H-Store 1 Coordinator Partition 1 Partition 2 Primary Primary Partition 1 Partition 2 Backup Backup

  34. Blocking Multi-Partition � Clients Client Library Client Library Client Library H-Store 1 Coordinator 2 2 Partition 1 Partition 2 Primary Primary Partition 1 Partition 2 Backup Backup

  35. Blocking Multi-Partition � Clients Client Library Client Library Client Library H-Store 1 Coordinator 2 2 Partition 1 Partition 2 Primary Primary Partition 1 Partition 2 Backup Backup

  36. Blocking Multi-Partition � Client 1 Coordinator 2 P1 Primary P1 Backup

  37. Blocking Multi-Partition � Client 1 Coordinator 2 P1 Primary 3 P1 Backup

  38. Blocking Multi-Partition � Client 1 Coordinator 2 execute P1 Primary 3 P1 Backup

  39. Blocking Multi-Partition � Client 1 Coordinator 2 execute P1 Primary 3 4 P1 Backup

  40. Blocking Multi-Partition � Client 1 Coordinator 2 5 execute P1 Primary 3 4 P1 Backup

  41. Blocking Multi-Partition � Client 1 Coordinator 2 5 execute P1 Primary 3 4 P1 Backup

  42. Blocking Multi-Partition � Client 1 6 Coordinator 2 6 5 execute P1 Primary 3 4 P1 Backup

  43. Blocking Multi-Partition � Client 1 6 Coordinator 2 6 5 execute execute P1 Primary 3 4 P1 Backup

  44. Blocking Multi-Partition � Client 1 6 Coordinator 2 6 5 execute execute P1 Primary 3 4 P1 Backup network stall

  45. Blocking Multi-Partition � Clients Client Library Client Library Client Library H-Store 1 Coordinator 2 2 Partition 1 Partition 2 Primary Primary 3 3 Partition 1 Partition 2 Backup Backup

  46. Blocking Multi-Partition � Clients Client Library Client Library Client Library H-Store 1 Coordinator 2 2 Partition 1 Partition 2 Primary Primary 3 4 3 4 Partition 1 Partition 2 Backup Backup

  47. Blocking Multi-Partition � Clients Client Library Client Library Client Library H-Store 1 Coordinator 2 2 5 5 Partition 1 Partition 2 Primary Primary 3 4 3 4 Partition 1 Partition 2 Backup Backup

  48. Blocking Multi-Partition � Clients Client Library Client Library Client Library H-Store 6 1 Coordinator 2 2 5 5 6 6 Partition 1 Partition 2 Primary Primary 3 4 3 4 Partition 1 Partition 2 Backup Backup

  49. Blocking Multi-Partition � Clients Client Library Client Library Client Library H-Store 6 1 Coordinator 2 2 5 5 6 6 Partition 1 Partition 2 Primary Primary 3 4 3 4 Partition 1 Partition 2 Backup Backup

  50. Two-Phase Locking � + Execute non-conflicting txns during stall � + No need to order in advance � – Locking overhead � – Deadlocks � Optimization : turn off locks and undo logging when no multi-partition transactions �

  51. Speculative CC � While waiting for commit/abort, speculatively execute other transactions � + No locks; no read/write sets � – Need global transaction order � – Cascading aborts �

  52. Speculative Multi-Partition � Client 1 Coordinator 2 5 execute P1 Primary 3 4 P1 Backup

  53. Speculative Multi-Partition � Client 1 Coordinator 2 5 execute execute P1 Primary 3 4 P1 Backup

  54. Speculative Multi-Partition � Client 1 Coordinator 2 5 execute execute P1 Primary 3 4 P1 Backup

  55. Speculative Multi-Partition � Client 1 Coordinator 2 5 execute execute P1 Primary 3 4 P1 Backup

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