Agile Environments and DBAs Laine Campbell, PalominoDB Sheeri Cabral, The Pythian Group.

Slides:



Advertisements
Similar presentations
Scalable Web Site Antipatterns Justin Leitgeb Stack Builders Inc.
Advertisements

High level QA strategy for SQL Server enforcer
Corporate Imaging Kathy Mumford Session 2 Room C Tennessees BEST 2005 Tech Tips User Conference.
Chapter 9. Performance Management Enterprise wide endeavor Research and ascertain all performance problems – not just DBMS Five factors influence DB performance.
Module 13: Performance Tuning. Overview Performance tuning methodologies Instance level Database level Application level Overview of tools and techniques.
Irwin/McGraw-Hill Copyright © 2000 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS5th Edition.
1 8 Concepts of Database Management, 4 th Edition, Pratt & Adamski Chapter 8 Database Administration.
Overview Distributed vs. decentralized Why distributed databases
ACSC 155 System Analysis and Design 5. Input/Output Design
Concepts of Database Management Seventh Edition
Definition of terms Definition of terms Explain business conditions driving distributed databases Explain business conditions driving distributed databases.
Oracle Database Administration. Rana Almurshed 2 course objective After completing this course you should be able to: install, create and administrate.
Chapter 9 Overview  Reasons to monitor SQL Server  Performance Monitoring and Tuning  Tools for Monitoring SQL Server  Common Monitoring and Tuning.
Transaction log grows unexpectedly
Database Administration Chapter 16. Need for Databases  Data is used by different people, in different departments, for different reasons  Interpretation.
Distributed Databases Dr. Lee By Alex Genadinik. Distributed Databases? What is that!?? Distributed Database - a collection of multiple logically interrelated.
Sarah Sproehnle Cloudera, Inc
Copyright © 2007 Quest Software The Changing Role of SQL Server DBA’s Bryan Oliver SQL Server Domain Expert Quest Software.
Managing Multi-User Databases AIMS 3710 R. Nakatsu.
1 Intro to Info Tech Database Management Systems Copyright 2003 by Janson Industries This presentation can be viewed on line at:
Concepts of Database Management Sixth Edition
Chapter Oracle Server An Oracle Server consists of an Oracle database (stored data, control and log files.) The Server will support SQL to define.
Online Database Support Experiences Diana Bonham, Dennis Box, Anil Kumar, Julie Trumbo, Nelly Stanfield.
Concepts of Database Management, Fifth Edition Chapter 8: Database Administration.
Sofia, Bulgaria | 9-10 October SQL Server 2005 High Availability for developers Vladimir Tchalkov Crossroad Ltd. Vladimir Tchalkov Crossroad Ltd.
Development Strategies for Web Applications Jonathan Babbage National Superconducting Cyclotron Laboratory.
Concepts of Database Management Eighth Edition
J.D.-Client Services o Strong Client Focus: troubleshooting and follow-up skills; commitment to continuous improvement. o Previous Analyst experience a.
DBA’s, Oracle Designer and the Development Life Cycle By Peter Wilkinson, Mercury International Ltd. Leslie Tierstein, SCI Consulting, Inc.
Physical Database Design & Performance. Optimizing for Query Performance For DBs with high retrieval traffic as compared to maintenance traffic, optimizing.
Physical Database Design Chapter 6. Physical Design and implementation 1.Translate global logical data model for target DBMS  1.1Design base relations.
Introduction to SEQUEL. What is SEQUEL? Acronym for Structural English Query Language Acronym for Structural English Query Language Standard language.
1 Moshe Shadmon ScaleDB Scaling MySQL in the Cloud.
VCU Information Systems Institute Advanced Delivery Methodology Courtesy of Data Management That Works.
Copyright 2006 MySQL AB The World’s Most Popular Open Source Database MySQL Cluster: An introduction Geert Vanderkelen MySQL AB.
1 Optimizing Your ColdFusion Applications for Oracle Justin Fidler, CNA, CPS, CCFD Chief Technology Officer Bantu, Inc. 8 May 2001.
1099 Why Use InterBase? Bill Todd The Database Group, Inc.
Ch. 1 데이터베이스시스템 (2). Ch.1 Database System 데이터베이스시스템 2 What to Learn Database System Overview Entity-Relationship diagram Relational Data Model  Structure.
Relational Databases. Database Large collection of data in an organised format to allow access and control DBMS Database Management System - Special software.
A Brief Documentation.  Provides basic information about connection, server, and client.
By Shanna Epstein IS 257 September 16, Cnet.com Provides information, tools, and advice to help customers decide what to buy and how to get the.
The Truth About Agile Software Development with Scrum - How to Manage Scrum Agile Software Development- The Facts You Should Know 1 Agile software development.
Proactively Optimizing Queries with EXPLAIN and mk-query-digest Presented by: Sheeri K. Cabral Database Operations Manager MySQL Sunday at Oracle OpenWorld.
Get Rid of Cron Scripts Using Events Sheeri Cabral Senior DB Admin/Architect,
Database Administration
Planning Ahead for Optimal Contact Center Deployment Jim Jenkins
Shyam Varan Nath President, Oracle BIWA SIG Session #464 April 17, AM-12 noon Database Development Best Practices: Supporting Agile/Extreme Programming.
GLOBEX INFOTEK Copyright © 2013 Dr. Emelda Ntinglet-DavisSYSTEMS ANALYSIS AND DESIGN METHODSINTRODUCTORY SESSION EFFECTIVE DATABASE DESIGN for BEGINNERS.
© 2010 IBM Corporation Information Management Using Snapshot monitor SQL Administrative Views for Performance Analysis on V10.1 Anthony Reina - Accelerated.
© 2009/2010 Pythian 1 mysqltuner 1.0 Author: Major Hayden Quick sanity check: » Status/system variables » Memory, Architecture, Tables Not all recommendations.
1 Copyright © 2005, Oracle. All rights reserved. Following a Tuning Methodology.
KCIUG 30 January, 2004Raw Tables for Improved Load Performance1 Christopher Coleman Database Analyst Mediware Information Systems.
A way to develop software that emphasizes communication, collaboration, and integration between development and IT operations teams.
Site Services and Policies Summary Dirk Düllmann, CERN IT More details at
1 Information Retrieval and Use De-normalisation and Distributed database systems Geoff Leese September 2008, revised October 2009.
SQL Server - Review Managing the System. Objectives  Understand the importance of maintenance plans.  Check for database consistency.  Understand how.
3 Copyright © 2006, Oracle. All rights reserved. Designing and Developing for Performance.
HO CHI MINH CITY NATIONAL UNIVERSITY HO CHI MINH CITY UNIVERSITY OF TECHNOLOGY SYSTEM ANALYSIS AND DESIGN LECTURER: Nguyen Thanh Tung.
1 Copyright © 2005, Oracle. All rights reserved. Oracle Database Administration: Overview.
Feature Overview Oracle Explorer – browse and alter schema Wizards and Designers Automatic code generation PL/SQL Editor with IntelliSense Oracle Data.
Find Query Problems Proactively With Query Reviews Presented by: Sheeri K. Cabral If you can't clearly read this text, move closer. You'll.
Planning a Migration.
What’s new in SQL Server 2017 for BI?
392-"JOIN" us on DataServers Journey
MongoDB Er. Shiva K. Shrestha ME Computer, NCIT
Senior Solutions Architect, MongoDB Inc.
Alejandro Álvarez on behalf of the FTS team
Database systems Lecture 3 – SQL + CRUD
Contents Preface I Introduction Lesson Objectives I-2
Ridewaan Hanslo ridewaanhanslo
Presentation transcript:

