Transcript

1001 Good Reasons to Upgrade

Tom Bascom

Greenfield Technologies

Introduction

Tom Bascom

Greenfield Technologies

http://www.greenfieldtech.com

tom@greenfieldtech

Agenda

History of Progress Releases The Benchmarks Data Summary

Agenda

History of Progress Releases The Benchmarks Data Summary

Just How Old is Version 8?

Or 6 & 7 for that matter? V9 was released when? What else was current way back then?

V6 -- 1990

Fuzzy Checkpoints -spin PF Files

UNIX System V r4 RS 6000 Windows 3.0 MS Sales = $1B 10mhz 286 PS/1: $2000 NEC Laptop: $8500

16mhz 386sx2MB RAM42MB disk(color)

[email protected] launched by Ethan Lish

V7 -- 1992

Jumpstart GUI -mmax Load ‘n Go!

OS/2 2.0 Windows 3.1 SLS Linux distribution 486DX2 25/50mhz 66mhz PowerPC HP 9000 725

50mhz PA RISC16mb RAM, 512MB disk $18k

Thinkpad 700c: $4,35025mhz 486sl4MB RAM120MB disk

[email protected] taken over by Greg Higgins

Approximately 175 subscribers and 10-12 messages/month

V7.3 -- 1995

Persistent Procedures MS Consent Decree Win95 Linux 1.0 (’94 actually) Pentium Pro 200mhz DEC Alpha 300mhz

Peg.com domain registeredApproximately 700 subscribers and 1000 messages/month

Something called “The Web” explodes onto the world…

V8 -- 1996

NT 4 1GB disks start to appear Linux 2.0

User Defined Functions VSTs Variable Block Sizes App Servers WebSpeed Fast Schema Change -zprofile

[email protected] created in May ‘98

V9 -- 1999

Pentium 3 announced Judge Jackson declares

MS is an “abusive monopoly”

Windows 2000 released SCO & IBM start working

on “Monterey” Fujitsu Lifebook: $2,600

333mhz PII64MB RAM6.4GB disk

Storage Areas Publish and Subscribe Dynamic Queries XML SQL-92 Load ‘n Go actually

works

[email protected] created in May ‘98

OpenEdge 10 -- 2004

The SCO Saga P4 Xeon @ 3.0ghz Dell Latitude: $2,500

Pentium M @ 1.2ghz640MB RAM40GB disk

Data Clusters ProDataSet SOAP

PEG has more than 3,000 messages/month and approximately 5,200 subscribers -- they’d all be here but they’ve got important work to do…

DateTime!!!

History Bonus Slides

Moore’s Law Disk Performance

Moore’s LawIn 1965 Gordon Moore famously observed that transistor counts were doubling every two years and predicted that this would continue…

Moore’s Law

Coupled with increases in clock speeds raw compute power per dollar (or euro) raises very quickly…

0

1000

2000

3000

4000

5000

6000

7000

8000

9000

10000

8086 28

6

386

486

Pen

tiu

m

Pen

tiu

m 2

Pen

tiu

m 4

"MIP

S"

(In

tel)

Disk Performance Disk Performance is Complex!

Capacity Increases roughly 100% annually

Bandwidth Increases roughly 40% annually

Access (especially random access!) Increases roughly 8% annually

Disk Performance Non-DBA bias is towards Capacity

(beancounters...) The trade press occasionally pays attention

to Bandwidth. A DBA’s bias is Random Access.

Time to read whole 3.5’’ disk:

Year Size Sequentially Randomly

1990 100MB 4 minutes 1 hour

2000 8GB 12 minutes 46 hours

Hardware Performance Summary Amdahl’s Law! The potential for

performance improvement is limited by the amount of time that the improved component is being used.

Constant Workload: 10x faster CPU + 10% disk = 5x faster system. 50% of potential improvement is lost. 100x faster CPU + 10% disk = 10x faster

system. 90% of potential improvement is lost to disk IO.

Agenda

History of Progress Releases The Benchmarks Data Summary

The Benchmarks

ReadProbe 4glProbe Populate Workload Big Report Dump Load Index Rebuild DB Analysis

