Realizing Database-as-a-Service with Tungsten Enterprise

Slides:



Advertisements
Similar presentations
How We Manage SaaS Infrastructure Knowledge Track
Advertisements

A Ridiculously Easy & Seriously Powerful SQL Cloud Database Itamar Haber AVP Ops & Solutions.
Implementing Tableau Server in an Enterprise Environment
High Availability Options for JD Edwards EnterpriseOne Shawn Scanlon, GSI.
MUNIS Platform Migration Project WELCOME. Agenda Introductions Tyler Cloud Overview Munis New Features Questions.
High Availability Group 08: Võ Đức Vĩnh Nguyễn Quang Vũ
Amazon RDS (MySQL and Oracle) and SQL Azure Emil Tabakov Telerik Software Academy academy.telerik.com.
© Continuent 2010 Realizing Database-as-a-Service with Tungsten Enterprise Edward Archibald CTO Continuent.
Oracle Data Guard Ensuring Disaster Recovery for Enterprise Data
Network Management Overview IACT 918 July 2004 Gene Awyzio SITACS University of Wollongong.
Technical Architectures
Lesson 1: Configuring Network Load Balancing
National Manager Database Services
Microsoft Load Balancing and Clustering. Outline Introduction Load balancing Clustering.
Overview SAP Basis Functions. SAP Technical Overview Learning Objectives What the Basis system is How does SAP handle a transaction request Differentiating.
1 Copyright 2008 MySQL AB The World’s Most Popular Open Source Database MySQL Enterprise for SaaS and Managed Hosting Providers Jimmy Guerrero Sr Product.
Distributed Data Stores – Facebook Presented by Ben Gooding University of Arkansas – April 21, 2015.
PPOUG, 05-OCT-01 Agenda RMAN Architecture Why Use RMAN? Implementation Decisions RMAN Oracle9i New Features.
This presentation will guide you though the initial stages of installation, through to producing your first report Click your mouse to advance the presentation.
SANPoint Foundation Suite HA Robert Soderbery Sr. Director, Product Management VERITAS Software Corporation.
Chapter 10 : Designing a SQL Server 2005 Solution for High Availability MCITP Administrator: Microsoft SQL Server 2005 Database Server Infrastructure Design.
Copyright © 2013 NetEase 马进 app DDB introduce.
What is (Application) Clustering and Why do you Want to Use it? February 2005 Eero Teerikorpi CEO.
Oracle10g RAC Service Architecture Overview of Real Application Cluster Ready Services, Nodeapps, and User Defined Services.
© Continuent 9/19/2015 PostgreSQL Lightning Talk Availability, Scaling, and more with Tungsten Stephane Giron and Gilles Rayrat PG Euro Prato Italy.
Sofia, Bulgaria | 9-10 October SQL Server 2005 High Availability for developers Vladimir Tchalkov Crossroad Ltd. Vladimir Tchalkov Crossroad Ltd.
Chapter 8 Implementing Disaster Recovery and High Availability Hands-On Virtual Computing.
© Continuent 2010 Liberating Your Data From MySQL: Cross-Database Replication to the Rescue! Robert Hodges and Linas Virbalas Continuent, Inc.
DB-2: OpenEdge® Replication: How to get Home in Time … Brian Bowman Sr. Solutions Engineer Sandy Caiado Sr. Solutions Engineer.
Module 13 Implementing Business Continuity. Module Overview Protecting and Recovering Content Working with Backup and Restore for Disaster Recovery Implementing.
A Brief Documentation.  Provides basic information about connection, server, and client.
Process Architecture Process Architecture - A portion of a program that can run independently of and concurrently with other portions of the program. Some.
VMware vSphere Configuration and Management v6
High Availability in DB2 Nishant Sinha
Alwayson Availability Groups
Enhancing Scalability and Availability of the Microsoft Application Platform Damir Bersinic Ruth Morton IT Pro Advisor Microsoft Canada
SQL Server 2012 Session: 1 Session: 4 SQL Azure Data Management Using Microsoft SQL Server.
Log Shipping, Mirroring, Replication and Clustering Which should I use? That depends on a few questions we must ask the user. We will go over these questions.
1 Build Your Own MySQL Time Machine Chuck Bell, PhD Mats Kindahl, PhD Replication and Backup Team Sun Microsystems 1.
Commvault and Nutanix October Changing IT landscape Today’s Challenges Datacenter Complexity Building for Scale Managing disparate solutions.
Architecting Enterprise Workloads on AWS Mike Pfeiffer.
Calgary Oracle User Group
Jean-Philippe Baud, IT-GD, CERN November 2007
How to tune your applications before moving your database to Microsoft Azure SQL Database (MASD) OK, you've jumped into your Azure journey by creating.
(ITI310) SESSIONS 8: Network Load Balancing (NLB)
Redcell™ Management Essentials, Juniper Networks Enterprise Edition
Managing Multi-User Databases
Netscape Application Server
N-Tier Architecture.
Lead SQL BankofAmerica Blog: SQLHarry.com
Consulting Services JobScheduler Architecture Decision Template
Network Load Balancing
Maximum Availability Architecture Enterprise Technology Centre.
A Technical Overview of Microsoft® SQL Server™ 2005 High Availability Beta 2 Matthew Stephen IT Pro Evangelist (SQL Server)
Configuring the network environment
Introduction of Week 6 Assignment Discussion
Exploring Azure Event Grid
SQL Server High Availability Amit Vaid.
20409A 7: Installing and Configuring System Center 2012 R2 Virtual Machine Manager Module 7 Installing and Configuring System Center 2012 R2 Virtual.
AWS Cloud Computing Masaki.
An Introduction to Software Architecture
Web Application Server 2001/3/27 Kang, Seungwoo. Web Application Server A class of middleware Speeding application development Strategic platform for.
PRESENTER GUIDANCE: These charts provide data points on how IBM BaaS mid-market benefits a client with the ability to utilize a variety of backup software.
Capitalize on Your Business’s Technology
Enterprise Class Virtual Tape Libraries
Introduction of Week 5 Assignment Discussion
ZORAN BARAC DATA ARCHITECT at CIN7
Setting up PostgreSQL for Production in AWS
Designing Database Solutions for SQL Server
The Database World of Azure
Presentation transcript:

