Written by Marco Tusa Wednesday, 23 February :03 - Last Updated Sunday, 18 August :39

Size: px
Start display at page:

Download "Written by Marco Tusa Wednesday, 23 February :03 - Last Updated Sunday, 18 August :39"

Transcription

1 The Binary Log The binary log in MySQL has two main declared purpose, replication and PTR (point in time recovery), as declared in the MySQL manual. In the MySQL binary log are stored all that statements that cause a change in the database. In short statements like DDL such as ALTER, CREATE, and so on, and DML like INSERT, UPDATE and DELETE. As said binary log transform multi thread concurrent data/structure modification in to a serialize steps of activity. To handle this, a lock for the binary log the LOCK_log mutex is acquired just before the event is written to the binary log and released just after the event has been written. Because all session threads for the server log statements to the binary log, it is quite common for several session threads to block on this lock. It is not in the scope of this discussion to provide a detailed description of the binary log, which could be found at What it is relevant is that MySQL write "a" log and read "a" log, serializing what is happening in the MASTER in a multi thread scenario. Also relevant is that MySQL has to deal with different behavior in relation to TRANSACTIONAL and NON-TRANSACTIONAL storage engine, trying to behave consistently. In order to do that MySQL had changes his behavior while evolving, so it changes the way he was and is using the TRANSACTION CACHE also creating not few confusion. 1 / 21

2 Transaction Cache What is the Transaction Cache or TC? It is a "per thread" cache used by MySQL to store the statements that will be needed to be written in the binary log. This cache is active ONLY when the Binary log is active, otherwise it will not be used, and, as it declare, it is a "Transaction" cache so used to store statements executed in a transaction, and that will be consistently flushed in the binary log serializing the multi thread execution. But what if we also have non transactional storage engine involved in our operations? Well here is where the fun begins, and also where the difference in how MySQL acts makes our life quite complicate. Actors involved (who control what) The TC (transaction Cache) is currently controlled by few parameters, and it is important to have them in mind: log-bin 2 / 21

3 o this variable is to enable the binary log, if not present all the structure related to it is not active; binlog_cache_size o The size of the cache to hold changes to the binary log during a transaction binlog_stmt_cache_size o this variable determines the size of the cache for the binary log to hold nontransactional statements issued during a transaction. binlog_direct_non_transactional_updates o This variable when enabled, causes updates to non-transactional tables to be written directly to the binary log, rather than to the transaction cache. Binlog_cache_use vs Binlog_cache_disk_use o Status Variables to use for checking the efficiency of the cache. Binlog_stmt_cache_use vs Binlog_stmt_cache_disk_use o Status Variables to use for checking the efficiency of the cache. 3 / 21

4 MySQL Transaction cache and MySQL versions Ok let start trying to define some milestones, like what is what, in which version, and what works and what doesn't. binlog_cache_size is present from the start but behave different, in: 5.1 controls the whole transaction cache up to controls both size of the statement and none cache and newer controls only the transaction cache demanded to transactions binlog_stmt_cache_size 5.1 not present it controls the dimension of the transaction cache demanded to store the NON transactional statements present in a transaction. 4 / 21

5 binlog_direct_non_transactional_updates Introduced. it is DISABLE by default. If enable it allows all statements executed, also AFTER a Transaction (we will see later what this means), to be directly flushed to the binary log without going to the TC. It has effect only if the binlog_format is set to STATEMENT or MIXED Introduced It was modify to be active ONLY if binlog_format is STATEMENT in any other case it is ignored. This feature, regardless the MySQL version, create more problems then solutions, and honestly I think it should be removed, please see the bug ( ) to understand what I mean. In any case it has now a very limited scope of action, and better to consider it as not present. How the whole works The first point to take in mind, is that the TC is used only during a transaction, also the new 5 / 21

6 TCStatement, is suppose to store only statement that are issued during a transaction, and it will be flush at the moment of the COMMIT, actually it go the queue for acquiring the LOG_LOCK mutex. All other statements will directly go to the LOG_LOCK mutex queue. Said that let us see how the TC works and what it does and how. In general terms when you mix the Transactional and NON-transactional statements these rules apply, unless the infamous binlog_direct_non_transactional_updates is enable (only 5.1): 1. If the statement is marked as transactional, it is written to the transaction cache. 2. If the statement is not marked as transactional and there are no statements in the transaction cache, the statement is written directly to the binary log. 3. If the statement is not marked as transactional, but there are statements in the 6 / 21

7 transaction cache, the statement is written to the transaction cache. Interesting point here is what and how is define as NON Transactional or as TRANSACTIONAL, from reading the manual and the many reference we have that: After MySQL a statement is considered non-transactional if it changes only non-transactional tables; a statement is transactional if it changes only transactional tables. Finally a statement that changes both non-transactional and transactional tables is considered mixed. Mixed statements, like transactional statements, are cached and logged when the transaction commits. Before MySQL a statement was considered non-transactional if the first changes it makes change non-transactional tables; 7 / 21

8 a statement was considered transactional if the first changes it makes change transactional tables. In term of code: Before MySQL Transactional: BEGIN; INSERT INTO innodb_tbl VALUES (a),(b); INSERT INTO myisam_tbl SELECT * FROM innodb_tbl; COMMIT; NON-Transactional (the first command also if inside a declared transaction): 8 / 21

9 BEGIN; INSERT INTO myisam_tbl VALUES (a),(b); INSERT INTO innodb_tbl SELECT * FROM innodb_tbl; COMMIT; After MySQL Transactional: BEGIN; INSERT INTO innodb_tbl VALUES (a),(b); INSERT INTO innodb_tbl SELECT * FROM innodb_tbl; COMMIT; 9 / 21

