Strategies for MySQL performance and fault tolerance
|
|
- Elvin Thomas
- 5 years ago
- Views:
Transcription
1 Strategies for MySQL performance and fault tolerance You already have complexity in your application tier -- keep it there and relegate MySQL to a simple, durable record store. For fault tolerance, the strategies and pitfalls of various replication/cluster configurations are discussed Ryan Mitchell <rjm@tcl.net> Telecom Logic, LLC. Reproduction prohibited without consent from author. Table of Contents Preface...1 Design a simple data model...1 Propose a replication and fail-over scheme...3 Failure modes...6 Audit your queries...7 Specific example of MySQL setup and hardware...8 Client logic for fail-over and load-balancing...9 Additional advice for high availability...9 Conclusion...10 Preface This article will help you achieve performance, scalability, and fault tolerance for your database driven application by looking at design choices for your application layer, data models, load-balancing and fail-over strategies. Recent (c. 2011) releases and distributions of MySQL server come with reasonable default settings that will give you good performance on modern hardware for most applications out there in the wild, with the exception of innodb_buffer_pool set needlessly low given the abundance of server memory most machines have. From that starting point, there are many websites that provide loads of information on tuning the myriad of MySQL and OS variables, as well as strategies for building your web scale application. One of my favorites is It's easy and fun to get lost delving into the depths of performance tuning. But there's a good chance it's unneeded and you should really just get along with programming the rest of your application. So, when should you dive in? Don't optimize too early; however do read this article and put a lot of design into your application layers and data models that will enable scalability and performance. This article assumes a basic familiarity with MySQL replication modes and n-tier application design. Design a simple data model The most important advice for enabling database performance and scalability is to keep your data model and queries as simple as possible. Your application tiers are already complex; keep the complex
2 data models and operations there, where it belongs. Take a page from the no-sql camp and try to relegate your database to a simple, durable record store. Avoid complex table relationships (don't try to mirror your class hierarchy, or attempt complex mapping with an ORM system). Avoid stored procedures and triggers, except in trivial cases to enforce basic data sanity. These are design goals that are easier stated than realized, not hard requirements, but will pay dividends when your application needs to scale and perform at Facebook levels. Why you want a simplified database tier is easy to justify: you're offloading work from your database engine, and a simple system is easier to understand and hence manage and optimize. How you get to that optimum will be harder, especially if you have an existing spaghetti monster of a data model in your application. If it's early in the design cycle, fight for simplicity everywhere you can. Don't overengineer, and don't fall into the trap of using design patterns just for the sake of using them. The main strategy is this: Concentrate code that maps your application data model to a simpler one in a data access object (DAO) layer. If it's ugly code, fine, you can clean it up later, but you'll be happy to have it in just one place. When designing class hierarchies, think about how you can map objects into simple recordswith-properties that can be handled by external systems. You may already be forced into this step because you have a public RESTful/JSON service allowing access to services and record manipulation. Or, you are using an external caching system that requires you to serialize your objects in a format that other processes can make use of. In those cases, JSON is a good format because you are using a type system that is directly mappable to SQL data types now you can write a database schema that simply stores those JSON attributes. The complexity in your code is often unavoidable; for various reasons (examples given above) you will need a simpler and externalizable data model. Use this to your advantage in the database tier and forget about how Enterprise object persistence should be done. Your DAO system allows you to deal with this mapping in a single place. Once you have this working, you now have the proper place in your code where you can add caching and take advantage of all the copious memory your servers have. Caching is a non-trivial endeavor when you have to take into account transactions and high concurrency; there are now lots of good products and tutorials available to help you on your way. Partial system diagram that illustrates how you need to build a layer that maps your application data model into something simpler digestible by external systems.
3 The most important feature you can add to a DAO system outside of caching, for database performance, is concurrency control. The primary reason to manage concurrency at the DAO level is because the disk-based database system doesn't scale with concurrent queries the same way your CPU does crunching through L1 cached code and data. You could configure MySQL to buffer your entire data set, but for the sake of argument let's assume that it's not, or is not 100% of the time. Whereas 10 CPU bound threads may each run at 1/10th the speed multitasking on a single core, that kind of concurrent disk access may grind your database to a crawl. For example, a simple query to update a single record may take 20ms on average to complete, but if a long-running OLAP query comes along (thrashing buffers and disk read/write heads), your previously query could take much longer than 40ms, the time you'd expect in the ideal case. Simplified picture to illustrate the point: your application, using CPU resources, is better suited to handle concurrency than an RDBMS dealing with limited disk I/O. Coding your DAO system to limit concurrency allows you to ensure the maximum (or fair) performance for the most amount of requests, and avoid the limitations of the RDBMS's and operating system's I/O schedulers. Study the Actor model for the basic design idea; limited sized thread pools and message queues are the key components. Depending on who is requesting, you can prioritize queries as needed. This gives you some built-in protection against a denial-of-service attack designed to overload your resources. Side node on concurrency and user interfaces: perform operations asynchronously as much as possible. If the user/client doesn't absolutely need to hang around for a transaction to finish, don't force them to. Put requests into priority queues and let your DAO system manage them as it sees fit. Many of these ideas could be implemented in a feature rich RDBMS, but since you're implementing many of them in your application anyway, don't. (If your application is simple enough for a 2-tier architecture, then this article is overkill).
4 Propose a replication and fail-over scheme Now that your data model is as simple as possible, you need to think about how your software will query that data in the database. The types of queries performed, access patterns, and transactional requirements strongly shape your options for clustering and tuning. Scenario #1: hard transactional and consistency requirements, low read/write ratio When the software commits a transaction, data must absolutely not be lost, and immediate subsequent reads from any database server in the cluster must provide consistent results. In this case you will have limited write concurrency available. In fact, the more replicated database servers you have, the slower the system becomes since transactions need to complete everywhere to ensure consistency (you will need the MySQL cluster product if you truly need synchronous replication). Even if a single server is powerful enough to handle the load, you still need to invest in a replicated secondary server to use in case of fail-over. This could be a banking application, or it could describe a subset of your system. Scenario #2: eventual consistency is tolerated, good read/write ratio You want committed writes to make it to disk 99.99% of the time, but are willing to compromise some data safety for performance. In this case, read-only database slaves can be added as needed to handle the load. Multiple masters can be used to load balance writes as well. After a write on one of the masters, the database cluster eventually becomes consistent most of the time within a second, but sometimes much longer, and this is not a major problem. The starting point for your replication and fail-over scheme will be a simple master-master 2 node cluster, using MySQL replication. This setup benefits either scenario, and is the simplest setup that allows you to easily fail-over from one server to the other as needed. The following advice and usecases are noted: (1) perform all or most transactional (OLTP) queries, such as simple record updates and reads, on one of the servers; call this server the primary, and strive to keep it up and running all year long. (2) perform longer running OLAP style queries on the other server (call this server the secondary), which will be unloaded most of the time. This prevents interfering with the disks and buffers on the primary. OLAP queries are typically from report generators, or scripts that do batch updates, and don't require the up-to-the-millisecond latest data from the primary. (3) perform backups and other disk-intensive maintenance jobs using the secondary server, which you can take down for full backups as needed. (4) If the master goes down, or is overloaded, clients can start using the secondary immediately; this is in contrast to a hot standby server, that needs to switch modes to become the master (at which point the original master will be no longer available). A note on primary keys when using multiple masters: MySQL has a great feature that allows each node in a cluster of servers to generate unique auto_increment values for each node. See the documentation for the configuration property auto_increment_increment. If you will not use auto_increment columns in your schema, you must devise a scheme to generate unique primary keys no matter which server you are connected to. For example, you could use Java's UUID generators. Without taking this into consideration, you may run into duplicate primary key collisions when multiple clients used multiple servers for inserting new rows. If your data usage patterns are such that you have many more writes than reads, and eventual
5 consistency is tolerated, then you can easily add more replicated nodes to your MySQL cluster. Given that you already have two read/write nodes, you will probably only need to add read-only slaves. Keep in mind that every write that occurs on a master needs to also be written to the read-only slaves, so the slaves still need to have the performance to handle a lot of writes, though it is noted that the load on the read-only slaves will often be less, especially when binary logging is disabled. If you absolutely need more write performance than a single node can handle, even after good hardware choices and server tuning, there are still options. Look at which tables and disks are getting hammered, and then setup another physical disk and move around physical tables to balance the I/O. Next, if needed try to partition your application into one database that handles your non-critical queries and another database that handles the critical ones. Chances are there are only limited data sets and queries where your hard transactional requirements are needed. You will need to reply on explicit twophase committing to coordinate transactions across databases. If you still exceed the performance available in a single server for write transactions, consider using an in-memory database that uses a networked cluster of replicated caches to ensure durability. The following diagram illustrates how I/O and processing can be broken up. Failure modes To augment the previous section, we will look at the most common types of failure you are likely to encounter, and how your architecture choices help or hinder you.
6 (1) Your secondary master goes down, because you took it down for maintenance, such as when you need to do a full offline backup. There are ways to do full backups without needing to stop the MySQL server, but many sites just stop the server for a few minutes while all the data files are tarballed away somewhere safe. Or, for any other planned maintenance window you have; just assume that many times during the year one of your servers will need to be taken offline. The multi-master design handles this case perfectly well. Your primary master stays up the vast majority of the time, and performance and your application will usually not be affected, since that depends largely on the primary master. Planned maintenance should be done during times of low load. (2) One of your MySQL nodes is degraded or inoperable, but otherwise stays up. For example, a disk drive fills up, and MySQL refuses to service any queries until the disk space frees up. Repairing the degraded node is often a manual procedure, and could take some time to discover and deal with. It is very important that your monitoring scripts can detect degraded states, and not just dead services. Below in the section on client logic, we discuss monitoring scripts and fail-over techniques. (3) Replication on one or more slaves stops due to some logical error. For example, replication has gotten out of sync, and the secondary master and read-only slaves do not have consistent data with respect to each other. Depending on how badly your nodes are out of sync, you may need to rebuild the slaves from the primary master's data. This is a time-consuming and probably manual process. Replication status between nodes is clearly something you will want to look at with your monitoring scripts. (4) Human or application error: an evil or otherwise erroneous SQL statement corrupts or deletes a lot of data. This is the worst kind of failure, because it can be indistinguishable from normal database operations, and the problem gets replicated to all of you nodes and eventually onto backup files. (Which, incidentally, is why you want to keep multiple backup archives from various points in time). There is nothing in this architecture or any other that protects you from this type of event. The way to protect yourself is to have the master's binary logfiles ready and available to help do a point-in-time recovery. (5) Your website and application get hammered either by hoards of adoring fans, or from a denialof-service (DoS) attack. There is no easy solution to massive DoS attack, but certainly the whole point of your architecture is to help you scale to handle the Facebook type of loads you hope will come. With proper load balancing and available slave nodes in addition to effective application-level caching as described above, you should be able to weather large storms. If you have huge, unpredictable spikes in load, consider deploying your database cluster in a virtual server farm, where you can spin-up new read-only slaves quickly. (6) You have some kind of hardware failure. When choosing your hardware in the first place, if you value your time, spend money on high quality hardware with lots of redundancy. We have had an excellent track record of minimal hardware failures using HP Proliant DL380 servers for databases. Use serial attached SCSI (SAS) drives, and always install them in mirrored pairs. With continuous SNMP monitoring of the hardware, you can usually catch and replace a failed disk drive before it's mirror also fails. Less frequent than disk drives failures are fans and power supplies. Again, these are installed redundantly and can be replaced before they cause you any downtime. The multi-master and multiple read-only slave setup protects you against the most common types of hardware failures. It is unlikely that both masters will encounter hardware failures simultaneously, unless there is cause by a major external event that affects the entire rack in your data center (but, in that case your application and everything else is dead anyway).
7 Audit your queries In as far as you should be querying the database as little as possible since you've followed the advice above regarding data modeling and application-level caching and processing, you will still need to put on your DBA hat and look at the patterns of queries are being sent to the database you can refine your tuning and physical partitioning. Know about, and apply the traditional performance techniques of auditing your queries to make sure you're using indicies when appropriate, employ schema denormalization to improve performance, and take careful measure to ensure that certain transactions aren't holding locks longer than they need to. However, to hammer in the point, your best strategy starts with maintaining a simple data model in the database, so your job to audit and tune queries should be a simple task. A primary product of analyzing your queries and data access patterns is to determine how you can partition some of your data to optimize available I/O to multiple disks. This could mean splitting up a huge logical table into separate physical ones, or arranging your tables across multiple disks so querying against one wont impact the performance of querying others. For some heavily use tables, consider giving them their own dedicated drive. Place logfiles on separate drives. If you are running MySQL on Linux, install atop to look at resource usage of all your disk drives during heavy loads; this tool comes in handy to determine where your I/O or CPU bottlenecks are. Another product of query analysis is to determine if many concurrent queries are causing cache/buffer misses and resulting in an inordinate amount of disk I/O for other queries. If this is the case, and you've already maximized use of MySQL InnoDB buffer space, then go back to your code and limit concurrency as explained above. Be aware that a common performance problem is caused by a small number of queries that scan large tables and trash the buffers, so other queries that really should be using the buffers are slowed down. See the article here on the subject of innodb_old_blocks_time for a way to mitigate this problem. Specific example of MySQL setup and hardware Incorporating the strategies and advice above for the database tier, here is a specific example showing key configuration elements: hardware for read/write masters: HP Proliant DL380 Dual E5440 Xeon processors, 16GB of RAM. Use a SCSI array controller with a battery-back write cache, and 8 disks configured as 4 mirrored pairs to be used as follows: drive pair #1: operating system, MySQL temporary tables and transaction rollback logs (innodb_log_group_home_dir), plus temporary space to make copies of binary logs. drive pair #2: binary log files (log_bin). drive pair #3: InnoDB files for certain critical tables that are accessed and/or scanned frequently I/O access that would otherwise impact performance to other tables were they to share the same disk. drive pair #4: the remainder of InnoDB tables and all other MySQL database files.
8 Use nearly all available RAM for the InnoDB buffer pool (innodb_buffer_pool_size), assuming this server is dedicated to MySQL. Set innodb_old_blocks_time and innodb_old_blocks_pct so OLAP table scans don't kill the benefits of your large InnoDB buffer pool. To avoid double buffering, set innodb_flush_method=o_direct. On the primary, innodb_flush_log_at_trx_commit is set to 1. On the secondary, the value is relaxed to 2. hardware for read-only slaves: HP Proliant DL360 Same configuration as above with few disks, e.g.: drive pair #1: operating system, all MySQL database files and InnoDB tables except the critical ones. drive pair #2: critical InnoDB table files Client logic for fail-over and load-balancing Having multiple read/write masters and other slaves to load balance between requires complex logic for clients to decide which servers to use for which queries, and which servers are alive and happy. You could write your own database code on the client to handle this or, more likely, reply on the services provided by the application server you're using. To implement all of the complex logic to make things reliable may quickly exceed the capabilities of your app container or code you're willing to cram into each client. Since you will probably have multiple clients from different platforms using different languages, it makes more sense to concentrate this logic into a load balancer that performs intelligent monitoring of your MySQL servers. The load balancer haproxy, coupled with some intelligent monitoring scripts, can do a great job of transparently providing an always-on connection to nodes in your MySQL cluster. It's not a trivial solution, but is better than alternatives. Keep in mind the following: (1) Write monitoring scripts to keep haproxy apprised of the status of your database nodes. Simply checking that the MySQL service is up is not sufficient it is often the case that MySQL will accept connections but is slow in servicing them. MySQL could be deadlocked with competing transactions trying to commit, or it could be overloaded and very slow due to I/O contention, or the replication could be slow or very delayed. All of these cases are things you need to explicitly check for; then you can ensure that haproxy will direct your clients to the best possible server. (2) Your clients must be configured to not hold onto connections for too long. haproxy balances TCP connections, and only does this when your client makes a new connection to the database. You still don't want your clients to open & close database connections after every query, but limit this caching to under a minute or so. (3) Configure haproxy to group masters and slaves into port groups so clients, knowing which type of query they are about to execute (OLAP, OLTP, read-only) can select the preferred group. The following illustration shows some of these concepts.
9 Additional advice for high availability The primary way to achieve high availability for any engineering system is to expect failure and then deal with it gracefully. When (not if) your primary master experiences a major failure, you must be prepared to get it back up quickly, and you must have practiced this before the first time it happens. Assume you need to do a point-in-time recovery from an older backup and archived binlogs. How quickly do you think you can make this happen? Here are a few questions (without answers!) to address: how many binlogs to you need to roll forward through? Do you really know how long that will take? (Hint: it could take all day, depending on what's in those binlogs and when the last full backup was completed). Are your backups and binlogs (and backups of the binlogs) readily accessible? If you need to untar some large backup files, do you have a fast and spacious place to do that? If the secondary master replication gets out of sync with the primary, or one of the read-only slaves needs to be rebuilt, do you know how to do this quickly? While you are performing one of these types of recoveries, do your haproxy monitoring scripts know what's going on and can rebalance the load accordingly? Rogue queries that corrupt data may go undetected for a very long time, and will corrupt your backups along with everything else; do you keep old backups so you can rollback to a point before the problem started? Conclusion This article covered almost more space to software architecture than to MySQL design, and that captures the essential point. High complexity already exists, unavoidably, in your application tiers; avoiding a new layer of complexity in the database allows you to get great performance and scalability out of a minimal amount of servers. Avoid database performance problems by not creating them in the first place: aim to use your database as a simple and reliable read/write store for records, and leave data
10 and processing complexity in the application tiers. If you can follow that advice, or at least get 80% towards that ideal, then the servers and MySQL configuration strategies mentioned here will probably be overkill.
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 informationChoosing a MySQL HA Solution Today. Choosing the best solution among a myriad of options
Choosing a MySQL HA Solution Today Choosing the best solution among a myriad of options Questions...Questions...Questions??? How to zero in on the right solution You can t hit a target if you don t have
More informationSwitching to Innodb from MyISAM. Matt Yonkovit Percona
Switching to Innodb from MyISAM Matt Yonkovit Percona -2- DIAMOND SPONSORSHIPS THANK YOU TO OUR DIAMOND SPONSORS www.percona.com -3- Who We Are Who I am Matt Yonkovit Principal Architect Veteran of MySQL/SUN/Percona
More informationMySQL 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 informationData Sheet: Storage Management Veritas Storage Foundation for Oracle RAC from Symantec Manageability and availability for Oracle RAC databases
Manageability and availability for Oracle RAC databases Overview Veritas Storage Foundation for Oracle RAC from Symantec offers a proven solution to help customers implement and manage highly available
More informationMySQL High Availability Solutions. Alex Poritskiy Percona
MySQL High Availability Solutions Alex Poritskiy Percona The Five 9s of Availability Clustering & Geographical Redundancy Clustering Technologies Replication Technologies Well-Managed disasters power failures
More informationMySQL High Availability. Michael Messina Senior Managing Consultant, Rolta-AdvizeX /
MySQL High Availability Michael Messina Senior Managing Consultant, Rolta-AdvizeX mmessina@advizex.com / mike.messina@rolta.com Introduction Michael Messina Senior Managing Consultant Rolta-AdvizeX, Working
More informationStorage Optimization with Oracle Database 11g
Storage Optimization with Oracle Database 11g Terabytes of Data Reduce Storage Costs by Factor of 10x Data Growth Continues to Outpace Budget Growth Rate of Database Growth 1000 800 600 400 200 1998 2000
More informationChoosing a MySQL HA Solution Today
Choosing a MySQL HA Solution Today Choosing the best solution among a myriad of options. Michael Patrick Technical Account Manager at Percona The Evolution of HA in MySQL Blasts from the past Solutions
More informationFocus On: Oracle Database 11g Release 2
Focus On: Oracle Database 11g Release 2 Focus on: Oracle Database 11g Release 2 Oracle s most recent database version, Oracle Database 11g Release 2 [11g R2] is focused on cost saving, high availability
More informationRAID SEMINAR REPORT /09/2004 Asha.P.M NO: 612 S7 ECE
RAID SEMINAR REPORT 2004 Submitted on: Submitted by: 24/09/2004 Asha.P.M NO: 612 S7 ECE CONTENTS 1. Introduction 1 2. The array and RAID controller concept 2 2.1. Mirroring 3 2.2. Parity 5 2.3. Error correcting
More information<Insert Picture Here> MySQL Web Reference Architectures Building Massively Scalable Web Infrastructure
MySQL Web Reference Architectures Building Massively Scalable Web Infrastructure Mario Beck (mario.beck@oracle.com) Principal Sales Consultant MySQL Session Agenda Requirements for
More informationOracle E-Business Availability Options. Solution Series for Oracle: 2 of 5
Oracle E-Business Availability Options Solution Series for Oracle: 2 of 5 Table of Contents Coping with E-Business Hours Oracle E-Business Availability Options.....1 Understanding Challenges to Availability...........................2
More informationMladen Stefanov F48235 R.A.I.D
R.A.I.D Data is the most valuable asset of any business today. Lost data, in most cases, means lost business. Even if you backup regularly, you need a fail-safe way to ensure that your data is protected
More informationMySQL High Availability
MySQL High Availability And other stuff worth talking about Peter Zaitsev CEO Moscow MySQL Users Group Meetup July 11 th, 2017 1 Few Words about Percona 2 Percona s Purpose To Champion Unbiased Open Source
More informationGuide to Mitigating Risk in Industrial Automation with Database
Guide to Mitigating Risk in Industrial Automation with Database Table of Contents 1.Industrial Automation and Data Management...2 2.Mitigating the Risks of Industrial Automation...3 2.1.Power failure and
More informationMySQL Performance Improvements
Taking Advantage of MySQL Performance Improvements Baron Schwartz, Percona Inc. Introduction About Me (Baron Schwartz) Author of High Performance MySQL 2 nd Edition Creator of Maatkit, innotop, and so
More informationDatacenter replication solution with quasardb
Datacenter replication solution with quasardb Technical positioning paper April 2017 Release v1.3 www.quasardb.net Contact: sales@quasardb.net Quasardb A datacenter survival guide quasardb INTRODUCTION
More informationAutomated Storage Tiering on Infortrend s ESVA Storage Systems
Automated Storage Tiering on Infortrend s ESVA Storage Systems White paper Abstract This white paper introduces automated storage tiering on Infortrend s ESVA storage arrays. Storage tiering can generate
More informationMySQL 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 informationScaling 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 informationAurora, RDS, or On-Prem, Which is right for you
Aurora, RDS, or On-Prem, Which is right for you Kathy Gibbs Database Specialist TAM Katgibbs@amazon.com Santa Clara, California April 23th 25th, 2018 Agenda RDS Aurora EC2 On-Premise Wrap-up/Recommendation
More informationInnoDB 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 informationVeritas InfoScale Enterprise for Oracle Real Application Clusters (RAC)
Veritas InfoScale Enterprise for Oracle Real Application Clusters (RAC) Manageability and availability for Oracle RAC databases Overview Veritas InfoScale Enterprise for Oracle Real Application Clusters
More informationVeritas Storage Foundation for Oracle RAC from Symantec
Veritas Storage Foundation for Oracle RAC from Symantec Manageability, performance and availability for Oracle RAC databases Data Sheet: Storage Management Overviewview offers a proven solution to help
More informationScaleArc for SQL Server
Solution Brief ScaleArc for SQL Server Overview Organizations around the world depend on SQL Server for their revenuegenerating, customer-facing applications, running their most business-critical operations
More informationPerformance 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 informationInnodb Performance Optimization
Innodb Performance Optimization Most important practices Peter Zaitsev CEO Percona Technical Webinars December 20 th, 2017 1 About this Presentation Innodb Architecture and Performance Optimization 3h
More informationOracle Exadata: Strategy and Roadmap
Oracle Exadata: Strategy and Roadmap - New Technologies, Cloud, and On-Premises Juan Loaiza Senior Vice President, Database Systems Technologies, Oracle Safe Harbor Statement The following is intended
More informationDisaster Recovery Planning
Disaster Recovery Planning How to Ensure your IT systems are protected and your business keeps running should disaster strike. Benefits of Using Disaster Recovery as a Service DRaaS over Traditional Disaster
More informationEverything You Need to Know About MySQL Group Replication
Everything You Need to Know About MySQL Group Replication Luís Soares (luis.soares@oracle.com) Principal Software Engineer, MySQL Replication Lead Copyright 2017, Oracle and/or its affiliates. All rights
More informationWhich technology to choose in AWS?
Which technology to choose in AWS? RDS / Aurora / Roll-your-own April 17, 2018 Daniel Kowalewski Senior Technical Operations Engineer Percona 1 2017 Percona AWS MySQL options RDS for MySQL Aurora MySQL
More informationRule 14 Use Databases Appropriately
Rule 14 Use Databases Appropriately Rule 14: What, When, How, and Why What: Use relational databases when you need ACID properties to maintain relationships between your data. For other data storage needs
More informationJargons, Concepts, Scope and Systems. Key Value Stores, Document Stores, Extensible Record Stores. Overview of different scalable relational systems
Jargons, Concepts, Scope and Systems Key Value Stores, Document Stores, Extensible Record Stores Overview of different scalable relational systems Examples of different Data stores Predictions, Comparisons
More informationThe Role of Database Aware Flash Technologies in Accelerating Mission- Critical Databases
The Role of Database Aware Flash Technologies in Accelerating Mission- Critical Databases Gurmeet Goindi Principal Product Manager Oracle Flash Memory Summit 2013 Santa Clara, CA 1 Agenda Relational Database
More informationDatabase Architectures
Database Architectures CPS352: Database Systems Simon Miner Gordon College Last Revised: 4/15/15 Agenda Check-in Parallelism and Distributed Databases Technology Research Project Introduction to NoSQL
More informationMySQL 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 informationIdentifying Workloads for the Cloud
Identifying Workloads for the Cloud 1 This brief is based on a webinar in RightScale s I m in the Cloud Now What? series. Browse our entire library for webinars on cloud computing management. Meet our
More information! Design constraints. " Component failures are the norm. " Files are huge by traditional standards. ! POSIX-like
Cloud background Google File System! Warehouse scale systems " 10K-100K nodes " 50MW (1 MW = 1,000 houses) " Power efficient! Located near cheap power! Passive cooling! Power Usage Effectiveness = Total
More informationImprovements 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 informationDesign Patterns for Large- Scale Data Management. Robert Hodges OSCON 2013
Design Patterns for Large- Scale Data Management Robert Hodges OSCON 2013 The Start-Up Dilemma 1. You are releasing Online Storefront V 1.0 2. It could be a complete bust 3. But it could be *really* big
More informationPreventing and Resolving MySQL Downtime. Jervin Real, Michael Coburn Percona
Preventing and Resolving MySQL Downtime Jervin Real, Michael Coburn Percona About Us Jervin Real, Technical Services Manager Engineer Engineering Engineers APAC Michael Coburn, Principal Technical Account
More informationAn Overview of Projection, Partitioning and Segmentation of Big Data Using Hp Vertica
IOSR Journal of Computer Engineering (IOSR-JCE) e-issn: 2278-0661,p-ISSN: 2278-8727, Volume 19, Issue 5, Ver. I (Sep.- Oct. 2017), PP 48-53 www.iosrjournals.org An Overview of Projection, Partitioning
More informationDocumentation Accessibility. Access to Oracle Support
Oracle NoSQL Database Availability and Failover Release 18.3 E88250-04 October 2018 Documentation Accessibility For information about Oracle's commitment to accessibility, visit the Oracle Accessibility
More informationHigh availability with MariaDB TX: The definitive guide
High availability with MariaDB TX: The definitive guide MARCH 2018 Table of Contents Introduction - Concepts - Terminology MariaDB TX High availability - Master/slave replication - Multi-master clustering
More informationData Modeling and Databases Ch 14: Data Replication. Gustavo Alonso, Ce Zhang Systems Group Department of Computer Science ETH Zürich
Data Modeling and Databases Ch 14: Data Replication Gustavo Alonso, Ce Zhang Systems Group Department of Computer Science ETH Zürich Database Replication What is database replication The advantages of
More informationFairCom White Paper Caching and Data Integrity Recommendations
FairCom White Paper Caching and Data Integrity Recommendations Contents 1. Best Practices - Caching vs. Data Integrity... 1 1.1 The effects of caching on data recovery... 1 2. Disk Caching... 2 2.1 Data
More informationCourse Description. Audience. Prerequisites. At Course Completion. : Course 40074A : Microsoft SQL Server 2014 for Oracle DBAs
Module Title Duration : Course 40074A : Microsoft SQL Server 2014 for Oracle DBAs : 4 days Course Description This four-day instructor-led course provides students with the knowledge and skills to capitalize
More informationThe 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!! What is virtual memory and when is it useful? !! What is demand paging? !! When should pages in memory be replaced?
Chapter 10: Virtual Memory Questions? CSCI [4 6] 730 Operating Systems Virtual Memory!! What is virtual memory and when is it useful?!! What is demand paging?!! When should pages in memory be replaced?!!
More informationUpgrading 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 informationPractical MySQL Performance Optimization. Peter Zaitsev, CEO, Percona July 02, 2015 Percona Technical Webinars
Practical MySQL Performance Optimization Peter Zaitsev, CEO, Percona July 02, 2015 Percona Technical Webinars In This Presentation We ll Look at how to approach Performance Optimization Discuss Practical
More informationCSE 344 Final Review. August 16 th
CSE 344 Final Review August 16 th Final In class on Friday One sheet of notes, front and back cost formulas also provided Practice exam on web site Good luck! Primary Topics Parallel DBs parallel join
More informationbig picture parallel db (one data center) mix of OLTP and batch analysis lots of data, high r/w rates, 1000s of cheap boxes thus many failures
Lecture 20 -- 11/20/2017 BigTable big picture parallel db (one data center) mix of OLTP and batch analysis lots of data, high r/w rates, 1000s of cheap boxes thus many failures what does paper say Google
More informationHigh 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 informationMySQL Cluster An Introduction
MySQL Cluster An Introduction Geert Vanderkelen O Reilly MySQL Conference & Expo 2010 Apr. 13 2010 In this presentation we'll introduce you to MySQL Cluster. We ll go through the MySQL server, the storage
More informationIT Best Practices Audit TCS offers a wide range of IT Best Practices Audit content covering 15 subjects and over 2200 topics, including:
IT Best Practices Audit TCS offers a wide range of IT Best Practices Audit content covering 15 subjects and over 2200 topics, including: 1. IT Cost Containment 84 topics 2. Cloud Computing Readiness 225
More informationDefinition of RAID Levels
RAID The basic idea of RAID (Redundant Array of Independent Disks) is to combine multiple inexpensive disk drives into an array of disk drives to obtain performance, capacity and reliability that exceeds
More informationHow to setup Orchestrator to manage thousands of MySQL servers. Simon J Mudd 3 rd October 2017
How to setup Orchestrator to manage thousands of MySQL servers Simon J Mudd 3 rd October 2017 Session Summary What is orchestrator and why use it? What happens as you monitor more servers? Features added
More informationEmbedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi
Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi Lecture - 13 Virtual memory and memory management unit In the last class, we had discussed
More informationWHITEPAPER. Disk Configuration Tips for Ingres by Chip nickolett, Ingres Corporation
WHITEPAPER Disk Configuration Tips for Ingres by Chip nickolett, Ingres Corporation table of contents: 3 Preface 3 Overview 4 How Many Disks Do I Need? 5 Should I Use RAID? 6 Ingres Configuration Recommendations
More informationCSCI 4717 Computer Architecture
CSCI 4717/5717 Computer Architecture Topic: Symmetric Multiprocessors & Clusters Reading: Stallings, Sections 18.1 through 18.4 Classifications of Parallel Processing M. Flynn classified types of parallel
More informationBrief introduction of SocketPro continuous SQL-stream sending and processing system (Part 1: SQLite)
Brief introduction of SocketPro continuous SQL-stream sending and processing system (Part 1: SQLite) Introduction Most of client server database systems only support synchronous communication between client
More informationSearchWinIT.com SearchExchange.com SearchSQLServer.com
TechTarget Windows Media SearchWinIT.com SearchExchange.com SearchSQLServer.com SearchEnterpriseDesktop.com SearchWindowsServer.com SearchDomino.com LabMice.net E-Guide Mid-Market Guide to Architecting
More informationMySQL HA Solutions Selecting the best approach to protect access to your data
MySQL HA Solutions Selecting the best approach to protect access to your data Sastry Vedantam sastry.vedantam@oracle.com February 2015 Copyright 2015, Oracle and/or its affiliates. All rights reserved
More informationManual Triggers Sql Server 2008 Examples
Manual Triggers Sql Server 2008 Examples Inserted Delete Oracle equivalent for SQL Server INSERTED and DELETED tables (find the msdn article here: msdn.microsoft.com/en-us/library/ms191300.aspx) Or else
More informationDBMS (FYCS) Unit - 1. A database management system stores data in such a way that it becomes easier to retrieve, manipulate, and produce information.
Prof- Neeta Bonde DBMS (FYCS) Unit - 1 DBMS: - Database is a collection of related data and data is a collection of facts and figures that can be processed to produce information. Mostly data represents
More informationSegregating Data Within Databases for Performance Prepared by Bill Hulsizer
Segregating Data Within Databases for Performance Prepared by Bill Hulsizer When designing databases, segregating data within tables is usually important and sometimes very important. The higher the volume
More information3.3 Understanding Disk Fault Tolerance Windows May 15th, 2007
3.3 Understanding Disk Fault Tolerance Windows May 15th, 2007 Fault tolerance refers to the capability of a computer or network to continue to function when some component fails. Disk fault tolerance refers
More informationChapter 1: Introduction
Chapter 1: Introduction Silberschatz, Galvin and Gagne 2009 Chapter 1: Introduction What Operating Systems Do Computer-System Organization Computer-System Architecture Operating-System Structure Operating-System
More informationDistributed Data Infrastructures, Fall 2017, Chapter 2. Jussi Kangasharju
Distributed Data Infrastructures, Fall 2017, Chapter 2 Jussi Kangasharju Chapter Outline Warehouse-scale computing overview Workloads and software infrastructure Failures and repairs Note: Term Warehouse-scale
More informationLock Tuning. Concurrency Control Goals. Trade-off between correctness and performance. Correctness goals. Performance goals.
Lock Tuning Concurrency Control Goals Performance goals Reduce blocking One transaction waits for another to release its locks Avoid deadlocks Transactions are waiting for each other to release their locks
More informationOS and Hardware Tuning
OS and Hardware Tuning Tuning Considerations OS Threads Thread Switching Priorities Virtual Memory DB buffer size File System Disk layout and access Hardware Storage subsystem Configuring the disk array
More informationHigh Availability through Warm-Standby Support in Sybase Replication Server A Whitepaper from Sybase, Inc.
High Availability through Warm-Standby Support in Sybase Replication Server A Whitepaper from Sybase, Inc. Table of Contents Section I: The Need for Warm Standby...2 The Business Problem...2 Section II:
More informationThe former pager tasks have been replaced in 7.9 by the special savepoint tasks.
1 2 3 4 With version 7.7 the I/O interface to the operating system has been reimplemented. As of version 7.7 different parameters than in version 7.6 are used. The improved I/O system has the following
More informationThe Leading Parallel Cluster File System
The Leading Parallel Cluster File System www.thinkparq.com www.beegfs.io ABOUT BEEGFS What is BeeGFS BeeGFS (formerly FhGFS) is the leading parallel cluster file system, developed with a strong focus on
More informationAdvanced Architectures for Oracle Database on Amazon EC2
Advanced Architectures for Oracle Database on Amazon EC2 Abdul Sathar Sait Jinyoung Jung Amazon Web Services November 2014 Last update: April 2016 Contents Abstract 2 Introduction 3 Oracle Database Editions
More informationEffective 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<Insert Picture Here> MySQL Cluster What are we working on
MySQL Cluster What are we working on Mario Beck Principal Consultant The following is intended to outline our general product direction. It is intended for information purposes only,
More informationOS and HW Tuning Considerations!
Administração e Optimização de Bases de Dados 2012/2013 Hardware and OS Tuning Bruno Martins DEI@Técnico e DMIR@INESC-ID OS and HW Tuning Considerations OS " Threads Thread Switching Priorities " Virtual
More informationBusiness Continuity and Disaster Recovery. Ed Crowley Ch 12
Business Continuity and Disaster Recovery Ed Crowley Ch 12 Topics Disaster Recovery Business Impact Analysis MTBF and MTTR RTO and RPO Redundancy Failover Backup Sites Load Balancing Mirror Sites Disaster
More informationDistributed KIDS Labs 1
Distributed Databases @ KIDS Labs 1 Distributed Database System A distributed database system consists of loosely coupled sites that share no physical component Appears to user as a single system Database
More informationConceptual Modeling on Tencent s Distributed Database Systems. Pan Anqun, Wang Xiaoyu, Li Haixiang Tencent Inc.
Conceptual Modeling on Tencent s Distributed Database Systems Pan Anqun, Wang Xiaoyu, Li Haixiang Tencent Inc. Outline Introduction System overview of TDSQL Conceptual Modeling on TDSQL Applications Conclusion
More informationDistributed Systems. Lec 10: Distributed File Systems GFS. Slide acks: Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung
Distributed Systems Lec 10: Distributed File Systems GFS Slide acks: Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung 1 Distributed File Systems NFS AFS GFS Some themes in these classes: Workload-oriented
More informationConcurrency Control Goals
Lock Tuning Concurrency Control Goals Concurrency Control Goals Correctness goals Serializability: each transaction appears to execute in isolation The programmer ensures that serial execution is correct.
More informationBuilding loosely coupled and scalable systems using Event-Driven Architecture. Jonas Bonér Patrik Nordwall Andreas Källberg
Building loosely coupled and scalable systems using Event-Driven Architecture Jonas Bonér Patrik Nordwall Andreas Källberg Why is EDA Important for Scalability? What building blocks does EDA consists of?
More informationFLAT DATACENTER STORAGE. Paper-3 Presenter-Pratik Bhatt fx6568
FLAT DATACENTER STORAGE Paper-3 Presenter-Pratik Bhatt fx6568 FDS Main discussion points A cluster storage system Stores giant "blobs" - 128-bit ID, multi-megabyte content Clients and servers connected
More informationHigh Noon at AWS. ~ Amazon MySQL RDS versus Tungsten Clustering running MySQL on AWS EC2
High Noon at AWS ~ Amazon MySQL RDS versus Tungsten Clustering running MySQL on AWS EC2 Introduction Amazon Web Services (AWS) are gaining popularity, and for good reasons. The Amazon Relational Database
More informationArchitekturen für die Cloud
Architekturen für die Cloud Eberhard Wolff Architecture & Technology Manager adesso AG 08.06.11 What is Cloud? National Institute for Standards and Technology (NIST) Definition On-demand self-service >
More informationEvaluation Guide for ASP.NET Web CMS and Experience Platforms
Evaluation Guide for ASP.NET Web CMS and Experience Platforms CONTENTS Introduction....................... 1 4 Key Differences...2 Architecture:...2 Development Model...3 Content:...4 Database:...4 Bonus:
More informationMap-Reduce. Marco Mura 2010 March, 31th
Map-Reduce Marco Mura (mura@di.unipi.it) 2010 March, 31th This paper is a note from the 2009-2010 course Strumenti di programmazione per sistemi paralleli e distribuiti and it s based by the lessons of
More informationCIS 601 Graduate Seminar. Dr. Sunnie S. Chung Dhruv Patel ( ) Kalpesh Sharma ( )
Guide: CIS 601 Graduate Seminar Presented By: Dr. Sunnie S. Chung Dhruv Patel (2652790) Kalpesh Sharma (2660576) Introduction Background Parallel Data Warehouse (PDW) Hive MongoDB Client-side Shared SQL
More informationLecture 1 Introduction (Chapter 1 of Textbook)
Bilkent University Department of Computer Engineering CS342 Operating Systems Lecture 1 Introduction (Chapter 1 of Textbook) Dr. İbrahim Körpeoğlu http://www.cs.bilkent.edu.tr/~korpe 1 References The slides
More informationNotes based on prof. Morris's lecture on scheduling (6.824, fall'02).
Scheduling Required reading: Eliminating receive livelock Notes based on prof. Morris's lecture on scheduling (6.824, fall'02). Overview What is scheduling? The OS policies and mechanisms to allocates
More informationThe Google File System
The Google File System Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung SOSP 2003 presented by Kun Suo Outline GFS Background, Concepts and Key words Example of GFS Operations Some optimizations in
More informationInside the PostgreSQL Shared Buffer Cache
Truviso 07/07/2008 About this presentation The master source for these slides is http://www.westnet.com/ gsmith/content/postgresql You can also find a machine-usable version of the source code to the later
More informationHow In-memory Database Technology and IBM soliddb Complement IBM DB2 for Extreme Speed
soliddb How In-memory Database Technology and IBM soliddb Complement IBM DB2 for Extreme Speed December 2008 Joan Monera-Llorca IBM Software Group, Information Management soliddb Technical Sales - Americas
More informationVERITAS Storage Foundation 4.0 TM for Databases
VERITAS Storage Foundation 4.0 TM for Databases Powerful Manageability, High Availability and Superior Performance for Oracle, DB2 and Sybase Databases Enterprises today are experiencing tremendous growth
More informationDatabase Architectures
Database Architectures CPS352: Database Systems Simon Miner Gordon College Last Revised: 11/15/12 Agenda Check-in Centralized and Client-Server Models Parallelism Distributed Databases Homework 6 Check-in
More informationWhat s New in MySQL 5.7 Geir Høydalsvik, Sr. Director, MySQL Engineering. Copyright 2015, Oracle and/or its affiliates. All rights reserved.
What s New in MySQL 5.7 Geir Høydalsvik, Sr. Director, MySQL Engineering Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes
More information