Maintenance

Test Platform

“Mid Market” Hardware Dell PowerEdge 6600

4x2Ghz Xeon w/HT 2GB RAM 6 disks

Windows Server 2003 Linux AS 2.1

The Database

Sports2000 schema Randomly generated data Mix of Table & Record sizes Some Scatter

Database AnalysisTable Records Size Min Max Mean FactorBenefits 5000 282.3K 42 73 57 2.5BillTo 200000 32.0M 76 258 167 2.6Bin 50000 2.3M 31 64 48 2.6Customer 100000 27.9M 173 409 292 2.6Department 20 1.0K 36 74 53 1.0Employee 5000 1.1M 153 333 236 3.0Family 15000 914.9K 36 89 62 2.9Feedback 100000 13.9M 72 220 145 3.0InventoryTrans 1000000 80.3M 56 115 84 2.2Invoice 1000000 52.0M 46 55 54 1.9Item 1000000 139.9M 83 210 146 2.1LocalDefault 1000 159.4K 101 230 163 3.2Order 1000000 168.3M 98 263 176 2.0OrderLine 1500000 94.5M 46 81 66 1.7POLine 8000000 505.6M 49 82 66 1.4PurchaseOrder 20000 920.0K 33 61 47 2.7RefCall 9997 917.8K 45 144 94 3.1Salesrep 300 25.3K 52 122 86 3.2ShipTo 500000 88.6M 89 286 185 2.4State 50 3.5K 44 102 70 1.0Supplier 5000 1.0M 121 293 210 3.1SupplierItemXref 1000000 22.8M 20 24 23 1.8TimeSheet 250000 29.7M 63 186 124 2.6Vacation 10000 244.0K 24 25 24 2.1Warehouse 100 16.0K 101 219 163 1.0Subtotals: 15771467 1.2G 20 409 83 2.0

Tuning Parameters

Mostly “Out of the Box” Try not to make this a disk performance test. Basic Tuning

-B -i Simple File Placement

No Heroics

Not Tested

SQL-92 Effects of After Imaging Client/Server Exotic Parameters

Feature Focus Variable Block Sizes

Introduced with v8 1k, 4k & 8k (2k not tested)

Rows Per Block Introduced with v9 32, 64, 256 (1 not tested)

Type 1 vs Type 2 Storage Areas Introduced with OE10 Type 1 = 1 block per cluster Type 2 = 8, 64 & 512 blocks per cluster

Database Configurations

Apples to apples comparisons Version 8, Version 9, OpenEdge 10

1k, 4k, 8k db Blocks 32, 64, & 256 Rows per Block 1, 8, 64 & 512 Blocks per Cluster

48 Comparisons in all

“Issues”

_ActRecord VST is broken in OE10.0a – making some data gathering difficult (but does not impact functionality.)Fixed in 10.0B

9.1d07+ contains many, but not all, OE10 enhancements – which occasionally blurs the distinction between v9 & OE10

Agenda

History of Progress Releases The Benchmarks Data Summary

ReadProbe

Measures the ultimate limit of record read performance under IDEAL conditions (NO disk IO).

You’ll never actually get performance this good.

But you should be able to get close.

ReadProbe -- LinuxReadProbe -- Linux

0

20,000

40,000

60,000

80,000

100,000

120,000

140,000

160,000

180,000

200,000

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49

8.3E

9.1D

9.1D07

10.0A

ReadProbe -- LinuxSingle Session

-60.00%

-40.00%

-20.00%

0.00%

20.00%

40.00%

60.00%

vs 83 vs 91d vs91d07

ReadProbe -- Linux1st 8 Sessions

-60.00%

-40.00%

-20.00%

0.00%

20.00%

40.00%

60.00%

vs 83 vs 91d vs91d07

ReadProbe -- LinuxSessions 26-50

-60.00%

-40.00%

-20.00%

0.00%

20.00%

40.00%

60.00%

vs 83 vs 91d vs91d07

ReadProbe -- WindowsReadProbe -- Windows

0

20,000

40,000

60,000

80,000