10 NON-Transactional: INSERT INTO myisam_tbl VALUES (a),(b); INSERT INTO myisam_tbl SELECT * FROM innodb_tbl; Mixed: BEGIN; INSERT INTO innodb_tbl VALUES (a),(b); INSERT INTO myisam_tbl SELECT * FROM innodb_tbl; COMMIT; A graph could help as well to understand what happens between threads and flush of the TC in the binary log. In the graphs we have three treads running in parallel, remember that inside mysql the main entity is the THD "The THD class defines a thread descriptor. It contains the information pertinent to the thread that is handling the given request. Each client connection is handled by a thread. Each thread has a descriptor object." 10 / 21

11 11 / 21

12 The first thread will do all the operations using TRANSACTION storage engine (InnoDB); the second thread will use NON-TRANSACTIONAL (MyISAM) in the first insert, then TRANSACTIONAL (InnoDB); the third statement will do first a TRANSACTIONAL insert and then will use it for a NON-TRANSACTIONAL. In the first one I have assume the and over behavior The three statements start almost at the same time, and none of them has data in any cache or buffer. Said that it is probably true that statement 1 in Thread2 will be executed (fully) faster, given it will take less as overhead, and giving that is the first statement in the THD2 transaction, it will be treated as NON-TRANSACTIONAL and directly sent to the binary-log's queue. 12 / 21

13 THD1 is fully TRANSACTIONAL, it will do his internal action then flush to binary-log. Then THD2 had done also the second part of the operation TRANSACTIONAL and it is flushing it as well. Last the THD3 which had first insert a record from TRANSACTIONAL table and then use it to populate the NON-TRANSACTIONAL. Note It looks more or less fine, isen't it? Well but assume that all the three THD share the InnoDB table and that as per default the ISOLATION LEVEL is Repeatable Read... Do you get it?? Actions and value on the MASTER will do and set values, that are potentially different from the ones in the SLAVE given the different order in the execution. 13 / 21

14 Immagine to have updates, instead insert and/or WHERE condition by values. Results could be different given the position, and remember, we are still talking about the STATEMENT replication given it is still the default ALSO in 5.5. Finally remember that the issue it is NOT that THD1/2/3 could potentially change each other value, but the fact that they do something on the MASTER which could potentially different in the SLAVE. That's it, the changes introduced in MySQL were done to reduce this wrong behavior, or to in some way try to keep consistency. Let see what and how in the others graphs. What about using binlog_direct_non_transactional_updates, will it helps? 14 / 21

15 I admit that I have exaggerated a little bit, in this example but my intention was to show how dangerous this option could be. 15 / 21

16 THD2 statement 1, as usual will be the first one, then THD1 consistently apply the whole set, but then it could happens that given the option set binlog_direct_non_transactional_updates THD3 will be faster in flushing the NON-TRANSACTIONAL statement, writing to the binary log before THD2, adding fragmentation and breaking the order in the binary log. As said I have exaggerate a little, but theoretically this is very likely to happen in a standard context. So in addition to the already found bug(s) (see the reference section), this option for me it is not really an additional help, but an issue generator. Transaction Cache in MySQL 5.5 From MySQL the TC is now divide in two parts, one control/store the TRANSACTIONAL statements, another store ONLY the NON_TRANSACTIONAL statements. What does it means? In theory it means that any statement which was suppose to be part of a 16 / 21

17 TRANSACTION but related to a NON-TRANSACTIONAL table (like statement at the start of a transaction), instead going directly to the binary log should be moved to the TC-statement, and then flushed when the TC is flushed. The involvement of the binlog_direct_non_transactional_updates complicate a little all the scenario and in addition to that, it also create some major issue in the correct flush, so I am ignoring it here. Let us see what happens using the new TC mechanism: 17 / 21

18 THD1 acquire The time This when Result Finally that so the the scope because THD2 having the is mixed is THD3 the statement as that TC as is usual LOG_LOCK one is transaction taking also the you flushed. or consistent TCStatement if have using the will a little will other have probably before a will take NON-TRANSACTIONAL bit flushing be the more the it. will placed possibility guess way be time before using flushed it was like the same to or a to TC use millisecond, to (at after make as binary least the storage will expected. more order TCstatements this not log. and ORDERED is on really engine Arbitrarily what master that make I is have it NOT enough and I will the have any seen not on graph, the difference decide the for giving first and THD1 slave. given statement, understood) that the this that fact this time. this Conclusion There was not so much to say from the beginning, to be honest, the TC and TCstatements are useful only for that case we do mix-transactions. The only significant changes are between after 18 / 21

19 and before and the introduction of the TCstatement. All the other tentative to add flexibility to this area, had in my vision increased bad behaviors. It is easy for Master and Slave to store or modify data in a unexpected way, issue that any DBA face probably too often in MySQL. I am not saying that all that cases should bring back to this specific issue, but for sure it is one of the less known and difficult to track, because many things do influence the how MySQL will flush to binary log. The golden rule is, do not mix NON-TRANSACTIONAL and TRANSACTIONAL, but if you really have to do that, be sure of doing it in using and above, which at least gives you more insurance of flushing to binary log the commands consistently. Last notes Remember that any statement NON-TRANSACTIONAL in the TC cache will be flushed on COMMIT or ROLLBACK, and that in the latest case a WARNING message should be written in the MySQL error log. 19 / 21

20 Note that I will post later (when I will have the time) some code and related raw data for documentation purpose. References: he_size ct_non_transactional_updates _cache_size / 21

21 21 / 21

2) One of the most common question clients asks is HOW the Replication works?

2) One of the most common question clients asks is HOW the Replication works? Replication =============================================================== 1) Before setting up a replication, it could be important to have a clear idea on the why you are setting up a MySQL replication.

More information

MariaDB 10.3 vs MySQL 8.0. Tyler Duzan, Product Manager Percona

