We Have Found Nirvana with Online Dump and Load (224)

Slides:



Advertisements
Similar presentations
B3: Putting OpenEdge Auditing to Work: Dump and Load with (Almost) No Downtime David EDDY Senior Solution Consultant.
Advertisements

DB-03: A Tour of the OpenEdge™ RDBMS Storage Architecture Richard Banville Technical Fellow.
1 PUG Challenge Americas 2014 Click to edit Master title style PUG Challenge EMEA 2014 – Dusseldorf, Germany Tales from the Audit Trails Presented by:
9 Copyright © 2004, Oracle. All rights reserved. Managing Data.
1 PUG Challenge EU 2014 Click to edit Master title style PUG Challenge EMEA 2014 – Dusseldorf, Germany Common Database Problems Common Database Solutions.
DB-14: Tales of the Bunker Gus Björklund, Progress Software Corporation John Harlow, Bravepoint, Inc. Dan Foreman, Bravepoint, Inc. Rich Banville,
A Guide to SQL, Seventh Edition. Objectives Create a new table from an existing table Change data using the UPDATE command Add new data using the INSERT.
National Manager Database Services
New Generation of OpenEdge ® RDBMS Advanced Storage Architecture II Tomáš Kučera Principal Solution Engineer / EMEA Power Team.
MOVE-4: Upgrading Your Database to OpenEdge® 10 Gus Björklund Wizard, Vice President Technology.
Replication with MySQL 5.1 Ligaya Turmelle Senior Technical Support Engineer - MySQL
Database Storage Considerations Adam Backman White Star Software DB-05:
© 2015 Progress Software Corporation. 1 abstract To paraphrase Benjamin Disraeli, there are lies, damned lies and benchmarks. Your intrepid band of benchmarkers.
Sofia, Bulgaria | 9-10 October SQL Server 2005 High Availability for developers Vladimir Tchalkov Crossroad Ltd. Vladimir Tchalkov Crossroad Ltd.
Strength. Strategy. Stability.. Progress Performance Monitoring and Tuning Dan Foreman Progress Expert BravePoint BravePoint
Extents, segments and blocks in detail. Database structure Database Table spaces Segment Extent Oracle block O/S block Data file logical physical.
A first look at table partitioning PUG Challenge Americas Richard Banville & Havard Danielsen OpenEdge Development June 9, 2014.
Case Study ProsperaSoft’s global sourcing model gives the maximum benefit to customers in terms of cost savings, improved quality, access to highly talented.
The protection of the DB against intentional or unintentional threats using computer-based or non- computer-based controls. Database Security – Part 2.
OPS-1: DBA How Healthy is Your Database Today? Libor LaubacherRuanne Cluer Principal Tech Support Engineer.
5 Copyright © 2005, Oracle. All rights reserved. Managing Database Storage Structures.
IT Database Administration Section 09. Backup and Recovery Backup: The available options Full Consistent (cold) Backup Database shutdown, all files.
D Copyright © Oracle Corporation, All rights reserved. Loading Data into a Database.
Common Database Problems Common Database Solutions Mike Furgal Managed Database Service EMEA PUG Challenge 2015, Copenhagen, Denmark 4 – 6 November, 2015.
© 2015 Progress Software Corporation. 1 abstract Your intrepid band of benchmarkers returns once more, with the results of testing a recent release of.
1 Overcoming your Reporting and Replication Hurdles Mike Furgal Director – Managed Database Services BravePoint.
Using Progress® Analytical Tools Adam Backman White Star Software DONE-05:
A Guide to SQL, Eighth Edition Chapter Six Updating Data.
A Guide to MySQL 6. 2 Objectives Create a new table from an existing table Change data using the UPDATE command Add new data using the INSERT command.
Common Database Problems Common Database Solutions Mike Furgal PROGRESS Bravepoint – Database Services.
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.
SQL Basics Review Reviewing what we’ve learned so far…….
11 Copyright © 2009, Oracle. All rights reserved. Enhancing ETL Performance.
Tales of the Secret Bunker 2016 (231) Dump and Load Edition Mike Furgal – Director MDBA and Pro2 Services Gus Bjorklund - Lackey.
James A. Senn’s Information Technology, 3rd Edition
Platform and Data Migration With Little Downtime
Partitioning & Creating Hardware Tablespaces for Performance

Fundamentals of DBMS Notes-1.
Table Partitioning Workshop Presenter: Richard Shulman
Introduction to OpenEdge Change Data Capture
Understanding Data Storage
Compression and Storage Optimization IDS xC4 Kevin Cherkauer
Database structure and space Management
How Social is your data Fundamentals on database storage
Physical Database Design and Performance
Mike Furgal Director – DB and Pro2 Services March 20th, 2017
Resumable Online Index Rebuild (ROIR) in SQL 2017 & SQL DB
A Technical Overview of Microsoft® SQL Server™ 2005 High Availability Beta 2 Matthew Stephen IT Pro Evangelist (SQL Server)
Oracle 10g Database Administrator: Implementation and Administration
Walking Through A Database Health Check
Dumps
Instant Add Columns in MySQL
SUE WILLIS, EXECUTIVE DIRECTOR BUDGET AND FINANCE, WWCC
OPS-8: Effective OpenEdge® Database Configuration
Selected Topics: External Sorting, Join Algorithms, …
In Memory OLTP Not Just for OLTP.
Database Internals: How Indexes Work
Minimize Unplanned Downtime and Data Loss with OpenEdge
Why Background Processing?
Implementation of Relational Operations
Lecture 13: Query Execution
Leave the driving to Us with the Progress Managed Database Service
Performing Database Recovery
Indexing 4/11/2019.
OPS-14: Effective OpenEdge® Database Configuration
In Memory OLTP Not Just for OLTP.
Change Tracking Live Data Warehouse
Operating Systems: Internals and Design Principles, 6/E
Professional Services Tools Library (PSTL)
Presentation transcript:

