Transactional Replication – Understanding Latency By Abhay Chaudhary Database Architect (IBM India Pvt.Ltd.) MCTS\MCITP : SQL Server 2005, SQL Server 2008, SQL Server 2008 BI,MCTS: SQL Server 2008 DB Developer, OCP 9i
9+ years of Database Management experience. Ex- Microsoft PSS ( ). Blogging on SQL Server articles since Assist SQL Server technical community through various forums. Abhay Chaudhary
About SQLServerGeeks.com One of the fastest growing SQL Server communities Blogs, Articles, Podcasts, In-person events, webcasts Millions of page views People behind SQLServerGeeks: Amit Bansal, Sarabpreet Singh, Parikshit Savjani, Abhay Chaudhary, Raunak Jhawar, Ahmed Osama, Amit Karkhanis, Vasudev Menon, Ritesh Medhe, Rakesh Mishra, Piyush Bajaj, Rahul Sharma, Satnam Singh, Bhagwan Singh and more ….. If you want to contribute, us at or visit Join Us section on the website
Latency Where is the latency ? How much is the latency ? Few questions you need to answer Finding threads involved in latency –option 1 Finding threads involved in latency –option 2 (prefer) Reasons for Log Reader-Reader thread latency Reasons for Log Reader-writer thread latency Reasons for Dist Agent-Reader thread latency Reasons for Dist Agent-Writer thread latency References Agenda
Slowness of transaction delivery by either Log reader agent or Distribution agent or both. For log reader agent its slowness in picking up the transactions that are marked for replication in Publisher log. For Distribution agent it’s the slowness in picking up the transactions from the distribution database. Latency
Where is the latency ? If all the subscriptions of one publisher are affected then the latency is from publisher to distributor. If a few subscriptions of one publisher are affected then the latency is from distributor to subscriber.
Query MSLogreader_history and MSDistribution_history system table in Distribution agents. Example : select * from MSlogreader_history where order by time desc select * from MSdistribution_history where order by time desc What's next ? How much is the latency ?
Is the latency in reading the publisher log ? Is the latency in writing the data to the distributor ? Is the latency reading the data from distributor database ? Is the latency in writing the data to the subscriber tables ? Few questions you need to answer
Check the latest comments section of MSlogreader_history and MSdistribution_history tables in distribution DB. Log reader Check the latest comments section of MSDistribution_history and MSdistribution_history tables in distribution DB. Distribution agent State 1 = Normal State 2 = Reader Thread waits for Writer Thread State 3 = Writer thread waits for Reader thread Finding threads involved in latency –option 1
Stop the Distributor agent and check the job history. Finding threads involved in latency –option 2
Stop the Distributor agent and check the job history. Finding threads involved in latency –option 2 ……
Most common reasons are : Big T-log size due to maintenance. Very likely large Batch(s) of replicated transactions. Very likely Storage latency (Slow Read IO) High CPU \IO or load on the Server in due course of time. likely Reasons for Log Reader -Reader thread latency
Most common reasons are : Blocking on MSRepl_Transactions and MSRepl_Commands tables. High IO\CPU load on the Dist server. likely No \less maintenance on MSRepl_Transactions and MSRepl_Commands tables. Very likely Storage Latency (Slow writes) Network Latency likely Reasons for Log Reader –Writer thread latency
Most common reasons are : Large Batch of transactions Very likely Lack of maintenance (Fragmentation and stale stats ) Very likely Keeping the publication snapshots likely Long execution of cleanup job causing latency likely Slow Storage (Read latency ) Reasons for Dist Agent -Reader thread latency
Most common reasons are : Resource consuming queries running already Very likely Lack of maintenance Very likely Network issues Storage issues Too many indexes Very likely Blocking Very likely High CPU Very likely Reasons for Dist Agent –Writer thread latency
How Transactional Replication Works Physical Architecture (Replication) Transactional Replication Overview sp_replcmds (Transact-SQL) sp_repldone (Transact-SQL) Solution Design Considerations (Replication) Designing and Implementing (Replication) Replication Agents Overview References
Connect with Abhay Chaudhary
Resolving Latency issues What’s next
Be a member Presentation & Scripts uploaded on Continue your learning…
Thank you for suggestions, please at