MariaDB 10.3 vs MySQL 8.0. Tyler Duzan, Product Manager Percona MariaDB 10.3 vs MySQL 8.0 Tyler Duzan, Product Manager Percona Who Am I? My name is Tyler Duzan Formerly an operations engineer for more than 12 years focused on security and automation Now a Product Manager

More information

1Z Oracle. MySQL 5 Database Administrator Certified Professional Part I

1Z Oracle. MySQL 5 Database Administrator Certified Professional Part I Oracle 1Z0-873 MySQL 5 Database Administrator Certified Professional Part I Download Full Version : http://killexams.com/pass4sure/exam-detail/1z0-873 A. Use the --log-queries-indexes option. B. Use the

More information

Mysql Manually Set Auto Increment To 1000

Mysql Manually Set Auto Increment To 1000 Mysql Manually Set Auto Increment To 1000 MySQL: Manually increment a varchar for one insert statement Auto Increment only works for int values, but i'm not at liberty here to change the data type. If

More information

Mysql Cluster Could Not Acquire Global Schema Lock

Mysql Cluster Could Not Acquire Global Schema Lock Mysql Cluster Could Not Acquire Global Schema Lock 2 x Mgmt Nodes: Ubuntu 14.10LTS, 2 cores, 3.5GB ram 2 x MySQL API Nodes: Ubuntu 14.10LTS, 2 cores, 3.5GB ram Could not acquire global schema lock. MySQL

More information

IT Certification Exams Provider! Weofferfreeupdateserviceforoneyear! h ps://www.certqueen.com

IT Certification Exams Provider! Weofferfreeupdateserviceforoneyear! h ps://www.certqueen.com IT Certification Exams Provider! Weofferfreeupdateserviceforoneyear! h ps://www.certqueen.com Exam : 005-002 Title : Certified MySQL 5.0 DBA Part I Version : Demo 1 / 10 1. Will the following SELECT query

More information

Effective Testing for Live Applications. March, 29, 2018 Sveta Smirnova

Effective Testing for Live Applications. March, 29, 2018 Sveta Smirnova Effective Testing for Live Applications March, 29, 2018 Sveta Smirnova Table of Contents Sometimes You Have to Test on Production Wrong Data SELECT Returns Nonsense Wrong Data in the Database Performance

More information

MySQL 8.0: Atomic DDLs Implementation and Impact

MySQL 8.0: Atomic DDLs Implementation and Impact MySQL 8.0: Atomic DDLs Implementation and Impact Ståle Deraas, Senior Development Manager Oracle, MySQL 26 Sept 2017 Copyright 2017, Oracle and/or its its affiliates. All All rights reserved. Safe Harbor

More information

mysql Certified MySQL 5.0 DBA Part I

mysql Certified MySQL 5.0 DBA Part I mysql 005-002 Certified MySQL 5.0 DBA Part I http://killexams.com/exam-detail/005-002 QUESTION: 116 Which of the following correctly defines the general difference between a read lock and a write lock?

More information

MySQL Storage Engines Which Do You Use? April, 25, 2017 Sveta Smirnova

MySQL Storage Engines Which Do You Use? April, 25, 2017 Sveta Smirnova MySQL Storage Engines Which Do You Use? April, 25, 2017 Sveta Smirnova Sveta Smirnova 2 MySQL Support engineer Author of MySQL Troubleshooting JSON UDF functions FILTER clause for MySQL Speaker Percona

More information

Backup & Restore. Maximiliano Bubenick Sr Remote DBA

Backup & Restore. Maximiliano Bubenick Sr Remote DBA Backup & Restore Maximiliano Bubenick Sr Remote DBA Agenda Why backups? Backup Types Raw Backups Logical Backups Binlog mirroring Backups Locks Tips Why Backups? Why Backups? At some point something will

More information

Synchronization. CS61, Lecture 18. Prof. Stephen Chong November 3, 2011

Synchronization. CS61, Lecture 18. Prof. Stephen Chong November 3, 2011 Synchronization CS61, Lecture 18 Prof. Stephen Chong November 3, 2011 Announcements Assignment 5 Tell us your group by Sunday Nov 6 Due Thursday Nov 17 Talks of interest in next two days Towards Predictable,

More information

MySQL Replication. Rick Golba and Stephane Combaudon April 15, 2015

MySQL Replication. Rick Golba and Stephane Combaudon April 15, 2015 MySQL Replication Rick Golba and Stephane Combaudon April 15, 2015 Agenda What is, and what is not, MySQL Replication Replication Use Cases Types of replication Replication lag Replication errors Replication

More information

Mysql Cluster Global Schema Lock

Mysql Cluster Global Schema Lock Mysql Cluster Global Schema Lock This definitely was not the case with MySQL Cluster 7.3.x. (Warning) NDB: Could not acquire global schema lock (4009)Cluster Failure 2015-03-25 14:51:53. Using High-Speed

More information

Scale out Read Only Workload by sharing data files of InnoDB. Zhai weixiang Alibaba Cloud

Scale out Read Only Workload by sharing data files of InnoDB. Zhai weixiang Alibaba Cloud Scale out Read Only Workload by sharing data files of InnoDB Zhai weixiang Alibaba Cloud Who Am I - My Name is Zhai Weixiang - I joined in Alibaba in 2011 and has been working on MySQL since then - Mainly

More information

MySQL Performance Optimization and Troubleshooting with PMM. Peter Zaitsev, CEO, Percona

MySQL Performance Optimization and Troubleshooting with PMM. Peter Zaitsev, CEO, Percona MySQL Performance Optimization and Troubleshooting with PMM Peter Zaitsev, CEO, Percona In the Presentation Practical approach to deal with some of the common MySQL Issues 2 Assumptions You re looking

More information

MySQL 05/29/ :46:01 AM

