Datenmanagement für SAP Applikationen

advertisement
Datenmanagement für
SAP Applikationen
Rudolf Munz
SAP AG
Agenda
SAP Architecture
Table Buffer
Content Server
liveCache
BI Accelerator
Summary Special Data Containers
Future DBMS Requirements
Summary
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 2
Agenda
SAP Architecture
Table Buffer
Content Server
liveCache
BI Accelerator
Summary Special Data Containers
Future DBMS Requirements
Summary
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 3
1992: SAP Introduces the 3-tier Architecture
Frontend
WAN-enabled, few roundtrips,
data volume < 10 KB
Application
Server
LAN required, many roundtrips,
data volume about 20 KB
Database
Server
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 4
SAP Application Server Scalability
Frontends
Application Server
...
Database Server
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 5
Scalability
...
SAP Philosophies and Successes
First in ’real time’ applications
First in application integration via single shared database
First in Unix and Windows
First in SQL DBMS
First in Graphical User Interfaces
First in Virtual Machine concepts
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 6
for commercial
applications
Size of SAP ERP Data Model (Part of Business Suite ’05)
67.000 tables
100.000.000 rows (initial size)
700.000 columns
57 GB disk footprint (initial size)
10.000 views
270 millions lines of code
13.000 indexes
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 7
Published Results for SD Benchmarks
SD Benchmark (three-tier): Highest number of users
200,000
1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005
180,000
168,300
160,000
140,000
Number of SD Benchmark Users
120,000
100,000
100,000
80,000
60,000
47,528
40,000
19,360
20,000
0
120
300
1,400
14,400
6,030
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 8
26,000
Typical OLTP CPU Load Distribution
Rel. CPU-Usage / Dialog Step
6.00
Platform & Release dependent
5.00
4.00
68%
3.00
82%
79%
2.00
81%
10%
1.00
84%
0.00
8%
8%
FI
9%
9%
SD
7%
7%
14%
11%
PP
MM
SAP Standard Benchmarks
+
= Application Server
= Database Server
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 9
22%
ATO
Agenda
SAP Architecture
Table Buffer
Content Server
liveCache
BI Accelerator
Summary Special Data Containers
Future DBMS Requirements
Summary
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 10
Table Buffer Design Rationale
Optimize read performance of stable or nearly stable data
Granules are tables or primary key ranges
Only primary key or key prefix accesses supported
Stored in shared memory of application server
Replicated in all application servers
No transactional consistency for data in table buffer
Invalidation and refresh of buffered tables and key ranges
Async propagation of changes to other application servers
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 11
Table Buffer in Application Server
Database Server
Application Server
Work
Process
SELECT *
FROM ...
DB
Interface
Table
Buffer
Key
DBMS
SQL Data
Open SQL
SQL Data
Native SQL
Open
SQL
Catalog
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 12
SQL Data
DB
Performance of Table Buffer vs. DBMS (PK Access)
300
Local DBMS
250
200
150
100
50
Table Buffer
ABAP VM
0
µs
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 13
Typical OLTP Traffic Distribution
Database Server
Application Server
Work
Process
SELECT *
FROM ...
DB
Interface
Table
Buffer
Key
DBMS
80%
SQL Data
Native SQL
98%
SQL Data
70% reads
Cache
20%
80% primary key
20% medium complex
30% writes
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 14
2%
Disks
Agenda
SAP Architecture
Table Buffer
Content Server
liveCache
BI Accelerator
Summary Special Data Containers
Future DBMS Requirements
Summary
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 15
Content Server Design Rationale
Documents are attachments to SAP Business Objects
Separation of document content from OLTP data
– Read and write traffic of documents offloaded from OLTP database
– Insert/update/delete of documents not recorded in OLTP database log
– Improved cache utilization in OLTP database server
– Reduced size of OLTP database
– Direct content delivery to SAP Frontend (Viewer)
Application server sessions use two database sessions,
dual session support in database abstraction layer
– OLTP DBMS
– Content Server (based on MaxDB)
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 16
Content Server Architecture
Frontends
Ap plication Server
...
Content Server
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 17
...
...
Database Server
Content Server Consistency
Documents are never updated,
Update = delete + insert
References to documents (DocID) stored in OLTP data
Two-phase commit is avoided by write discipline
1. Insert new document into Content Server and commit
2. Insert or update Business Object in OLTP DBMS and commit
If step 2 succeeds, we are done
– Normal case
If step 1 or 2 fail, garbage in the Content Server may be left
– Exception
– Steps can be repeated
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 18
Agenda
SAP Architecture
Table Buffer
Content Server
liveCache
BI Accelerator
Summary Special Data Containers
Future DBMS Requirements
Summary
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 19
liveCache Features
Main memory-based object management system (OMS)
– Persistent and shared C++ objects
– Favors modeling of tree- or network-like complex object structures
– Mainly used for SAP’s supply chain management (planning & optimization)
Data-intensive application logic is executed as Stored Procedures
– Application coding and data management in same address space
– Navigations on shared data are nearly as fast as on private data
– Navigations are 50 to 100 times faster compared to SQL
Reader isolation with respect to concurrent writers (multi-version read)
Writer isolation with respect to concurrent writers (versioning)
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 20
liveCache = MaxDB + MoreDB
Applications
liveCache Applications
MoreDB
(OMS)
OMS
MaxDB
(SQL)
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 21
liveCache Architecture
Application
Server
ABAP Applications
SQL Packets
liveCache Applications
liveCache
Server
SQL
OMS
Record & Page Manager
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 22
Stored
Procedures
in C++
Object
Management
System
Shared and Private Data in liveCache
Session A
Session B
Session C
Session D
Transient
C++
Objects
Transient
C++
Objects
Transient
C++
Objects
Transient
C++
Objects
Object Cache
Object Cache
Object Cache
Object Cache
Private
Data
(Heap)
Data Cache
Main-memory Database
(Persistent C++ Objects)
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 23
Shared
Data
Navigational Performance (in µs)
SQL Key
SQL Key SP
OMS Key
OMS OID
Object Cache
C++ Pointer
0
50
100
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 24
150
200
250
300
350
400
liveCache Statistics (Customer Scenario)
Database size (in GB)
Transactions / sec
liveCache roundtrips / sec
110
33
1.160
Object reads / sec
223.000
Object writes / sec
114.000
Log in KB / sec
Log in pages /sec
660
82
Average load in a 24x7 environment
Peak load is factor 2 higher
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 25
Agenda
SAP Architecture
Table Buffer
Content Server
liveCache
BI Accelerator
Summary Special Data Containers
Future DBMS Requirements
Summary
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 26
Business Intelligence Waves
Wave 1: Reporting is part of the OLTP system (past)
Unpredictable query load
Reporting on flat OLTP tables
No support of multi-dimensional data, no OLAP, no history
Wave 2: Dedicated Data Warehouse (now)
Separation of OLTP systems and Data Warehouse (DWH)
Periodic extracts of OLTP data to DWH (ETL)
OLAP on multi-dimensional data, history
Wave 3: Realtime Analytics (future)
Separation of OLTP and OLAP systems
Transactional consistency between OLTP and OLAP data
Driver: SOA and BI functionality as part of transactional applications
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 27
BI Accelerator
Query Performance Booster
BI Tools or Applications
Storage
on disk
SAP NetWeaver BI
DBMS
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 28
BI Accelerator
Query processing
in main memory
Column-Wise Storage
OLTP DBMS
store tables row-wise
Row1
Row2
...
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 29
BI Accelerator
stores tables column-wise
Att
1
Col1
Col2
Att
2
Att
2
Data Compression
Column-wise Storage
Dictionary
– Sorted array of all used values
– Values stored with front compression
Column values
– Array of dictionary indexes
– Minimal number of bits used
to represent values
Compression rate
– Factor 3 - 6
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 30
Column Dictionary
ValueID
1
2
…
17
19
Value
IBM
Microsoft
SAP
SAP Press
SAP SI
Column Values
RowID
1
2
3
4
5
ValueID
17
2
7
17
2
Partitioning of Columns into Main Memory of Blades
Columns
Part 1
Part 2
...
FactTable
Table
Fact
Fact
Table
Part 1
Part 2
...
Part N
Part N
Column
Part 1
Columns
Part 2
Columns
Part ...
Columns
Part N
Blade
Server
Blade
Server
Blade
Server
Blade
Server
Column
Storage
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 31
Incremental Data Loads
Queries
Data
Loads
BI Accelerator
Engine
Delta Part
Supports fast loads
Holds data until they are merged
Fast merge
Queries run
against both
parts
Delta Part
Static Part
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 32
Merge of delta part triggered by
Size
Schedule
Manually
Query Execution Times (Sample Queries)
Query
DBMS
(sec)
BI Accelerator
(sec)
Improvement
(factor)
Rows after
filtering
Rows after
aggregation
Query 1
9.1
1.5
6
2 540
10
Query 2
435.3
5.2
84
13 434 508
1 322
Query 3
5.3
1.8
3
283 020
126
Query 4
2.6
2.3
1
96 712
5 771
Query 5
36.3
3.4
11
590 784
27 798
Query 6
46.1
3.2
15
590 784
27 798
Query 7
8.2
4.2
2
59 870
15 803
Query 8
2924.9
1.9
1538
67 318 176
281
Query 9
4015.3
2.0
2008
67 318 176
149
Query 10
516.4
2.3
224
33 801 513
32
Query 11
865.7
2.1
411
33 801 513
32
Query 12
37.5
4.1
9
88 435 773
6 280
Query 13
1.2
1.9
0
348 957
262
Query 14
5.3
2.4
2
348 957
209
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 33
Agenda
SAP Architecture
Table Buffer
Content Server
liveCache
BI Accelerator
Summary Special Data Containers
Future DBMS Requirements
Summary
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 34
Summary: Special Data Containers
OLTP data
Transactional SQL engine
Row-wise storage
SQL DBMS
Additional caching of stable data in main memory of application server
OLAP data
SQL engine without transactions and logging
Column-wise storage
Main memory database
MPP approach (data partitioning into blades)
Objects (C++, Java, ABAP)
Transactional Object Management System
Main memory database
Data-intensive application logic executed as Stored Procedures
Alternative to OLTP data management based on SQL
Documents
Document repository
Documents attached to Business Objects (DocID in OLTP data)
Separation of document and OLTP workload
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 35
Scenario: RFID-Tagged Products in a Supply Chain
Events
Products with an RFID tag are moved in a global supply chain
All movements are detected as an RFID event by RFID sensors
Customer specific RFID tag and event data (e. g. XML)
Extremely high volume of RFIDs and associated RFID events
Customer scenario
– 1KB / event
– 120 TB / year = 337 GB / day = 14 GB / hour = 3.9 MB / sec
(best case, 10x peaks)
Challenging write workload
Challenging read workload with search capabilities on all attributes
Distributed event capturing, storing, and retrieval
Infrastructure to capture, store, and retrieve (RFID) events?
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 36
Agenda
SAP Architecture
Table Buffer
Content Server
liveCache
BI Accelerator
Summary Special Data Containers
Future DBMS Requirements
Summary
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 37
Invisible DBMS
Many DBMS instances in embedded systems
Many DBMS instances in an enterprise IT landscape
– Central administration
– Central user and role management
We will run short of DBAs
– DBA-free operation required
Self-management = self-tuning + self-administration
– Implicit reorganization
– Implicit Update Statistics
– Implicit index tuning
- Determine unused indexes
- Propose / create useful indexes
Workload analysis and adaptation (self-tuning)
– ”Online everything” for automatic configuration changes
– Adapt to new system quotas
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 38
Continuous Availability
High Availability configurations are in place
Protection against unplanned downtimes (hardware, system software, desaster)
Hot-standby with failover from master to slave (OS cluster)
Customers want business continuity
24 x 365 instead of 24 x 7
Applications facing customers or partners
Think of Google, Ebay, Amazon, ... in the consumer space
Continuous Availability addresses planned downtime
Configuration changes (”online everything”)
Patches for the current release (rolling patch services in a cluster)
Upgrades to the next application release (to be solved)
–
–
–
–
Migration to new application coding and an extended persistency layer
Old and new persistency layer run in parallel (during upgrade phase)
Changes get propagated from old to new persistency layer
Application server and DBMS involved
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 39
Unlimited Scalability
Nearly unlimited main memory
Active part of an OLTP database can be kept in main memory
Effects of all open transactions can be kept in main memory
Optimization potential: dedicated main memory data structures vs.
serializable data structures for logging and checkpointing
Nearly unlimited CPU power (multi-cores)
Eliminate reader/writer synchronization (= multi-version concurrency control)
Reduce low-level writer/writer synchronization
–
–
–
–
–
Context switches are expensive and should be avoided
Fast synchronization techniques (compare and swap)
Differentiate between safe and unsafe phases of changes
Differentiate between extensions and structural changes
Look for collision-free algorithms
Cache misses determine CPU performance (level 2 cache vs. main memory)
– Locality of coding (profile-based optimization)
– Locality of main memory data (e. g. for scanning)
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 40
Tenant-aware DBMS
New software delivery model: Software-as-a-Service
Hosted applications for many (small) tenants
Interesting for small and medium enterprises with little IT skills
All tenants run the same application, data are tenant-specific
Data isolation between tenants is a must
DBMS instance per tenant is too expensive (admin and system costs)
Solution 1: Tenant-aware data model
Requires discipline in application development and additional QA efforts
No programming access to the persistency layer by tenants
Solution 2: Tenant-aware DBMS
Implicit tenant-enabling by the DBMS: DBMS virtualization
– Resource sharing for caches, data volumes, log
Each tenants gets an own (virtual) DBMS instance
No changes in the application coding
Allows for tenant-specific extensions
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 41
Agenda
SAP Architecture
Table Buffer
Content Server
liveCache
BI Accelerator
Summary Special Data Containers
Future DBMS Requirements
Summary
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 42
Summary
Specialized data containers for
Table Buffer
Stable OLTP data
Content Server
Documents
liveCache
Objects
BI Accelerator
OLAP data
?
Events
Invisible DBMS
New operational requirements
Continuous Availability
Eliminate DBMS administration
Unlimited Scalability
Always up
Tenant-aware DBMS
Exploit hardware trends
Virtualization at the DBMS level
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 43
Copyright 2007 SAP AG. All Rights Reserved
No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be
changed without prior notice.
Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors.
Microsoft, Windows, Excel, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation.
IBM, DB2, DB2 Universal Database, OS/2, Parallel Sysplex, MVS/ESA, AIX, S/390, AS/400, OS/390, OS/400, iSeries, pSeries, xSeries, zSeries, System i, System i5, System p,
System p5, System x, System z, System z9, z/OS, AFP, Intelligent Miner, WebSphere, Netfinity, Tivoli, Informix, i5/OS, POWER, POWER5, POWER5+, OpenPower and PowerPC are
trademarks or registered trademarks of IBM Corporation.
Adobe, the Adobe logo, Acrobat, PostScript, and Reader are either trademarks or registered trademarks of Adobe Systems Incorporated in the United States and/or other countries.
Oracle is a registered trademark of Oracle Corporation.
UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group.
Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix Systems, Inc.
HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C ®, World Wide Web Consortium, Massachusetts Institute of Technology.
Java is a registered trademark of Sun Microsystems, Inc.
JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape.
MaxDB is a trademark of MySQL AB, Sweden.
SAP, R/3, mySAP, mySAP.com, xApps, xApp, SAP NetWeaver, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered
trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned are the trademarks of their respective companies.
Data contained in this document serves informational purposes only. National product specifications may vary.
The information in this document is proprietary to SAP. No part of this document may be reproduced, copied, or transmitted in any form or for any purpose without the express prior
written permission of SAP AG.
This document is a preliminary version and not subject to your license agreement or any other agreement with SAP. This document contains only intended strategies, developments,
and functionalities of the SAP® product and is not intended to be binding upon SAP to any particular course of business, product strategy, and/or development. Please note that this
document is subject to change and may be changed by SAP at any time without notice.
SAP assumes no responsibility for errors or omissions in this document. SAP does not warrant the accuracy or completeness of the information, text, graphics, links, or other items
contained within this material. This document is provided without a warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability,
fitness for a particular purpose, or non-infringement.
SAP shall have no liability for damages of any kind including without limitation direct, special, indirect, or consequential damages that may result from the use of these materials. This
limitation shall not apply in cases of intent or gross negligence.
The statutory liability for personal injury and defective products is not affected. SAP has no control over the information that you may access through the use of hot links contained in
these materials and does not endorse your use of third-party Web pages nor provide any warranty whatsoever relating to third-party Web pages.
SAP AG 2007, Datenmanagement für SAP Applikationen / Rudolf Munz / 44
Herunterladen