Realizing Database-as-a-Service with Tungsten Enterprise Edward Archibald CTO Continuent Notes here. 1

Topics What does Database-as-a-Service (DBaaS) mean? Demo of Tungsten Enterprise The Foundation: Consistent Copies Maintained by Tungsten Replicator The Data Service: Logical to Physical Mapping via the SQL Router Monitoring and Complex Process Orchestration Just Around the Corner: Tungsten 2.0 Preview Getting Started with Tungsten Today Todays session is very straightforward Bullets During todays session you may submit questions at any point during the presentation by using the Q&A box on the lower right of your webex screen. At the end of todays session we will address each question in the order they were received. Contact information is provided at the end of this presentation. For additional questions please feel free to contact us directly. 2

About Continuent Continuent is the leading provider of data replication and clustering for open source relational databases Our Products: Tungsten Replicator - High-performance, MySQL replication. 100% Open Source. Tungsten Enterprise - Commercial solution that includes automatic-failover, read-load balancing and data management features for MySQL and PostgreSQL. Available via subscription. Our Services: Consulting on Tungsten plus replication and clustering in general Targeted development projects for special features Product support 3

What does DBaaS Mean?

What DBaaS is not DBaaHRH – Database as a human-resource hog Human-resource intensive to manage and maintain DBaaSPoF – Database as a single point of failure If your database server goes down, your app is down If replication is in place, it takes many steps to make an existing slave into the new master DBaaAB – Database as an application bottleneck Your applications all pay the ‘database tax’ and funnel through an increasingly loaded database server If replication is in place, it is under-utilized – can’t easily be used for load balancing

What DBaaS is – Available today Application transparent Appears, to applications, to be a single database server No application changes are required Some application changes may increase the effectiveness Uninterrupted database availability and self-healing If there’s a failure of the master database server, a slave is promoted automatically The system attempts to recover from a variety of common faults and operator errors Accelerates, automates and facilitates common tasks Backing up without application downtime Restoring after a failure In-service database schema upgrades