MySQL 05/29/ :46:01 AM MySQL Using Transactions In MySQL (Part 1) Contributed by icarus, (c) Melonfire 2003 11 03 [ Send Me Similar Content When Posted ] [ Add Developer Shed Headlines To Your Site ] DISCUSS NEWS SEND PRINT

More information

Manual Trigger Sql Server 2008 Update Inserted Rows

Manual Trigger Sql Server 2008 Update Inserted Rows Manual Trigger Sql Server 2008 Update Inserted Rows Am new to SQL scripting and SQL triggers, any help will be appreciated Does it need to have some understanding of what row(s) were affected, sql-serverperformance.com/2010/transactional-replication-2008-r2/

More information

Monday, September 15, 14

Monday, September 15, 14 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12 MySQL Server Performance Tuning 101 Ligaya Turmelle Principle Technical

More information

What's new in MySQL 5.5? Performance/Scale Unleashed

What's new in MySQL 5.5? Performance/Scale Unleashed What's new in MySQL 5.5? Performance/Scale Unleashed Mikael Ronström Senior MySQL Architect The preceding is intended to outline our general product direction. It is intended for

More information

Oracle Exam 1z0-883 MySQL 5.6 Database Administrator Version: 8.0 [ Total Questions: 100 ]

Oracle Exam 1z0-883 MySQL 5.6 Database Administrator Version: 8.0 [ Total Questions: 100 ] s@lm@n Oracle Exam 1z0-883 MySQL 5.6 Database Administrator Version: 8.0 [ Total Questions: 100 ] Oracle 1z0-883 : Practice Test Question No : 1 Consider the Mysql Enterprise Audit plugin. You are checking

More information

Scaling Without Sharding. Baron Schwartz Percona Inc Surge 2010

Scaling Without Sharding. Baron Schwartz Percona Inc Surge 2010 Scaling Without Sharding Baron Schwartz Percona Inc Surge 2010 Web Scale!!!! http://www.xtranormal.com/watch/6995033/ A Sharding Thought Experiment 64 shards per proxy [1] 1 TB of data storage per node

More information

CS Final Exam Review Suggestions

CS Final Exam Review Suggestions CS 325 - Final Exam Review Suggestions p. 1 last modified: 2017-12-06 CS 325 - Final Exam Review Suggestions Based on suggestions from Prof. Deb Pires from UCLA: Because of the research-supported learning

More information

Databases - Transactions II. (GF Royle, N Spadaccini ) Databases - Transactions II 1 / 22

Databases - Transactions II. (GF Royle, N Spadaccini ) Databases - Transactions II 1 / 22 Databases - Transactions II (GF Royle, N Spadaccini 2006-2010) Databases - Transactions II 1 / 22 This lecture This lecture discusses how a DBMS schedules interleaved transactions to avoid the anomalies

More information

MySQL Performance Optimization and Troubleshooting with PMM. Peter Zaitsev, CEO, Percona Percona Technical Webinars 9 May 2018

MySQL Performance Optimization and Troubleshooting with PMM. Peter Zaitsev, CEO, Percona Percona Technical Webinars 9 May 2018 MySQL Performance Optimization and Troubleshooting with PMM Peter Zaitsev, CEO, Percona Percona Technical Webinars 9 May 2018 Few words about Percona Monitoring and Management (PMM) 100% Free, Open Source

More information

MySQL Replication Update

MySQL Replication Update MySQL Replication Update Lars Thalmann Development Director MySQL Replication, Backup & Connectors OSCON, July 2011 MySQL Releases MySQL 5.1 Generally Available, November 2008 MySQL

More information

Delegates must have a working knowledge of MariaDB or MySQL Database Administration.

Delegates must have a working knowledge of MariaDB or MySQL Database Administration. MariaDB Performance & Tuning SA-MARDBAPT MariaDB Performance & Tuning Course Overview This MariaDB Performance & Tuning course is designed for Database Administrators who wish to monitor and tune the performance

More information

Performance improvements in MySQL 5.5

Performance improvements in MySQL 5.5 Performance improvements in MySQL 5.5 Percona Live Feb 16, 2011 San Francisco, CA By Peter Zaitsev Percona Inc -2- Performance and Scalability Talk about Performance, Scalability, Diagnostics in MySQL

More information

G a l e r a C l u s t e r Schema Upgrades

G a l e r a C l u s t e r Schema Upgrades G a l e r a C l u s t e r Schema Upgrades Seppo Jaakola Codership Agenda Galera Cluster Overview DDL vs DML Demo of DDL Replication in Galera Cluster Rolling Schema Upgrade (RSU) Total Order Isolation

More information

MySQL Performance Tuning 101

MySQL Performance Tuning 101 MySQL Performance Tuning 101 Ligaya Turmelle MySQL Support Engineer ligaya@mysql.com 1 1 MySQL world's most popular open source database software a key part of LAMP (Linux, Apache, MySQL, PHP / Perl /

More information

15 practical examples of using commands Mysqladmin to administer a MySQL server Wednesday, 17 March :23

15 practical examples of using commands Mysqladmin to administer a MySQL server Wednesday, 17 March :23 In the 15 examples of the use mysqladmin command below, using the password root Mysql tmppassword. Change it to your password 1. How to change the root password for Mysql? # mysqladmin -u root -ptmppassword

More information

Improvements in MySQL 5.5 and 5.6. Peter Zaitsev Percona Live NYC May 26,2011

Improvements in MySQL 5.5 and 5.6. Peter Zaitsev Percona Live NYC May 26,2011 Improvements in MySQL 5.5 and 5.6 Peter Zaitsev Percona Live NYC May 26,2011 State of MySQL 5.5 and 5.6 MySQL 5.5 Released as GA December 2011 Percona Server 5.5 released in April 2011 Proven to be rather

More information