100,000

120,000

140,000

160,000

180,000

200,000

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49

8.3E

9.1D

9.1D07

10.0A

ReadProbe -- Windows

Single Session

-60.00%

-40.00%

-20.00%

0.00%

20.00%

40.00%

60.00%

vs 83 vs 91d vs91d07

ReadProbe -- Windows1st 8 Sessions

-60.00%

-40.00%

-20.00%

0.00%

20.00%

40.00%

60.00%

vs 83 vs 91d vs91d07

ReadProbe -- Windows

Sessions 26-50

-60.00%

-40.00%

-20.00%

0.00%

20.00%

40.00%

60.00%

vs 83 vs 91d vs91d07

Results -- ReadProbe v8 is very fast for a single session – which is

important (high profile issues). But v8 gets in trouble with contention quickly. v9 scales better than v8. 9.1d07 acts a lot like OpenEdge 10 on Linux. 9.1d & 9.1d07 act a lot like OE10 on Windows

– OE10 is about 5% faster. Linux is a tad faster than Windows (5 to 10%). Windows has improved a lot since v8.

4glProbe

Ordinary 4gl string manipulation functions Loop constructs

Measure the time required to complete a set of these operations.

4GL Operations

2GHz P4 Xeon 4GL Performance

0

10000

20000

30000

40000

50000

60000

8.3e 9.1a05 9.1d 9.1d07 10.0a

Populate

Randomly fills the database with a configurable number of records.

Target record count is configured per table. One or more simultaneous threads per table. Field data is randomized.

Populate -- Windows

0

1000

2000

3000

4000

5000

6000

7000

80001

,32

,1

1,6

4,1

1,2

56

,1

4,3

2,1

4,6

4,1

4,2

56

,1

8,3

2,1

8,6

4,1

8,2

56

,1

Populate -- Linux

0

1000

2000

3000

4000

5000

6000

7000

80001

,32

,1

1,6

4,1

1,2

56

,1

4,3

2,1

4,6

4,1

4,2

56

,1

8,3

2,1

8,6

4,1

8,2

56

,1

Results – Populate (Insert & Update)

V9 is a big improvement over v8 under Windows. Larger block sizes are A Good Thing with v8 and

Windows – v9 likes them too. More rows per block are A Good Thing – especially

with Windows. OpenEdge 10 is generally better than v8 or v9 – but

in the case of type 1 storage areas the performance gains vs v9 are minimal.

Windows has improved a lot from v8 to OpenEdge 10 (between 20% & 60%).

Workload

Starts X sessions Each session has a tunable target for

Creates, Reads, Updates and Deletes. Each session randomly fulfills that target

much as a “user” would. Time spent working is measured and logged.

Workload 25 -- Linux

0.0000

1.0000

2.0000

3.0000

4.00001

,32

,1

1,6

4,1

1,2

56

,1

4,3

2,1

4,6

4,1

4,2

56

,1

8,3

2,1

8,6

4,1

8,2

56

,1

Workload 100 -- Linux

0.0000

1.0000

2.0000

3.0000

4.00001

,32

,1

1,6

4,1

1,2

56

,1

4,3

2,1

4,6

4,1

4,2

56

,1

8,3

2,1

8,6

4,1

8,2

56

,1

Workload 25 -- Windows

0.0000

1.0000

2.0000

3.0000

4.00001

,32

,1

1,6

4,1

1,2

56

,1

4,3

2,1

4,6

4,1

4,2

56

,1

8,3

2,1

8,6

4,1

8,2

56

,1

Workload 100 -- Windows

0.0000

1.0000

2.0000

3.0000

4.00001

,32

,1

1,6

4,1

1,2

56

,1

4,3

2,1

4,6

4,1

4,2

56

,1

8,3

2,1

8,6

4,1

8,2

56

,1

Results – Workload Progress® version number is dominant.

V8 is best for very light workloads. V9 is worst in almost all cases. OpenEdge 10 does very well with heavier loads.

More rows per block are usually A Good Thing. Type 1 storage areas under OE10 aren’t as good as

