Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
482
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
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. משובים ופייסבוק
    מירב- השלמה