We Have Found Nirvana with Online Dump and Load (224) Mike Furgal Director Database and Pro2 Services June 28th, 2016 Progress

This session will describe the process of using Table Partitioning to be able to dump and load a table with little to no interruption to the application or their users.

There will also be a Demo

Why Dump and Load Type II storage format has lessened the need to dump and load But did not get rid of it Recommendation is to dump and load every 3 to 5 years Or when you need it 3 Types Fragmentation Record Fragmentation Physical Table Fragmentation Logical Table Fragmentation Type II storage eliminates Physical Table Fragmentation Type II storage may help Record Fragmentation Type II storage does little for Logical Table Fragmentation

Database Blocks in a Type II cluster Index Leaf Block Index Keys Local Scatter K1 K2 K3 K4 K5 K6 K7 K8 Database Blocks in a Type II cluster

Index is fastest when: Index order matches storage order

Database Blocks in a Type II cluster Index Leaf Block Index Keys Local Scatter K1 K2 K3 K4 K5 K6 K7 K8 Database Blocks in a Type II cluster

This is a 4x performance improvement for Record Reads Scatter Matters Dump Test Data Dump Time Logical Scattered Database where > 10% of the rows are not contiguous 44 Minutes, 52 Seconds No Logical Scatter (index matches storage order) 10 Minutes, 17 Seconds This is a 4x performance improvement for Record Reads

Periodocially Dump and Load to maintain the best performance So what can you do? Periodocially Dump and Load to maintain the best performance

Binary dump and load requires downtime But: Binary dump and load requires downtime maybe a whole day

Binary dump and load requires downtime maybe a whole day

You can do it with only a minute or three of downtime

The secret Use Table Partitioning to move data between storage areas while the application is running. This essentially performs a dump and load.

Add an integer field with initial value 0 Details Add an integer field with initial value 0 Add an index on this new field Enable Table Partitioning on the database Make a list partition on this field Value of 0 is in the current storage area Value of 1 is in a different storage area Run a program to change all the values of the new field to 1 to migratte the data

Demo Create a demo database Add 1,000,000 rows to the database Make it fragmented Add an integer field “myarea” Add an index to myarea Enable Table Partitioning Run an application Move the data Check the results

set schema 'pub’; alter table pub set schema 'pub’; alter table pub.customer partition by list myarea using table area "Customer/Order Area” ( partition "Initial" values in (0) using table area "Customer/Order Area” ) using index "myarea"; commit; alter table pub.customer add partition "newpartition" values in (1) using table area "Newcust"; commit; quit;

DEMO

TA-DA! But wait… There’s more

Move was done with no wait time and 1,000 rows per transaction ATM Benchmark Account Table 240,000,000 Rows Database Size 35 GB Build Time 3 Hours, 15 Minutes No partitioning 3,329 TPS With paritioning 3,307 TPS While “table move” running 2,607 TPS (21% performance loss) Table Move Time 8 Hours, 30 Minutes After “table move” complete 3,634 TPS (9% performance gain) Move was done with no wait time and 1,000 rows per transaction

Does the table already need to be in Type 2 Storage to do this? YES! Table Partitioning requires the tables being partitioned to be in Type 2 format

Do I need to recompile the application after I add the field and table? No You can add the field and index and since the application is not using it, it does not need to be recompiled YMMV

Can I control which index is used for the table move? Yes! This is the best part. Since you are writing the program to move the data, you can do it anyway you want

def var n as integer no-undo. find first customer. mainloop: do while (true) transaction: do n = 1 to 1000: if not available (customer) then leave mainloop. customer.myarea = 1. find next customer. end.

How can I tell if all the data is moved? Use the proutil db -C partitionmanage view table customer status command

Can I pause it? Can I abort it? Can I restart it? YES YES YES

Can I Multi Thread the move? Yes, you have total control, but be aware of the impact to the production environment

What is the impact to BI and AI Large – Each row is moved, then the index entry is updated. You get to control the transaction size for BI growth. You have no control over AI growth.

Do I need to Rebaseline OE Replication once it is complete?

Can dump and load without downtime PROS CONS Can dump and load without downtime Can control how much impact the process will have on production Can control how much to do at any time Has little to no impact on the running production system Need to add an index which can be time consuming The result will have 2 large storage areas The old area where the data came from and the new one where it now resides

Online dump and load exists! It requires Table Partitioning Summary Online dump and load exists! It requires Table Partitioning Do this in a test environment first Make sure you get it right Understand the duration and performance impact