CS 147: Computer Systems Performance Analysis

CS 147: Computer Systems Performance Analysis CS 147: Computer Systems Performance Analysis Test Loads CS 147: Computer Systems Performance Analysis Test Loads 1 / 33 Overview Overview Overview 2 / 33 Test Load Design Test Load Design Test Load Design

More information

Upgrading MySQL Best Practices. Apr 11-14, 2011 MySQL Conference and Expo Santa Clara,CA by Peter Zaitsev, Percona Inc

Upgrading MySQL Best Practices. Apr 11-14, 2011 MySQL Conference and Expo Santa Clara,CA by Peter Zaitsev, Percona Inc Upgrading MySQL Best Practices Apr 11-14, 2011 MySQL Conference and Expo Santa Clara,CA by Peter Zaitsev, Percona Inc MySQL Upgrade How many of you have performed MySQL upgrade? Home many of you have done

More information

Cache Fusion Demystified By Arup Nanda

Cache Fusion Demystified By Arup Nanda Cache Fusion Demystified By Arup Nanda Introduction Let me start by asking a question. Is it true that if the size of the database is only 100MB, then all I need is a 100MB buffer cache and the sessions

More information

ProxySQL - GTID Consistent Reads. Adaptive query routing based on GTID tracking

ProxySQL - GTID Consistent Reads. Adaptive query routing based on GTID tracking ProxySQL - GTID Consistent Reads Adaptive query routing based on GTID tracking Introduction Rene Cannao Founder of ProxySQL MySQL DBA Introduction Nick Vyzas ProxySQL Committer MySQL DBA What is ProxySQL?

More information

InnoDB Scalability Limits. Peter Zaitsev, Vadim Tkachenko Percona Inc MySQL Users Conference 2008 April 14-17, 2008

InnoDB Scalability Limits. Peter Zaitsev, Vadim Tkachenko Percona Inc MySQL Users Conference 2008 April 14-17, 2008 InnoDB Scalability Limits Peter Zaitsev, Vadim Tkachenko Percona Inc MySQL Users Conference 2008 April 14-17, 2008 -2- Who are the Speakers? Founders of Percona Inc MySQL Performance and Scaling consulting

More information

Database management system Prof. D. Janakiram Department of Computer Science and Engineering Indian Institute of Technology, Madras

Database management system Prof. D. Janakiram Department of Computer Science and Engineering Indian Institute of Technology, Madras Database management system Prof. D. Janakiram Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 25 Basic 2-phase & 3-phase Commit protocol In the last lecture,

More information

Introduction to Object-Oriented Modelling and UML

Introduction to Object-Oriented Modelling and UML Naming Conventions Naming is not a side issue. It is one of the most fundamental mechanisms. This section deals with good and bad naming in models and code. This section is based on Stephen Kelvin Friedrich

More information

Engineering Robust Server Software

Engineering Robust Server Software Engineering Robust Server Software Scalability Other Scalability Issues Database Load Testing 2 Databases Most server applications use databases Very complex pieces of software Designed for scalability

More information

High Availability Solutions for the MySQL Database

High Availability Solutions for the MySQL Database www.skysql.com High Availability Solutions for the MySQL Database Introduction This paper introduces recommendations and some of the solutions used to create an availability or high availability environment

More information

CSE 153 Design of Operating Systems

CSE 153 Design of Operating Systems CSE 153 Design of Operating Systems Winter 19 Lecture 7/8: Synchronization (1) Administrivia How is Lab going? Be prepared with questions for this weeks Lab My impression from TAs is that you are on track

More information

Stacks and Queues

Stacks and Queues Stacks and Queues 2-25-2009 1 Opening Discussion Let's look at solutions to the interclass problem. Do you have any questions about the reading? Do you have any questions about the assignment? Minute Essays

More information

MySQL Database Scalability

MySQL Database Scalability MySQL Database Scalability Nextcloud Conference 2016 TU Berlin Oli Sennhauser Senior MySQL Consultant at FromDual GmbH oli.sennhauser@fromdual.com 1 / 14 About FromDual GmbH Support Consulting remote-dba

More information

Virtual Memory #2 Feb. 21, 2018

Virtual Memory #2 Feb. 21, 2018 15-410...The mysterious TLB... Virtual Memory #2 Feb. 21, 2018 Dave Eckhardt Brian Railing 1 L16_VM2 Last Time Mapping problem: logical vs. physical addresses Contiguous memory mapping (base, limit) Swapping

More information

Memory Management Virtual Memory

Memory Management Virtual Memory Memory Management Virtual Memory Part of A3 course (by Theo Schouten) Biniam Gebremichael http://www.cs.ru.nl/~biniam/ Office: A6004 April 4 2005 Content Virtual memory Definition Advantage and challenges

More information

Why Choose Percona Server For MySQL? Tyler Duzan

Why Choose Percona Server For MySQL? Tyler Duzan Why Choose Percona Server For MySQL? Tyler Duzan Product Manager Who Am I? My name is Tyler Duzan Formerly an operations engineer for more than 12 years focused on security and automation Now a Product

More information

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 8: Semaphores, Monitors, & Condition Variables

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 8: Semaphores, Monitors, & Condition Variables CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring 2004 Lecture 8: Semaphores, Monitors, & Condition Variables 8.0 Main Points: Definition of semaphores Example of use

More information

How To Test Your Code A CS 1371 Homework Guide

How To Test Your Code A CS 1371 Homework Guide Introduction After you have completed each drill problem, you should make it a habit to test your code. There are good ways of testing your code and there are bad ways of testing your code. This guide

More information

Actor-Based Concurrency: Implementation and Comparative Analysis With Shared Data and Locks Alex Halter Randy Shepherd