Tungsten Enterprise 1.3 Demo

Demo of Tungsten Enterprise Cluster Control CLI Read load balancing Switch master and switch back Automatic failover

The Foundation: Consistent Copies Maintained by Tungsten Replicator

What Is Tungsten Replicator? Tungsten Replicator is a fast, open-source replication engine for MySQL GPL V2 license Written in Java Designed for speed and flexibility

Tungsten Replicator Features Global transaction IDs Transaction filters Replicate from MySQL to PostgreSQL & Oracle Time-delay replication Backup and restore integration Cross-version replication: 5.5 -> 5.1 -> 5.0 -> 4.1 Row and statement replication Automatic consistency checks Auto-provisioning Multi-master replication Parallel replication

Home Sweet Home http://code.google.com/p/tungsten-replicator

Tungsten Replicator Architecture Master (Replicator configuration) replicator. properties MySQL Tungsten Replicator (replicator) Tail binlog or login as client Binlogs Transaction History Log Transport via TCP/IP connection (Transactions + Metadata) Apply using JDBC Transaction History Log Tungsten Replicator (replicator) MySQL replicator. properties Slave

The Foundation: Consistent Copies Application Server Application Server MySQL Client Library MySQL Client Library Application logic: Is it current enough? DBMS DBMS DBMS Replicator Slave Master Slave 14

The Data Service: Logical to Physical Mapping via the SQL Router

Data Service and Data Sources A Rreplication Service represents a database-server-centric replication topology for Tungsten replicator Without additional functionality, applications must be configured to connect to specific database servers at any given time What happens if there is a master failure? What happens if a slave is lagging too far behind? What happens if I add a new slave? A Data Service represents a logical, application-centric view of a replication-service Organized as a set of Data Sources, each Data Source mapping to a physical database server with a specific role Decouples the logical role i.e. master and slave, from the physical location of the database server Applications specify the quality of service (QOS) they require when connecting

SQL Router Maintains logical->physical mapping Supports Quality-of-Service-based connectivity RW_STRICT Strict read/write consistency. Router interprets this as a request to connect to the master. RO_RELAXED With no other arguments, tells the router to connect to a slave if there is one available. Round-Robin Read Load Balancing

Integrating SQL Router: Manual Operation Application Server Application Server MySQL Client Library MySQL Client Library Connector/SQL Router MySQL Client Library Router CLI Is it current enough? Data Service DBMS DBMS DBMS Replicator Slave Master Slave 18

Monitoring and Complex Process Orchestration: Manager/Monitor

Integrating Manager/Monitor Application Server Application Server MySQL Client Library MySQL Client Library Connector/SQL Router MySQL Client Library Router CLI Monitoring and control Monitoring and control Data Service DBMS DBMS DBMS Replicator Manager/ Monitor Manager/Monitor Manager/Monitor Slave Master Slave 20

PostgresSQL Client Library Tungsten Enterprise Application Server Application Server PostgresSQL Client Library Connector/SQL Router MySQL Client Library MySQL Client Library Monitoring and control Monitoring and control Data Service DBMS DBMS DBMS Replicator Manager/ Monitor Manager/Monitor Manager/Monitor Slave Master Slave 21

Manager/Monitor Functional Diagram Replicator SQL Routers Manager/Monitor MySQL mon plugin Replicator mon plugin Replicator Operational Rules actions Replicator SQL Routers facts Manager/Monitor MySQL mon plugin Replicator mon plugin Replicator Group Communications monitor notifications and control requests in total order coordinator Replicator SQL Routers Manager/Monitor MySQL mon plugin Replicator mon plugin Replicator

SQL Router QOS Extensions Replication monitoring information relayed to the SQL Router Allows for QOS extensions RO_RELAXED Can specify maxAppliedLatency=<seconds>. Router will only connect to a slave if it is current enough. Otherwise, it will connect to the master. RW_SESSION Must specify a ‘session id’ which acts like a ‘cookie’ for the router. The router tracks all writes by that session and ensures that any reads made by that session are strictly consistent with writes made by the session. Sessions are isolated from each other. ‘automatic’ sessions for USER, DATABASE and CONNECTION sessionId can be any string – PHP session ID for example