Agile Environments and DBAs Laine Campbell, PalominoDB Sheeri Cabral, The Pythian Group

Definition of Agile From m-w.com: Main Entry: ag·ile Pronunciation: \ ˈ a-jəl, - ˌ jī(-ə)l\ Function: adjective Etymology:Middle French, from Latin agilis, from agere to drive, act — more at agent Date: : marked by ready ability to move with quick easy grace 2 : having a quick resourceful and adaptable character

Definition of Agile From Wikipedia: Agile methodologies generally promote a project management process that encourages frequent inspection and adaptation,

Definition of Agile From Wikipedia: Agile methodologies generally promote a project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability,

Definition of Agile From Wikipedia: Agile methodologies generally promote a project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices that allow for rapid delivery of high-quality software,

Definition of Agile From Wikipedia: Agile methodologies generally promote a project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices that allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals.

Agile Environments Rapid Delivery Time-driven: Release what's done High number of changes and frequent QA Functionality from the beginning Prepare not Predict

What a DBA does, part 1 Defines architecture Schema design and implementation Database Configuration

What a DBA does, part 2 Database Security Backup and Recovery Data integrity

What a DBA does, part 3 Developer support Tuning and query optimization May have QA duties

An Agile Database System Frequent change, little downtime Rolling implementations, fallbacks Requirements change often, unpredictably Well documented, has change management