Actor-Based Concurrency: Implementation and Comparative Analysis With Shared Data and Locks Alex Halter Randy Shepherd Actor-Based Concurrency: Implementation and Comparative Analysis With Shared Data and Locks Alex Halter Randy Shepherd 1. Introduction Writing correct concurrent programs using shared data and locks is

More information

PolarDB. Cloud Native Alibaba. Lixun Peng Inaam Rana Alibaba Cloud Team

PolarDB. Cloud Native Alibaba. Lixun Peng Inaam Rana Alibaba Cloud Team PolarDB Cloud Native DB @ Alibaba Lixun Peng Inaam Rana Alibaba Cloud Team Agenda Context Architecture Internals HA Context PolarDB is a cloud native DB offering Based on MySQL-5.6 Uses shared storage

More information

Lecture 13 Condition Variables

Lecture 13 Condition Variables Lecture 13 Condition Variables Contents In this lecture, you will learn Condition Variables And how to use CVs to solve The Producer/Consumer (Bounded Buffer) Problem Review Thus far we have developed

More information

MySQL Configuration Settings

MySQL Configuration Settings Get It Done With MySQL 5&Up, Appendix B. Copyright Peter Brawley and Arthur Fuller 217. All rights reserved. TOC Previous Next MySQL Configuration Settings Server options and system MySQL maintains well

More information

Page 1. Challenges" Concurrency" CS162 Operating Systems and Systems Programming Lecture 4. Synchronization, Atomic operations, Locks"

Page 1. Challenges Concurrency CS162 Operating Systems and Systems Programming Lecture 4. Synchronization, Atomic operations, Locks CS162 Operating Systems and Systems Programming Lecture 4 Synchronization, Atomic operations, Locks" January 30, 2012 Anthony D Joseph and Ion Stoica http://insteecsberkeleyedu/~cs162 Space Shuttle Example"

More information

CSE 190D Database System Implementation

CSE 190D Database System Implementation CSE 190D Database System Implementation Arun Kumar Topic 6: Transaction Management Chapter 16 of Cow Book Slide ACKs: Jignesh Patel 1 Transaction Management Motivation and Basics The ACID Properties Transaction

More information

Natural Born Killers, performance issues to avoid

Natural Born Killers, performance issues to avoid Natural Born Killers, performance issues to avoid Richard Douglas http://sql.richarddouglas.co.uk @SQLRich Natural Born Killer http://www.flickr.com/photos/merille/4747615138/sizes/z/in/photostream/ 2

More information

Chapter 1 Getting Started

Chapter 1 Getting Started Chapter 1 Getting Started The C# class Just like all object oriented programming languages, C# supports the concept of a class. A class is a little like a data structure in that it aggregates different

More information

But I know what most of you will do: use a calculator to convert; that's fine, IF you understand the theory.

But I know what most of you will do: use a calculator to convert; that's fine, IF you understand the theory. Numbers After you have read this, the next section will show how to use a This and other videos related to numbers and colors are available on the class web site. Why are there different numbering systems?

More information

Eternal Story on Temporary Objects

Eternal Story on Temporary Objects Eternal Story on Temporary Objects Dmitri V. Korotkevitch http://aboutsqlserver.com About Me 14+ years of experience working with Microsoft SQL Server Microsoft SQL Server MVP Microsoft Certified Master

More information

Problem Solving through Programming In C Prof. Anupam Basu Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur

Problem Solving through Programming In C Prof. Anupam Basu Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur Problem Solving through Programming In C Prof. Anupam Basu Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur Lecture 15 Branching : IF ELSE Statement We are looking

More information

QUIZ. What is wrong with this code that uses default arguments?

QUIZ. What is wrong with this code that uses default arguments? QUIZ What is wrong with this code that uses default arguments? Solution The value of the default argument should be placed in either declaration or definition, not both! QUIZ What is wrong with this code

More information

(Refer Slide Time: 1:26)

(Refer Slide Time: 1:26) Information Security-3 Prof. V Kamakoti Department of Computer science and Engineering Indian Institute of Technology Madras Basics of Unix and Network Administration Operating Systems Introduction Mod01,

More information

How Facebook Got Consistency with MySQL in the Cloud Sam Dunster

How Facebook Got Consistency with MySQL in the Cloud Sam Dunster How Facebook Got Consistency with MySQL in the Cloud Sam Dunster Production Engineer Consistency Replication Replication for High Availability Facebook Replicaset Region A Slave Slave Region B Region

More information

Reading MySQL fingerprints

Reading MySQL fingerprints Reading MySQL fingerprints FromDual Company Meeting 10. September 2014, Barcelona by oli.sennhauser@fromdual.com 1 / 26 About FromDual GmbH FromDual provides neutral and independent: Consulting for MySQL,

More information

Ext3/4 file systems. Don Porter CSE 506

Ext3/4 file systems. Don Porter CSE 506 Ext3/4 file systems Don Porter CSE 506 Logical Diagram Binary Formats Memory Allocators System Calls Threads User Today s Lecture Kernel RCU File System Networking Sync Memory Management Device Drivers

More information

ITS. MySQL for Database Administrators (40 Hours) (Exam code 1z0-883) (OCP My SQL DBA)

ITS. MySQL for Database Administrators (40 Hours) (Exam code 1z0-883) (OCP My SQL DBA) MySQL for Database Administrators (40 Hours) (Exam code 1z0-883) (OCP My SQL DBA) Prerequisites Have some experience with relational databases and SQL What will you learn? The MySQL for Database Administrators

More information

MySQL vs MariaDB. Where are we now?

MySQL vs MariaDB. Where are we now? MySQL vs MariaDB Where are we now? Hey! A BRIEF HISTORY OF THE UNIVERSE (of MySQL and MariaDB) Herman Hollerith Unireg Begins Essentially, the origin of what we know MySQL as today, establishing its code

More information