Session Load Balancing: Smart Scale sessionId=a015c5 sessionId=c65a14 Write t1 Read t1 Read t1 Write t2 Read t2 Connector/SQL Router Data Service DBMS DBMS DBMS Replicator Replicator Replicator Manager Manager Manager Slave Master Slave 24

Performance: Smart Scale PHP Example # Host where the Tungsten Connector is running $host = “localhost”; $port = 3306; $username = “tungsten”; $password = “secret”; # Append the Tungsten SQL Router Quality Of Service to the database name. # Use the PHP session id, which must have been created earlier, as the # sessionId for the qos parameter. This works because PHP just passes the # database name, unaltered, to the Tungsten Connector and is passed to # the Tungsten SQL Router which strips off the arguments it understands. # $dbname = “admin?qos=RW_SESSION&sessionId=”.session_id(); # Make the connection $connection = mysqli_connect($host, $username, $password, $dbname, $port);. ........ More application logic here ......... ?> 25

Tungsten Enterprise 1.3 Summary Organizes a set of database servers into a single logical data service Management, monitoring and replication are integrated and running on each database server host A Data Service is highly-available and scalable Failure detection and failover is orchestrated by the manager/monitor Applications are isolated from failures, via router control, as they are detected Tungsten connector provides connectivity to a single data service Replication is single-threaded Can be integrated with enterprise monitoring Can be integrated with advanced disk subsystems like NetApp Tungsten SQL Router JDBC MySQL Client Protocol Handler Tungsten Connector master Data Source slave Data Service Advanced Storage Subsystem

Tungsten Enterprise 1.3: Use Cases Automatic failover No-downtime promotion of a slave to a master (switch) Simple read/write splitting, transparent to the application Transparent scaling via routing of read operations to slaves using ‘Smart Scale’ In-service schema upgrades No-downtime backups No-downtime provisioning of slaves Tungsten SQL Router JDBC MySQL Client Protocol Handler Tungsten Connector master Data Source slave Data Service Advanced Storage Subsystem

Automatic Failover DB2 Slave DB1 Master DB3 Slave Application Server Connector SQL Router Writes to master Which slave is the most up to date? Reads to slaves DB2 Slave DB1 Master DB3 Slave SQL SQL Master and Two Slaves online. 28

Automatic Failover DB1 Master DB2 Slave DB2 Master DB3 Slave Application Server Connector SQL Router SQL DB1 Master Writes to master Which slave is the most up to date? Reads to slaves DB2 Slave DB2 Master DB3 Slave SQL Master and Two Slaves online. 29

Just around the Corner

MySQL Client Protocol Handler Tungsten Enterprise 2.0 Key features to support multi-tenant applications Allows for multiple data services for a given set of database servers Advanced replication topologies including cross-service/cross-site and multi-master Isolation of tenants from each other Parallel replication is critical for supporting the ‘isolation’ requirement. Tungsten connector must support multiple data services including data services that are at remote sites Exposes ‘shards’ as a first-class entity: shard == database Applications can connect to specific shards Shards can be managed separately Tungsten SQL Router JDBC MySQL Client Protocol Handler Tungsten Connector master Data Source slave Data Service master Data Source slave Data Service master Data Source slave Data Service shards

Tungsten Enterprise 2.0: Use Cases Location-independent routing of connection requests to shards via logical-to-physical translation Isolation of shards at the replication level via parallel replication and quality-of-service constraints Isolation of shards at the application level via quality-of-service constraints Ability to move shards across data services including to a remote data service Complex replication topologies supported, including multi-master/bi-directional Disaster recovery via cross-site replication Tungsten SQL Router JDBC MySQL Client Protocol Handler Tungsten Connector master Data Source slave Data Service master Data Source slave Data Service master Data Source slave Data Service shards