Type 2 areas – but they’re (mostly) better than v9 (Type 1).

32 rows per block in a type 1 area is generally asking for trouble.

Type 2 areas are much better in OE10 than in Type 1. Scalability improves as you upgrade from 8 to 9 to

OpenEdge 10.

Big Report

Queries a whole bunch of records in multiple tables.

Big Report -- Linux

0

500

1000

1500

2000

25001

,32

,1

1,6

4,1

1,2

56

,1

4,3

2,1

4,6

4,1

4,2

56

,1

8,3

2,1

8,6

4,1

8,2

56

,1

Big Report -- Windows

0

500

1000

1500

2000

25001

,32

,1

1,6

4,1

1,2

56

,1

4,3

2,1

4,6

4,1

4,2

56

,1

8,3

2,1

8,6

4,1

8,2

56

,1

Results -- Reporting

Windows has improved a lot. Otherwise V9 is the slowest.

OpenEdge 10 Type 1 storage areas are somewhat performance challenged.

Large block, row & cluster sizes are A Good Thing.

It’s easy, and painful (a 30% swing), to shoot yourself in the foot with v9 & OpenEdge 10 – planning and testing pay.

Maintenance

Binary Dump Binary Load Index Rebuild DB Analysis

Maintenance -- Linux

0

500

1000

1500

2000

2500

30001

,32

,1

1,6

4,1

1,2

56

,1

4,3

2,1

4,6

4,1

4,2

56

,1

8,3

2,1

8,6

4,1

8,2

56

,1

Maintenance -- Windows

0

500

1000

1500

2000

2500

30001

,32

,1

1,6

4,1

1,2

56

,1

4,3

2,1

4,6

4,1

4,2

56

,1

8,3

2,1

8,6

4,1

8,2

56

,1

Results -- Maintenance 1k db blocks are a bad idea. 8k blocks @ 32 rpb are a really bad idea. 4k and 8k are generally roughly similar in

performance. OpenEdge Binary Dump can be much faster (60 to

70%) than v8 or v9 if you use 64 or 512 blocks per data cluster.

OpenEdge 10 Binary Load does not like 1k db blocks or 8 block data clusters.

Index Rebuild isn’t much different from 9 to 10. Index Rebuild is about 40% faster from 8 to 10.

Agenda

History of Progress Releases The Benchmarks Data Summary

Upgrade - Myths MYTH: Upgrades require more resources. Truth: Upgrades make better use of your existing

resources.

MYTH: Newer releases are slower than older releases.

Truth: Upgrades perform better on identical hardware.

MYTH: You need to spend the same money for a new server as the old.

Truth: You can get much better performance for much less money.

Upgrade -- Con

Straight “convXY” upgrades may be harmful to performance (especially with 1k blocks).

Conversion with type 1 style areas shows little benefit over v9.

Conversion with type 1 style areas may be a step backwards in some cases.

8.3 was very good and remains very good in its niche.

Upgrade -- Pro

Day-to-day Workload improvements. Maintenance Improvements. Conversion to larger block sizes and row per

block settings can be very beneficial. Conversion to type 2 areas can be very

beneficial. 4gl performance is getting a lot of attention.

The Case For UpgradingLinux

-20.00%

-10.00%

0.00%

10.00%

20.00%

30.00%

40.00%

50.00%

60.00%

70.00%

Populate Work25 Work100 BigRpt Maint

8 -> 9

8 -> 10

9 -> 10

The Case For UpgradingWindows

-20.00%

-10.00%

0.00%

10.00%

20.00%

30.00%

40.00%

50.00%

60.00%

70.00%

Populate Work25 Work100 BigRpt Maint

8 -> 9

8 -> 10

9 -> 10

Wrap-up

Never underestimate the impact of cheap hardware!

As a general rule the db is not your ultimate constraint.

The most advantage comes from leveraging new features.

There is a clear positive trend in the numbers!

?Any Questions

Tom BascomGreenfield [email protected]://www.greenfieldtech.com

Resources

PSDN Whitepaper

http://www.greenfieldtech.com/downloads

http://www.greenfieldtech.com/articles


Top Related