ALTER TABLE Improvements in MARIADB Server. Marko Mäkelä Lead Developer InnoDB MariaDB Corporation

ALTER TABLE Improvements in MARIADB Server. Marko Mäkelä Lead Developer InnoDB MariaDB Corporation ALTER TABLE Improvements in MARIADB Server Marko Mäkelä Lead Developer InnoDB MariaDB Corporation Generic ALTER TABLE in MariaDB CREATE TABLE ; INSERT SELECT; RENAME ; DROP TABLE ; Retroactively named

More information

Agreement in Distributed Systems CS 188 Distributed Systems February 19, 2015

Agreement in Distributed Systems CS 188 Distributed Systems February 19, 2015 Agreement in Distributed Systems CS 188 Distributed Systems February 19, 2015 Page 1 Introduction We frequently want to get a set of nodes in a distributed system to agree Commitment protocols and mutual

More information

Concurrency Control in Distributed Systems. ECE 677 University of Arizona

Concurrency Control in Distributed Systems. ECE 677 University of Arizona Concurrency Control in Distributed Systems ECE 677 University of Arizona Agenda What? Why? Main problems Techniques Two-phase locking Time stamping method Optimistic Concurrency Control 2 Why concurrency

More information

Concurrency Control! Snapshot isolation" q How to ensure serializability and recoverability? " q Lock-Based Protocols" q Other Protocols"

Concurrency Control! Snapshot isolation q How to ensure serializability and recoverability?  q Lock-Based Protocols q Other Protocols Concurrency Control! q How to ensure serializability and recoverability? q Lock-Based Protocols q Lock, 2PL q Lock Conversion q Lock Implementation q Deadlock q Multiple Granularity q Other Protocols q

More information

QGIS Application - Bug report #5475 Problem to insert splitted geometries in postgis

QGIS Application - Bug report #5475 Problem to insert splitted geometries in postgis QGIS Application - Bug report #5475 Problem to insert splitted geometries in postgis 2012-04-23 01:20 PM - Luca Lanteri Status: Priority: Severe/Regression Assignee: Marco Hugentobler Category: Affected

More information

Concurrent & Distributed Systems Supervision Exercises

Concurrent & Distributed Systems Supervision Exercises Concurrent & Distributed Systems Supervision Exercises Stephen Kell Stephen.Kell@cl.cam.ac.uk November 9, 2009 These exercises are intended to cover all the main points of understanding in the lecture

More information

Chapter 8: Working With Databases & Tables

Chapter 8: Working With Databases & Tables Chapter 8: Working With Databases & Tables o Working with Databases & Tables DDL Component of SQL Databases CREATE DATABASE class; o Represented as directories in MySQL s data storage area o Can t have

More information

Craig S. Mullins. A DB2 for z/os Performance Roadmap By Craig S. Mullins. Database Performance Management Return to Home Page.

Craig S. Mullins. A DB2 for z/os Performance Roadmap By Craig S. Mullins. Database Performance Management Return to Home Page. Craig S. Mullins Database Performance Management Return to Home Page December 2002 A DB2 for z/os Performance Roadmap By Craig S. Mullins Assuring optimal performance is one of a database administrator's

More information

MySQL Performance Troubleshooting

MySQL Performance Troubleshooting MySQL Performance Troubleshooting Best Practices Francisco Bordenave - Architect, Percona Agenda Who am I? Introduction Identifying the source of problem We know where the problem is, now what? Best practices

More information

MySQL HA Solutions. Keeping it simple, kinda! By: Chris Schneider MySQL Architect Ning.com

MySQL HA Solutions. Keeping it simple, kinda! By: Chris Schneider MySQL Architect Ning.com MySQL HA Solutions Keeping it simple, kinda! By: Chris Schneider MySQL Architect Ning.com What we ll cover today High Availability Terms and Concepts Levels of High Availability What technologies are there

More information

MySQL Architecture and Components Guide

MySQL Architecture and Components Guide Guide This book contains the following, MySQL Physical Architecture MySQL Logical Architecture Storage Engines overview SQL Query execution InnoDB Storage Engine MySQL 5.7 References: MySQL 5.7 Reference

More information

Creating a Best-in-Class Backup and Recovery System for Your MySQL Environment. Akshay Suryawanshi DBA Team Manager,

Creating a Best-in-Class Backup and Recovery System for Your MySQL Environment. Akshay Suryawanshi DBA Team Manager, Creating a Best-in-Class Backup and Recovery System for Your MySQL Environment Akshay Suryawanshi DBA Team Manager, 2015-07-15 Agenda Why backups? Backup Types Binary or Raw Backups Logical Backups Binlog

More information

CS5412: TRANSACTIONS (I)

CS5412: TRANSACTIONS (I) 1 CS5412: TRANSACTIONS (I) Lecture XVII Ken Birman Transactions 2 A widely used reliability technology, despite the BASE methodology we use in the first tier Goal for this week: in-depth examination of

More information

Optimizing BOINC project databases

Optimizing BOINC project databases Optimizing BOINC project databases Oliver Bock Max Planck Institute for Gravitational Physics Hannover, Germany 5th Pan-Galactic BOINC Workshop Catalan Academy of Letters, Sciences and Humanities Barcelona,

More information

The Hazards of Multi-writing in a Dual-Master Setup

The Hazards of Multi-writing in a Dual-Master Setup The Hazards of Multi-writing in a Dual-Master Setup Jay Janssen MySQL Consulting Lead November 15th, 2012 Explaining the Problem Rules of the Replication Road A given MySQL instance: Can be both a master

More information

The Care and Feeding of a MySQL Database for Linux Adminstrators. Dave Stokes MySQL Community Manager