Tungsten 2.0: Data Service Definition LSL: cc-mycustAAA-appdb1 PSL: cc-west:dbclust01//CallCenter-DBShared01/appdb1 # set up a data service to manage app databases # automatically create a new shard for every DB create dataservice dbclust01//CallCenter-DBShared01 ( master cc-west-db10, slave cc-west-db11) shard on database # set up another data service for more app databases # automatically create a shard for every DB create dataservice dbclust02//CallCenter-DBShared02 ( master cc-west-db12, slave cc-west-db13) shard on database

Tungsten 2.0: Complex Topologies # Local data services on each site create dataservice cc-west:dbcluster01//SharedData(master cc-west-db01, slave cc-west-db02); create dataservice cc-east:dbcluster01//SharedData(master cc-east-db01, slave cc-east-db02); # Composite data services define multi-master between local data services create composite dataservice WestToEast(master cc-west:dbcluster01//SharedData, slave cc-east:dbcluster01//SharedData); create composite dataservice EastToWest(master cc-east:dbcluster01//SharedData, slave cc-west:dbcluster01/SharedData); # Local data service for multi-tenant data + composite service to replicate shared data. create dataservice cc-west:dbcluster01//CallCenter-DBShared01(master cc-west0db11, slave cc-west-db12); create composite dataservice WestShared01(master cc-west:dbcluster-1//SharedData, slave cc-west:dbcluster01/CallCenter-DBShared01);

Tungsten 2.0: Moving a Shard, Local LSL: cc-mycustAAA-appdb1 PSL: cc-west:dbclust01//CallCenter-DBShared01/appdb1 M mv cc-mycustAAA-appdb1 dbclust01//CallCenter-DBShared02 The command does not use fully qualified data service name – context is inferred and assumed to be site-local. Provisions a new composite slave for the cc-mycustAAA-appdb1 shard in the target data service. This means that we’ll have both a master and a slave for this shard on the target. Replicates from the source data service to the target data service until the target data service is ‘nearly’ caught up. Suspends any new application connections to the source shard and then does a flush of the source shard. Waits for the source shard master to replicate the flush record. Starts allowing new connections to the target shard. This implies that the connectivity layer will now translate the LSL for the shard to the new physical location Optionally removes the data for the shard from the source After the move, the shard master PSL is: C cc-west:dbclust01//CallCenter-DBShared02/appdb1@cc-west-db13

Tungsten 2.0: Moving a Shard, Remote mv cc-mycustAAA-appdb1 cc-east:dbclust01//CallCenter-DBShared01 The high-level operations here are identical to the previous case. After the shard is moved, the shard master PSL is: cc-east:dbclust01//CallCenter-DBShared01/appdb1@cc-east-db10

Getting Started with Tungsten Today

Continuent Product Subscriptions Per database server subscriptions for Tungsten Enterprise Pricing based on number of DBMS servers, not number of physical servers Software-only – Tungsten Enterprise license Use hourly consulting for support; bug-fixes are free Software + Support 24x7 guaranteed response time support (SLAs negotiable)

Continuent Consulting Practical consulting by industry experts on any aspect of Tungsten or replication/clustering for open source databases Hourly support contracts Advice, troubleshooting, bug fixes Projects Cluster design, roll-outs, upgrades, special replication problems Sponsored development Implementation of features large and small Actively seeking customers who want to build a private DBaaS Offered for both Tungsten Replicator open source and Tungsten Enterprise commercial products

Tungsten Replicator Project Contact Information 560 S. Winchester Blvd., Suite 500 San Jose, CA 95128 Tel (866) 998-3642 Fax (408) 668-1009 e-mail: sales@continuent.com Continuent Web Site: http://www.continuent.com Tungsten Replicator Project http://code.google.com/p/tungsten-replicator How do I get an eval copy of the software Can you share any whitepapers on this technology? What is the price? Our dedicated server price is based upon CPU’s and the size of the cluster The monthly subscription starts at $125 list for a 2 node. Virtual Private Clusters are priced differently and I would be glad to discuss this off-line Is the entire database kept in memory? Can I make schema changes while the cluster is running How do you differ from Veritas Cluster Server? 40