Supporting Rapid Change Adaptive vs. Predictive Containment Contingencies

Online Operations In MySQL Adding/dropping tables Adding/dropping databases Dynamic global variables

Online Operations in 5.1 Adding values at end of ENUM/SET Column rename Column default value change Starting and stopping logging

Frequent Production Changes What is the impact? Can the code handle it? New fields, tables, views naming conventions, plans

Frequent Production Changes Cache changes / invalidations Data amount changes optimization Catch changes done "out of process"

Frequent Production Changes Easily create new instances How do you rollback? What is your DR plan?

Master/Slave Replication Promotion procedures Rolling implementations Slave cold cache Does not scale writes

Master/Master Replication Does not scale writes App needs to handle live traffic switches Insert Buffer Merges sql_log_bin=0 Changing server-ids

Data Synchronization Non deterministic changes Statement based vs. Row based Keep an eye on drift mk-table-checksum

Splitting Data

Vertically Splitting Data

Horizontally Splitting Data

Splitting Data Data design Code design Upgrade by sections

Prepare, Not Predict Avoid generic fields Flexible datatypes/sizing Revisit schema, query plans and indexing

Prepare, Not Predict Defragment!!! Avoid/revisit index hints and other hacks Know what queries you are running (mk-query-digest) Plan for data management

Finding Problems Query/database errors Proactively monitor queries with mk-query-digest Slow query log aggregation/review

Finding Problems Application debug mode Constant feedback to development Monitor for unplanned schema changes

Testing/QA Do not have the same problem twice Performance Testing Schema diff/storage/reversion Release notes

People Skills Be a part of the full lifecycle: design develop test implement Set and meet expectations encourage discipline

People Skills Encourage communication and trust Make others want to come to you for review/questions Be efficient

Maatkit Query Digest Output (1) # main: Getting a dbh from processlist for --processlist # 230ms user time, 20ms system time, 14.94M rss, M vsz # Overall: 95 total, 34 unique, 8.64 QPS, 2.08x concurrency ______________ # total min max avg 95% stddev median # Exec time 23s 102ms 4s 241ms 640ms 67ms 105ms # Lock time # Time range to # Query 1: 0 QPS, 0x concurrency, ID 0x11B5A1D8DF88E882 at byte 0 ________ # pct total min max avg 95% stddev median # Count 2 2 # Exec time 25 6s 2s 4s 3s 4s 2s 3s # Lock time # Users xxxxxx # Databases 1 xxxxxxxxx # Time range to # Query_time distribution # 10ms # 100ms # 1s ################################################################ # 10s+

Maatkit Query Digest Output (2) # Tables # SHOW TABLE STATUS FROM `break_production` LIKE 'videos'\G # SHOW CREATE TABLE `break_production`.`videos`\G # SHOW TABLE STATUS FROM `break_production` LIKE 'approvals'\G # SHOW CREATE TABLE `break_production`.`approvals`\G # SHOW TABLE STATUS FROM `break_production` LIKE 'feedings'\G # SHOW CREATE TABLE `break_production`.`feedings`\G # SHOW TABLE STATUS FROM `break_production` LIKE 'feeds'\G # SHOW CREATE TABLE `break_production`.`feeds`\G # SHOW TABLE STATUS FROM `break_production` LIKE 'customer_content_providers'\G # SHOW CREATE TABLE `break_production`.`customer_content_providers`\G # EXPLAIN SELECT videos.* FROM `videos` INNER JOIN approvals ON videos.id=approvals.video_id INNER JOIN feedings on videos.id=feedings.video_id INNER JOIN feeds on feeds.id=feedings.feed_id INNER JOIN customer_content_providers ON feeds.content_provider_id=customer_content_providers.content_provider_id WHERE (feeds.code='all_videos' AND approvals.status = 1 AND videos.transcoding_status = 1 AND customer_content_providers.customer_id=31 AND videos.publicated_at ' :00:42')) ORDER BY publicated_at desc LIMIT 10, 5\G

Maatkit Query Digest Output (3) (taken from maatkit online docs) # Review information # comments: really bad IN() subquery, fix soon! # first_seen: :48:57 # jira_ticket: 1933 # last_seen: :49:07 # priority: high # reviewed_by: xaprb # reviewed_on: :03:11

Thank you! Questions Comments Feedback Laine - Sheeri -