The Care and Feeding of a MySQL Database for Linux Adminstrators. Dave Stokes MySQL Community Manager The Care and Feeding of a MySQL Database for Linux Adminstrators Dave Stokes MySQL Community Manager David.Stokes@Oracle.com Simple Introduction This is a general introduction to running a MySQL database

More information

MySQL Performance Tuning

MySQL Performance Tuning MySQL Performance Tuning Student Guide D61820GC20 Edition 2.0 May 2011 D73030 Author Jeff Gorton Copyright 2011, Oracle and/or it affiliates. All rights reserved. Disclaimer Technical Contributors and

More information

Last Class: Monitors. Real-world Examples

Last Class: Monitors. Real-world Examples Last Class: Monitors Monitor wraps operations with a mutex Condition variables release mutex temporarily C++ does not provide a monitor construct, but monitors can be implemented by following the monitor

More information

Portland State University ECE 588/688. Transactional Memory

Portland State University ECE 588/688. Transactional Memory Portland State University ECE 588/688 Transactional Memory Copyright by Alaa Alameldeen 2018 Issues with Lock Synchronization Priority Inversion A lower-priority thread is preempted while holding a lock

More information

Oracle 1Z MySQL 5.6 Database Administrator. Download Full Version :

Oracle 1Z MySQL 5.6 Database Administrator. Download Full Version : Oracle 1Z0-883 MySQL 5.6 Database Administrator Download Full Version : http://killexams.com/pass4sure/exam-detail/1z0-883 D. The mysqld binary was not compiled with SSL support. E. The server s SSL certificate

More information

InnoDB: What s new in 8.0

InnoDB: What s new in 8.0 InnoDB: What s new in 8.0 Sunny Bains Director Software Development Copyright 2017, Oracle and/or its its affiliates. All All rights reserved. Safe Harbor Statement The following is intended to outline

More information

Sql Server Check If Global Temporary Table Exists

Sql Server Check If Global Temporary Table Exists Sql Server Check If Global Temporary Table Exists I am trying to create a temp table from the a select statement so that I can get the schema information from the temp I have yet to see a valid justification

More information

CTI-TC Working Session

CTI-TC Working Session CTI-TC Working Session John Meeting Date: Sept 4, 2018 Time: 3:00 p.m. EDT Purpose: Weekly Working Session Attendees: Chris Ricard Bret Jordan Nicholas Hayden Moderator Jane Ginn - Recorder Drew Varner

More information

Databases - Transactions

Databases - Transactions Databases - Transactions Gordon Royle School of Mathematics & Statistics University of Western Australia Gordon Royle (UWA) Transactions 1 / 34 ACID ACID is the one acronym universally associated with

More information

Best Practices for Database Administrators

Best Practices for Database Administrators Best Practices for Database Administrators Sheeri K. Cabral Database Administrator The Pythian Group, www.pythian.com cabral@pythian.com 2008 MySQL User Conference & Expo MIRE Make It Really Easy Automate

More information

CSE 451: Operating Systems Winter Deadlock. Gary Kimura

CSE 451: Operating Systems Winter Deadlock. Gary Kimura CSE 451: Operating Systems Winter 2013 Deadlock Gary Kimura 2 Definition A thread is deadlocked when it s waiting for an event that can never occur I m waiting for you to clear the intersection, so I can

More information

ATOMIC COMMITMENT Or: How to Implement Distributed Transactions in Sharded Databases

ATOMIC COMMITMENT Or: How to Implement Distributed Transactions in Sharded Databases ATOMIC COMMITMENT Or: How to Implement Distributed Transactions in Sharded Databases We talked about transactions and how to implement them in a single-node database. We ll now start looking into how to

More information

DATABASE TRANSACTIONS. CS121: Relational Databases Fall 2017 Lecture 25

DATABASE TRANSACTIONS. CS121: Relational Databases Fall 2017 Lecture 25 DATABASE TRANSACTIONS CS121: Relational Databases Fall 2017 Lecture 25 Database Transactions 2 Many situations where a sequence of database operations must be treated as a single unit A combination of

More information

System Malfunctions. Implementing Atomicity and Durability. Failures: Crash. Failures: Abort. Log. Failures: Media

System Malfunctions. Implementing Atomicity and Durability. Failures: Crash. Failures: Abort. Log. Failures: Media System Malfunctions Implementing Atomicity and Durability Chapter 22 Transaction processing systems have to maintain correctness in spite of malfunctions Crash Abort Media Failure 1 2 Failures: Crash Processor

More information

Transaction Safe Feature in MySQL Databases

Transaction Safe Feature in MySQL Databases Transaction Safe Feature in MySQL Databases Index Understanding the MySQL 5.0 Storage Engines 1 The Tools 1 Some more stuff you must know 1 Let's work a little 2 More tools Using PHP 3 Not all can be undone

More information

Topics. File Buffer Cache for Performance. What to Cache? COS 318: Operating Systems. File Performance and Reliability

Topics. File Buffer Cache for Performance. What to Cache? COS 318: Operating Systems. File Performance and Reliability Topics COS 318: Operating Systems File Performance and Reliability File buffer cache Disk failure and recovery tools Consistent updates Transactions and logging 2 File Buffer Cache for Performance What

More information

MySQL 5.0 Stored Procedures, VIEWs and Triggers MySQL UC 2005, Santa Clara

MySQL 5.0 Stored Procedures, VIEWs and Triggers MySQL UC 2005, Santa Clara MySQL 5.0 Stored Procedures, VIEWs and Triggers jan@mysql.com MySQL UC 2005, Santa Clara Trees in SQL The problem of how to handle trees in SQL has been talked about alot. The basic 3 ways are: store the

More information

Binary, Hexadecimal and Octal number system

Binary, Hexadecimal and Octal number system Binary, Hexadecimal and Octal number system Binary, hexadecimal, and octal refer to different number systems. The one that we typically use is called decimal. These number systems refer to the number of

More information