Your SlideShare is downloading. ×
Dat308
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Dat308

488
views

Published on

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
488
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • דמו של פייסבוק
  • מדריך הטרמפיסט לטקאד
  • מישהו קיבל Giveaways?
  • No escalation from Row to PageEach lock structure is 100 bytesNumber of locks acquired on a rowset > 5000 - Periodically after that
  • Self-explanatory. See Books Online for more details about partitioning. Also see http://msdn2.microsoft.com/en-us/library/ms345146.aspx
  • Query 1 is updating partition 1. It hits the escalation threshold and escalates to a TABLE X lock. Query 2 tries to update partition 3 and can’t because of the table X lock, even though nothing in partition 3 is being altered by query 1.
  • Instead of escalating to the table level and blocking all other queries on the table, you can now choose to have escalation to the partition level, which allows concurrent queries on different partitions.
  • Sunil Agarwal – Principal Program Manager
  • אחד האהובים עלי
  • Complex event processing involves the processing and querying of data when the data is in flight. The data needs to be processed before there is time to persist it.Such processing involves very high data rates and often deals with multiple concurrent event sources and multiple output data.The aim is to process with as little latency as possible.
  • Database applications work in much slower times. For complex event processing applications, the latencies involved are much smaller.
  • Complex event processing involves the processing and querying of data when the data is in flight. The data needs to be processed before there is time to persist it.Such processing involves very high data rates and often deals with multiple concurrent event sources and multiple output data.The aim is to process with as little latency as possible.
  • Complex event processing involves the processing and querying of data when the data is in flight. The data needs to be processed before there is time to persist it.Such processing involves very high data rates and often deals with multiple concurrent event sources and multiple output data.The aim is to process with as little latency as possible.
  • Complex event processing involves the processing and querying of data when the data is in flight. The data needs to be processed before there is time to persist it.Such processing involves very high data rates and often deals with multiple concurrent event sources and multiple output data.The aim is to process with as little latency as possible.
  • Complex event processing involves the processing and querying of data when the data is in flight. The data needs to be processed before there is time to persist it.Such processing involves very high data rates and often deals with multiple concurrent event sources and multiple output data.The aim is to process with as little latency as possible.
  • Complex event processing involves the processing and querying of data when the data is in flight. The data needs to be processed before there is time to persist it.Such processing involves very high data rates and often deals with multiple concurrent event sources and multiple output data.The aim is to process with as little latency as possible.
  • Complex event processing involves the processing and querying of data when the data is in flight. The data needs to be processed before there is time to persist it.Such processing involves very high data rates and often deals with multiple concurrent event sources and multiple output data.The aim is to process with as little latency as possible.
  • Transcript

    • 1. אין משתמשים – אין בעיות
      Meir Dudai
      SQL Server MVP
      Valinor
    • 2. Content slide
    • 3. When do I need to start worrying?
      100’s of queries/second
      1000’s of DMLs/second
      VLDB’s
    • 4. When do I need to start worrying?
      Application was designed and developed poorly…
    • 5. When do I need to start worrying?
      You have just migrated from other platform
    • 6. What can I do?
      Throw in more hardware – not very useful
    • 7. What can I really do?
      Improve application design
      Use database enhancements and features
      Change system architecture
    • 8. Who Am I?
      Meir Dudai
      • MVP
      • 9. SQL Server consultant
      • 10. Editor of SQLServer.co.il
    • How to increase concurrency without changing your application
      How to adjust your architecture to achieve better concurrency
    • 11. Some basics
      Magic settings
      RCSI
      Partition-level lock escalation
      Page Latches
      Architectural design
      Bulk Load
      StreamInsight
      Caching
      Offloading Traffic
      Denali HADR
    • 12. Common Concurrency Issues with Applications
      Wrong transaction isolation level
      Incorrect locking granularity
      Missing Indexes
      Accessing large dataset leading to lock escalation
      Long running transactions
      User interactions in active transaction
      Accessing objects in reverse order across transactions
    • 13. Some basics
      Magic settings
      RCSI
      Partition-level lock escalation
      Page Latches
      Architectural design
      Bulk Load
      StreamInsight
      Caching
      Offloading Traffic
      Denali HADR
    • 14. GreenRoad Case Study:RCSI
      GreenRoad is an Israeli startup improving driving behavior for fleets and consumers
      Works as SAAS
      More than 400 inserts/sec
      Users running queries and reports frequently
      Method used to increase concurrency:
      RCSI: Read Committed Snapshot Isolation
    • 15. Tran2 (Select)
      Tran1 (Update)
      Reader Writer Blocking
      Data Page
      S-Lock
      Blocked
      Row-1
      Row-1
      X-Lock
    • 16. Read Committed SnapshotStatement-Level ‘Snapshot Isolation’
      New “flavor” of read committed
      Turn ON/OFF on a database
      Readers see committed values as of beginning of statement
      Writers do not block Readers
      Readers do not block Writers
      Writers do block writers
      Can greatly reduce locking / deadlocking without changing applications
    • 17. Demo
    • 18. Lock Escalation
      HOBT
      T1: IX
      T1: X
      Page
      Page
      Page
      T1: X
      T1: X
      T1: X
      T1: X
      T1: X
      Row
      Row
      Row
      T1: X
      T1: X
      T1: X
      Lock Escalation
      T1: IX
    • 19. Lock Escalation
      Converting finer-grain locks to coarse grain locks.
      Row to Table
      Page to Table.
      Benefits
      Reduced locking overhead
      Reduces Memory requirement
      Triggered when
      Number of locks acquired on a rowset > 5000
      Memory pressure
    • 20. Partitioned Tables and Indexes
      SQL Server 2005 introduced partitioning, which some customers use to scale a query workload
      Another common use is to streamline maintenance and enable fast range inserts and removals from tables
      Partitioned
      Table
      FG1
      FG2
      FG3
      Partition 2
      Partition 3
      Partition 1
    • 21. Lock escalation on partitioned tables reduces concurrency as the table lock locks ALL partitions
      Only way to solve this in SQL Server 2005 is to disable lock escalation
      Lock Escalation: The Problem
      Query 1
      Query 2
      Partitioned
      Table
      IX
      X
      ESCALATE
      update
      update
      Partition 2
      Partition 1
      Partition 3
      FG1
      FG2
      FG3
    • 22. Lock Escalation: The Solution
      SQL Server 2008 allows lock escalation to the partition level, allowing concurrent access to other partitions
      Escalation to partition level does not block queries on other partitions
      Query 1
      Query 2
      Partitioned
      Table
      IX
      ESCALATE
      update
      update
      X
      Partition 2
      Partition 1
      Partition 3
      FG1
      FG2
      FG3
    • 23. Demo
    • 24. Some basics
      Magic settings
      RCSI
      Partition-level lock escalation
      Page Latches
      Architectural design
      Bulk Load
      StreamInsight
      Caching
      Offloading Traffic
      Denali HADR
    • 25. Silent Blocker: Page Latches
      What is a Pagelatch?
      Access patterns leading to latch contention
      Clustering index has a increasing primary key with high rate of inserts
      Relatively small tables with a lot of read/write/delete
      Indexes with low cardinality in the key with high rate of inserts
      Allocation Structures (e.g. SGAM)
      Observed with 16+ concurrent threads
      Page Header
      R1
      Free Offset
      R2
      R3
    • 26. Silent Blocker: Page Latches
      What can you do?
      Cluster on some other column
      Partition the table on some other attribute (computed column (hash))
      Add another major key column
      Change the application
    • 27. Demo
    • 28. Some basics
      Magic settings
      RCSI
      Partition-level lock escalation
      Page Latches
      Architectural design
      Bulk Load
      StreamInsight
      Caching
      Offloading Traffic
      Denali HADR
    • 29. Codename Lyngby Case Study: Power of bulk inserts
      Security/audit system
      50GB of data inserted daily
      Data is kept for one year and should be available for queries and reports at any time
      Method used to increase concurrency:
      Bulk inserts
    • 30. Benefits of Bulk Inserts
      Improved concurrency
      Allow application-database decoupling
      In Lyngby case – 50GB a day!
      http://www.tapuz.co.il/blog/userBlog.asp?FolderName=Hygge
    • 31. Bulk Inserts & RCSI: SQLCAT Benchmark
      What happens when you query a table while bulk inserts are running?
    • 32. Bulk Inserts & RCSI: SQLCAT Benchmark
      And with RCSI?
      Bulk loading does not affect the size of the version store in tempdb under RCSI
      Keep in mind: RCSI adds 14 noncompressible bytes into every row in every table
      Bottom line: RCSI works extremely well with bulk inserts and achieves improved concurrency
      More details about this benchmark:
      http://sqlcat.com/technicalnotes/archive/2009/04/06/bulk-loading-data-into-a-table-with-concurrent-queries.aspx
    • 33. StreamInsight:Complex Event Processing
      SQL Server 2008 R2 feature
      Processing and querying of event data streams
      Data queried while “in flight”
      May involve multiple concurrent event sources
      Works with high data rates
      Aims for near-zero latency
    • 34. Isn’t This Just a Database Application?
      Event
      request
      output stream
      input stream
      response
    • 35. Caching
      Your database can get some rest...
    • 36. Microsoft AppFabric
    • 37. Other solutions
      Memcache
      Requires application change
      3rd party
      Usually transparent
    • 38. Tapuz Case Study: Offloading Traffic
      Tapuz is the leading user content based website in Israel
      1,200 forums
      74,000 blogs
      500,000 visitors each month
      More than 4000 queries/sec
      Method used to increase concurrency:
      Offloading using Transactional Replication
    • 39. Database Scale Out
      Queries scaled out (often geographically) similar to reporting cases
      Databases replicate reciprocally and are writable
      Redundancy provides fault tolerance and lowers maintenance downtime
      Online upgrades possible
    • 40. Demo
    • 41. Denali HADR
      V.Next, code named “Denali” offers a brand new HADR feature
      High-availability and disaster recovery feature, using up to 4 replicas
      Replicas can be synchronous or asynchronous
      CTP supports only single
      asynchronous replica
    • 42. Denali HADR
      Coming up next!
    • 43. Q&A
    • 44. Related sessions
      Monday
      14:00-15:15
      New High Availability Solution in SQL Server “Denali”
      Justin Erickson & Oren Bouni
      Tuesday
      09:30-10:45
      Mission Critical: Improving High
      Availability and Reliability
      Assaf Fraenkel
      12:30-13:30
      Designing High Performance I/O System with SQL Server
      Dubi Lebel
      11:15-12:15
      Troubleshoot Like a Pro with the Microsoft SQL Server 2008 Tools
      Guy Glantser
    • 45. Open your mind to uncommon features and technologies in SQL Server and try them
      Using these features, amazing concurrency can be achieved by any DBA using SQL Server!
    • 46. משובים ופייסבוק
      מירב- השלמה
    • 47. Recommended Courses: SQL 2008
      Maintaining a Microsoft SQL Server 2008 Database
      Implementing a Microsoft SQL Server 2008 Database
      ועכשיו מבצע מיוחד!
      הרשם לאחד מקורסי SQL המוצעים כאן
      קנה בחינת הסמכה משלימה:
      70-432 TS: Microsoft SQL Server 2008, Implementation and Maintenance
      70-433 TS: Microsoft SQL Server 2008, Database Development
      וקבל מנוי שנתי ל- TechNet ואפשרות לבחינה חוזרת ללא עלות
      לפרטים נוספים והרשמה, פנה למכללות המוסמכות
    • 48. משובים ופייסבוק
      מירב- השלמה