- th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... · oracle...

67
<Insert Picture Here> Oracle In-Memory Techniken: TimesTen In-Memory Database & Coherence Data Grid Markus Kißling Business Unit Server Technologies - PCM ORACLE Deutschland B.V. & Co. KG

Upload: dinhkhanh

Post on 02-Aug-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

<Insert Picture Here>

Oracle In-Memory Techniken:TimesTen In-Memory Database & Coherence Data GridMarkus KißlingBusiness Unit Server Technologies - PCMORACLE Deutschland B.V. & Co. KG

Page 2: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Agenda

• In-Memory Grid Computing

• Oracle TimesTen In-Memory DB / In-Memory DB Cache

• Oracle Coherence Data Grid

Page 3: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Übersicht In-Memory Techniken

Database BufferDefault CacheKeep Cache

Recycle CacheLRU-AlgorithmusResult

CacheShared Pool oder Client

Transparent für Anwendungen

Coherence Data Grid(Middle-tier)

Object Cache / Data Grid für Anwendungen

“In-Memory”

Exadata X3Hybrid Columnar Compression

Smart ScanStorage Index

Smart Flash Cache (Read/Write)

Smart Flash Logging(Redo-Write)

Memory optimierendeTechnikenCompressionPartitioning

ParallelisierungOLAP

TimesTen IMDB (Standalone)

In-Memory DatabaseCache (Middle-tier)Kürzeste Antwortzeiten

Real-TimeOracle DB konform

Flash Cache

Data Buffer Erweiterung2nd level CacheAuch für Datafiles

“In-Memory” Techniken der Datenbank

(Redo-Write)

Page 4: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Oracle Datenbank ArchitekturEin Auschnitt

System Global AreaBuffer Cache*) Log BufferShared SQL

Oracle InstanceOracle Instance

DispatcherProcesses

SMON

RECO

PMON

DBWR QueryServers LGWR

Datenbank-Dateien

SharedServers

DedicatedServer

Kontrolldateien Redolog-Dateien

*) Inkl. Default-, Keep- und Recycle-Cache

Page 5: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Exadata In-Memory DatabaseBest of Disk, Flash, Memory in One Solution

• All Data stored on disk

Technology Units Size Throughput

Disks 168 504 TB 25 GB/sec

Flash 56 PCI Cards 22.4 TB 75 GB/sec

DRAM 256 DIMM 4 TB 200 GB/sec

• All Data stored on disk

• Warm data cached in flash– 4x Bandwidth, 20x IOs/sec– Much faster recovery from crash

• Hot data cached in DRAM– Effectively Infinite IOs/sec– 2.5x Bandwidth of Flash

• Note there is no 100x DRAM speedup in Exadata• Flash and Disk much faster than typical systemsCost of Disk

IOs of FlashSpeed of DRAM

Cost of DiskIOs of FlashSpeed of DRAM

Page 6: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

In-Memory und Real-Time – ein Gespann

Autorisierung,Online Abrechnung,Lokations-basierte

Dienste

Real-Time Analytics -Interaktive DashboardsData Mart, Scorecard

eCommerce,Personalisierung,Real-Time Ad

Serving

Markt Daten,Marktereignisse,

Auftragszusammenführung,Trading

Real-Time ApplikationenInstantly Responsive / Highly Scalable / Always-On

SchlüsseltechnologienSchlüsseltechnologien

Mainstream 64-bitProzessoren

Genügend RAMSchnelleNetzwerke

Page 7: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Applikations-AntwortzeitenWarum sind diese entscheidend?

• Service Level Agreements (SLA) nicht eingehalten• Aufgrund hoher Antwortzeiten

• Bestimmt Mitarbeiterproduktivität und Kundenzu-friedenheit

• Kundenabwägungen• Kundenabwägungen• Mitbewerb liefert bessere Antwortzeiten

• Unternehmensziele nicht erreicht und abnehmende Profitabilität• Auswirkungen auf das Geschäftsergebnis

Page 8: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Agenda

• In-Memory Grid Computing

• Oracle TimesTen In-Memory DB / In-Memory DB Cache

• Oracle Coherence Data Grid

Page 9: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Antwortzeiten von Anwendungen

Anforderungen an die Latenz

9 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

• Anforderungen definierren

• Diverse Lösungen evaluieren

• *) Applikationsabhängig

L A T E N C Y L A T E N C Y

Slower Faster

Page 10: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Entwicklung der TimesTen In-Memory DB

LOBsCache Advisor

In-Memory AnalyticsColumnar Compression

Parallel ReplicationODP.NET Support

Cache Grid for Scale OutOracle Clusterware Integration

2011

2009

2010

Oracle Clusterware IntegrationPL/SQL Support

Oracle Call Interface SupportOEM & SQLDeveloper Integration

Oracle Database Data Types SupportNational Language Support

Integration with Oracle RACMid-tier Cache for Oracle DB

Online UpgradesHigh Availability

1st Commercial In-Memory RDBMS

1998

2000

2005

2007

Page 11: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Microsecond Response Time

7.0

Oracle TimesTen In-Memory Database 11.2.2.0 - Intel Xeon 5670 2.93Ghz, 2 CPUs, 6 cores/CPU - Oracle Linux 5.6

1.78

Page 12: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

2,000,000

2,500,000

3,000,000

3,500,000

4,000,000

4,500,000

1,550,766

2,155,411

2,890,719

3,553,895

4,144,896Transactions Per Second

Massive Read Throughput

Over 4.14M Reads per Sec

0

500,000

1,000,000

1,500,000

2,000,000

1 2 4 6 8 10 12

560,212792,858

1,550,766

Transactions Per Second

Number of Concurrent Processes Oracle TimesTen In-Memory Database 11.2.2.0 - Intel Xeon 5670 2.93Ghz, 2 CPUs, 6 cores/CPU - Oracle Linux 5.6

Page 13: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Blazing Update Throughput

300,000

400,000

500,000

600,000

700,000

350,805

467,043

620,576646,676

Transactions Per Second

647K Updates per Sec

0

100,000

200,000

300,000

1 2 4 6 8 12

141,892

210,395

Transactions Per Second

Concurrent Update ProcessesOracle TimesTen In-Memory Database 11.2.2.0 - Intel Xeon 5670 2.93Ghz, 2 CPUs, 6 cores/CPU - Oracle Linux 5.6

Page 14: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Anwendungsszenarien

• Sehr Hohe Transaktionslast• United States Postal Service: 33000 Filialen 275M Txs/15h

• Ericsson: Abrechnungssystem für Mobiltelefone

• Monitoringsystem für Energieunternehmen mit bis zu 2167 Messages/sec, die es zu verarbeiten gilt

• Service Level Agreement – Konsistentes AntwortzeitverhaltenAntwortzeitverhalten• Bank of America: Wertpapierhandelssystem

• Deutsche Börse: Xetra Vorsystem – 80ms SLA (Order-Routing)

• Real-Time Szenarien mit Antwortzeiten in Mikrosekunden• Reisereservierungssystem und Ticket-Suche

Page 15: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Eine Memory-optimierte Datenbank

• Real-Time Applikationen erfordern kürzeste Antwortzeiten

• TimesTen hält die Daten dicht an der Applikation

• Kürzere Netzwerklatenzzeiten

• Weniger physischer I/O zur Beschaffung der DatenApplication Application Application

Telco Services

Financial ServicesCRM, Portal,

SaaS,

Customer-facing

Applications

Real-Time

BAM & BI

• Vollständiges relationales DBMS

• Anbindung über ODBC, JDBC oder OCI

• Bedienung mit Standard-SQL

• Reduzierung der Antwortzeiten

Application Application Application

Page 16: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

TimesTen In-Memory Database ist schnell

• TT läuft idealerweise auf dem Rechner des Application Server

• In-Memory optimiert

– Datenbank komplett im Shared Memory

– Zugriffsmethoden dafür optimiert

Direct-Linked Application

TimesTen Libraries

Client-Server Application

TimesTen Client Lib

Client/Server

JDBC / ODBC / ADO.NET / OCI / PLSQL

• Direct-Link für ideale Performance

– Shared Memory hängt am Applikationsprozess

– Kein Netzwerk Overhead

– Client-Server-Anbindung zur Admin möglich (z.B. SQL Developer)

Memory-Resident Database

Checkpoint Files

Transaction Log Files

Fast data access

Page 17: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

TimesTen auf einen Blick

• TimesTen In-Memory Datenbank• Gesamte Datenbank ist komplett im Hauptspeicher

• Datenbank-Design speziell auf Memory Layout abgestimmt

• Weniger Strukturen, weniger Prozesse – weniger Overhead

• Direkterer Zugriff auf die Daten

• Eine Anwendung kann direkt mit TimesTen gelinkt werden• Eine Anwendung kann direkt mit TimesTen gelinkt werden• Datenbank-Operationen werden aus dem Adressraum des Anwendungsprozesses heraus ausgeführt

• Kein Overhead für Netzwerk und IPC (Inter Process Communication)

Page 18: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Unterschied zur Oracle Datenbank

���� ca. 1/10 der zu durchlaufenden Codemenge

Page 19: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

TimesTen: Architektur

Serverdaemon

In-Memory

Client/ServerApplicationor Tool

Tier Server Platform

Network

Replication agent(s)

ApplicationCode

TimesTen

Admin/Utility programs

Serverproxies

Cacheagent(s)

OracleRDBMS

Application

TT Client

In-MemoryDatabase(s)

Application-Tier Server Platform

TimesTen shared libraries

TimesTenData Mgr Library

ApplicationPrograms

Data Store subdaemon(s)

Log files

Checkpoint files

TimesTen daemon

Data Tables, Indexes,

System Tables

Locks, Cursors,

Compiled Commands,

Temp Indexes

Log Buffer

Data Tables, Indexes,

System Tables

Locks, Cursors,

Compiled Commands,

Temp Indexes

Log Buffer

PL/SQL segment

Page 20: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

TimesTen Oracle

Instance = TimesTen Main Daemon n/a

DataStore: Einer oder mehrere unter gleicher Instanz mit eigenem Sub Daemon

Database/Instance

Sys.odbc.ini Init.ora

TimesTen Server Process Listener

Checkpoint Files: Dirty Blocks aus Datafiles: DBWR Process schreibt Dirty

TimesTen im Vergleich zur Oracle DB

Checkpoint Files: Dirty Blocks aus Memory in Dateien schreiben mit Checkpointer Thread

Datafiles: DBWR Process schreibt Dirty Blocks

Transaction Logs: alle Transaktionsdaten enthalten seit dem letzten Checkpoint. Werden nach jedem CP gelöscht

Redologs/Archivelogs: alle Transaktionsdaten enthalten, werden aber nicht automatisch gelöscht

ttisqlOracle SQL Developer

sqlplusOracle SQL Developer

Page 21: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Replikation von TimesTen Datenbanken

Netzwerk

CKPT

LOG

Applikation

CKPT

LOG

Applikation

Netzwerk

• Replikation von TimesTen Datenbanken wird primär alsHochverfügbarkeits-Lösung eingesetzt

• Mögliche Konfigurationen als• Active-Active / Active-Standby• Master-Subscriber• Uni- und bidirektional

Netzwerk

Page 22: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

In-MemoryDatabase CacheDatabase Cache

Page 23: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Zentrale Daten aus der Oracle Datenbank

Netzwerk

Netzwerk

Applikation ApplikationApplikationApplikation

• Daten aus der Oracle Datenbank nutzen• Daten werden initial in TimesTen geladen

• Änderungen lassen sich in die Oracle Datenbank zurückschreiben (synchron/asynchron oder über Cache Write-Through Mechanismus)

� Daten aus einer zentralen EnterpriseDatenbank für schnellen Zugriff bereitstellen

Netzwerk

DB-Instanz

Page 24: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

TimesTen Cache Connect

• Tabellen aus der Oracle Datenbank oder Teile davon werden in TimesTen als sog. “Cache Groups” geladen

• Cache Groups lassen sich für lesenden als auch schreibenden Zugriff konfigurieren

Netzwerk

Applikation

CKPT

LOG

• Daten werden in regelmäßigen Abständen automatisch synchronisiert

• Cache Group Daten sind auch dann verfügbar, wenn die Verbindung zur Oracle Datenbank zeitweise nicht besteht

Netzwerk

DB-Instanz

Page 25: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Oracle In-Memory Database CacheTelco ServicesFinancial Services

Real-Time Analytics –Dashboard, Scorecard

Data MarteCommerce,Personalization

Application

ApplicationApplication

• Application-tier In-memory RDBMS (Cache)

• Teil des Anwendungsprozeßes• Standard SQL and PL/SQL• Für Oracle Datenbank Tabellen• Ein Read-Write Cache

• der dynamisch oder statisch sein

IMDB Cache GridIMDB Cache Grid

• der dynamisch oder statisch seinkann

• und eine automatischeSynchronization ermöglicht

• Scales up und Scales out

• Eingebaute Hochverfügbarkeit

Page 26: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

In-Memory Database Cache• Cache Gruppen flexibel konfigurierenTransaktionen der Anwendung Cache Gruppen

• Cache Gruppen beschreiben die Daten imOracle Database Cache

• Sammlung von Tabellen, die zueinander in Beziehung stehen (über Fremdschlüssel)– Alle oder ein Subset von Zeilen und Spalten– Werden mittels SQL-Klausel eingerichtet

CREATE CACHE GROUP name

Automatische DatenSynchronization

CREATE CACHE GROUP name

FROM owner.tab1 (col1, col2),

owner.tab2 (col1, col4)

WHERE <predicate>

• Cache Tabellen sind in TimesTen normaleTabellen

– Joins/Search, Insert/Update/Delete

Page 27: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

In-Memory Database Caching

Read-Write Caching• Transaktionen werden im TimesTenCache committet

• Paralleles Write-Through der committeten Transaktionen zur Oracle Datenbank

Data Synchronization

Application Application

Application

Reads/WriteTransaktionen

Reads/WriteTransaktionen

Reads/WriteTransaktionen

Read-only Caching• Transaktionen werden in der Oracle Datenbank committet

• Multi-Stream Refresh der committetenTransaktionen zu TimesTen

AutomatischeDaten-

Synchronization

Page 28: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

In-Memory Database Cache Grid

• Lokation ist transparent

• Cache Daten werden je nachGebrauch verteilt

• Cache-Knoten online anfügen/entfernen

Application

Application

Application

Application

Incremental Scalability

• Scale Out mit Wachstum

• Paralleles Suchen

• Transaktionen sind konsistent

Page 29: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Flexible Caching Optionen

• Read-Write und Read-only• Pre-loading des Caches

• Data Set vorher festlegbar

• Laden des Caches On-Demand

• Data Set nicht vorher festlegbar oder zu groß

• Performance getrieben• Gleiche Anwortzeiten, da Daten optimiert lokal gehalten werden

• Für die Anwendung transparent, da global verteilter Zugriff überalle Knoten möglich ist

• Horizontales Scale-out möglich, um die Gesamtleistung zuerhöhen (Hinzufügen weiterer Knoten)

Page 30: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Real-Time Transactional Replication

• High Performance • synchron / asynchron

• Memory-to-memory Replikation

• Log-Streams parallel übertragen

• Paralleles Apply der Änderungen

High Availability und Disaster RecoveryApplicationTransactions

Active

Application Reads on Hot Standby

Standby

• Paralleles Apply der Änderungenauf Standby und Subscribers

• HA und DR support• Online Upgrades – No Downtime Read-Only Subscribers

- Reader Farm

- Disaster Recovery

SubscriberSubscriber

Subscriber

Page 31: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Read-write und Read-only Caching

• Read-Write Caching• Transaktionen werden parallel vomActive zum Standby übertragen

• Transaktionen werden parallel zurOracle Datenbank übertragen (beiWrite-Through)

• Read-Only Caching• Multi-Stream Refresh von Transaktionen von der Oracle

• Hochverfügbarkeit

Hot Standby available for reads

ApplicationTransactions

Active Standby

Transaktionen von der Oracle Datenbank

• Parallele Replikation der refresh Transaktionen zum Standby

• Anwendungen weiter verfügbar, auchwenn Verbindung zur Oracle DB unterbrochen ist

AutomaticSynchronization

Page 32: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Oracle Maximum Availability Architecture

• TimesTen unterstütztRAC und die synchroneDataGuard Physical Standby-Konfiguration• Failover/Switchover

• Transient Rolling Upgrade

• Automatische Wiederauf-nahme der Datenaktua-

Hot Standby

(Read-Only)

Applikations-

Transaktionen

LOG

Active

In-MemoryCache Tables

LOG

Standby

In-MemoryCache Tables

Real Application Clusters Active Data Guard

Data Guard

nahme der Datenaktua-lisierung von Oracle nachTimesTen

• AutomatischeWiederaufnahme derTransaktionsweitergabe von TimesTen an Oracle

Cache Write-Through

Cache Refresh

Page 33: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

TimesTen Support im SQL Developer

• Bearbeiten von TimesTen-Datenbankobjekten

• Konfiguration des Cachings von OracleTabellen in sog. Cache Groups

• Definition von Cache Groups

• Laden/Refresh von Cache Data

• Entwicklung von PL/SQL Prozeduren/Packages• Entwicklung von PL/SQL Prozeduren/Packages

• Anzeige von SQL Execution Plans

• Aktualisieren von Statistiken

• Verwendung des SQL Worksheet für die Ausführung vonad-hoc Queries oder internenTimesTen Prozeduren

Page 34: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

TimesTen Enterprise Manager PlugIn(Cloud Control)• Monitoring der Key Performance Metrics

• Bestimmen von Schwellwerten für Alerts und Benachrichtigungen

• Standard Reports überTimesTen-Metriken

• Angepasste Reports lassen• Angepasste Reports lassensich per Report Wizarderzeugen

• Geringer Overhead

Page 35: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

TimesTen for Exalytics

Oracle Exalytics – Under the Hood

In-Memory Analytics Software

Memory Optimized Essbase

Adaptive In-Memory Tools

1 TB RAM40 Processing Cores

High Speed Networking

In-Memory Analytics Hardware

Optimized Oracle Business Intelligence Foundation Suite

Page 36: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Agenda

• In-Memory Grid Computing

• Oracle TimesTen In-Memory DB / In-Memory DB Cache

• Oracle Coherence Data Grid

Page 37: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Oracle Coherence vs. Oracle TimesTen

Oracle Coherence Oracle TimesTen

• Objektmodell• Horizontale Skalierung• Programmierung gegen Objekt-API

oder Object/Relational Mapping

• Relationales Modell• Microseconds Latency (Coherence

typischerweise liefert MillisecondsLatency)

• Oracle Database-Kunden möchten die Latency ihrer Applikation reduzieren(TimesTen für performancekritischeDaten (Bereiche) innerhalbDaten (Bereiche) innerhalbbestehender Oracle Database Applikationen einsetzen)

• Kunden können die selben Oracle Schnittstellen verwenden, wie OCI, Pro*C, PL/SQL, .NET (ODP.NET), JDBC

• Kunden suchen nach In-Memory DB (Oracle Coherence ist ein In-Memory Data Grid / Cache, keine Datenbank)

Page 38: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Warteschlange am Flughafen (Analogie)

Page 39: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Definition In-Memory Datagrid

• Ein In-Memory Datagrid ist ein [In-Memory] Datenmanagement-System zum Verwalten von Anwendungsobjekten, welche verteilt genutzt werdenkönnen. Es zeichnet sich durchEs zeichnet sich durch• eine geringe Latenz bei Zugriffen• einen hohen Durchsatz• vorhersehbare Skalierbarkeit• hohe Verfügbarkeit und• ein robustes Verhalten

aus.

Page 40: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Ein “Mitarbeiter“

Page 41: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Vier “Mitarbeiter“

Page 42: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Was ist Oracle Coherence?

• Eine Java Bibliothek:

• ~ 12 MB Download: coherence-java-3.7.0.0b23397.zip

• keine Abhängigkeit zu anderen Bibliotheken, ausser JDK (>= 1.5)

• Java, .NET, C++ Client API (für .NET und C++ zusätzliche Bibliotheken zum(für .NET und C++ zusätzliche Bibliotheken zumDownload)

• Coherence Knoten ist JVM Prozess, gestartet mit notwendigen Coherence Java Bibliothek und Konfigurationsdateien

• Storageknoten können Daten aufnehmen/verwalten, spezielle Serialisierungsmechanismen sind möglich

• Coherence Knoten laufen in Coherence Cluster: dynamische Kapazität, spezielle Protokolle (TCMP)

Page 43: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

• Client (Java, .NET, C++) verbindet sich mit Cluster (wird selbst Teil des Verbunds) und iniitiert CRUD Operationen, Berechnungen, Abfragen

Was ist Oracle Coherence?

Dynamisches Hinzufügen/Wegnehmenvon Knoten

Page 44: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Coherence for .NET

coherence-net-3.7.1.0b27698.zip

Page 45: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Coherence Cluster Consensus

• Coherence Consensus = ein Vertrag zwischen einer Menge von Prozessen über Mitgliedschaft innerhalb des Verbundes zu einer bestimmten Zeit

• Analogie: Telefonkonferenzmodell• ermöglicht transparentes, dynamisches und automatisches Failover/Failback von Services und automatisches Failover/Failback von Services und Daten

• ermöglicht zuverlässiges Partitionieren von Daten und Services

• In-Memory

Page 46: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Coherence Cluster Consensus

• Coherence Consensus basiert auf• Proprietärem Network Stack: TCMP

• TCMP = The Consensus Management Protocol ;-)

• TCMP = Tangosol Coherence Management Protocol

• TCMP• TCMP• Peer-to-Peer Unicast-basiertes Protokoll

• Vollständig asynchron, feste Anzahl von Sockets (2+1) und Threads pro JVM (6+1) – unabhängig von Clustergrösse

• Server Discovery, Cluster Management, Service Provisioning Data Transmission

• Optionale Unterstützung für Multicast

Page 47: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

• Service: • Menge von Threads für dedizierte Aufgabe• Verschiedene Typen, z.B. Connectivity Services, Processing Services, Cache Services

• Cluster: Menge von Services innerhalb eines definierten Verbundes im Netzwerk

• Cache:

Begrifflichkeiten

• Cache:• bildet Schlüssel auf Werte ab• wird mittels Namen referenziert(deshalb interface NamedCache.)

• typischerweise geclustert, d.h. Zugriff von jedem Clustermitglied aus

Page 48: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

• Backing Map: • Datenstruktur eines Storage-Knotens zum Verwalten des Inhalts von Caches

Begrifflichkeiten

Page 49: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

• Jeder Knoten hat alle Informationen

Cache Typen – Replicated Cache

Page 50: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

• = “distributed cache”: partitioniert, Load-Balancing, Lokationstransparenz, Failover

Cache Typen – Partitioned Cache

Page 51: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

• Jeder Knoten hat nur Informationen lokal • Keine geclusterten Services• Implementiert gleiche Standard Collections wie geclusterte Caches

• Wird in Kombination mit geclusterten Services benutzt

Cache Typen – Local Cache

benutzt

Page 52: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

• Kombiniert Local Cache mit Distributed Cache

Cache Typen – Near Cache

Page 53: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

• Coherence benutzt XML File zur Konfiguration der Cache Topologie

• Zwei Abschnitte• Cache Names mit Mapping auf Cache Schemes

• Definition der Cache Schemes

Cache Konfiguration

• Definition der Cache Schemes

• Beim Aufruf von CacheFactory.getCache("name")wird Argument mit Namen im Konfigurationsfile verglichen

Page 54: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

• coherence.jar beinhaltet coherence-cache-config.xml

• Überschreiben mittels:• -Dtangosol.coherence.cacheconfig=my-config.xml

• Oder in coherence-tangosol-override*.xml

Cache Konfiguration

Page 55: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

• coherence.jar beinhaltet coherence-tangosol*.xml

• Überschreiben von Parametern mittels:• Java System Properties

• coherence-tangosol-override*.xml im Classpath vor coherence.jar oder mittels -Dtangosol.coherence.override

• Beispiel: Benutzung von WKAs (Well Known

Cluster Konfiguration

• Beispiel: Benutzung von WKAs (Well Known Adresses) anstelle von Multicast

Page 56: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

• Vergleich• XML

• <date format=“java.util.Date”>2008-07-03</date>

• 47 Zeichen (möglich 94 bytes abhängig vom Encoding)

• Java (raw long)• 64 bits = 8 bytes

Exkurs Serialisierung – Portable ObjectFormat

• Java (java.util.Date mit ObjectOutputStream)• 46 bytes

• In ExternalizableLite (raw long)• 8 bytes

• In POF• 4F 58 1F 70 6C = 5 bytes

Page 57: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

• Eigener Pof Serializer oder Interface com.tangosol.io.pof.PortableObject implementieren:

Exkurs Serialisierung – Portable ObjectFormat

Page 58: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Cluster cluster = CacheFactory.ensureCluster();

Clustering Java Prozesse

• Cluster beitreten oder neuen Cluster formieren

• cluster enthält Information über• Cluster Name

• Members• Members

• Locations

• Processes

• Es gibt keinen “Master Server”

• Es gibt keine “Server Registries”

Page 59: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Einen Cluster verlassen

• Verlässt den aktuellen Cluster

• shutdown blockt bis Daten “sicher”

CacheFactory.shutdown();

Page 60: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Benutzen des Cachesget, put, size & remove

• CacheFactory löst Cache Namen auf (z.B: “mine”) wurde als Cache konfiguriert

• NamedCache liefert Topologie-agnostischen

NamedCache nc = CacheFactory.getCache(“mine”);

Object previous = nc.put(“key”, “hello world”);

Object current = nc.get(“key”);

int size = nc.size();

Object value = nc.remove(“key”);Topologie-agnostischen Zugriff auf Information

• NamedCache

Implementierungen implementieren verschiedene Interfaces:• java.util.Map, Jcache,

ObservableMap*, ConcurrentMap*, QueryMap*, InvocableMap*

Object value = nc.remove(“key”);

Coherence* Extensions

Page 61: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Benutzen des Caches keySet, entrySet, containsKey

• Benutzung eines NamedCache ist analog zu java.util.Map

• Was ist gleich/anders?• Beide nutzen (key,value)

Paare für Einträge

NamedCache nc = CacheFactory.getCache(“mine”);

Set keys = nc.keySet();

Set entries = nc.entrySet();

boolean exists = nc.containsKey(“key”);

Paare für Einträge

• Map Einträge haben kein Ablauf (Expiration)

• Maps sind limitiert durch Heap Space

• Caches sind typischerweise grössen-limitiert (#Einträge oder Speicher)

• Map ist In-Process

Page 62: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Überwachen von Veränderungen ObservableMap

• Überwachungen von Veränderungen in Echtzeit

• Optionen: Benutzung von Filtern und Lite

NamedCache nc = CacheFactory.getCache(“stocks”);

nc.addMapListener(new MapListener() {

public void onInsert(MapEvent mapEvent) {

}

public void onUpdate(MapEvent mapEvent) {

}

von Filtern und Lite Events

• Verschiedene MapListener stehen zur Verfügung:• Abstract, Multiplexing...

public void onDelete(MapEvent mapEvent) {

}

});

Page 63: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

• Oracle Coherence realisiert In-Memory Datagrid, mit• sehr geringe Latenzzeiten und einem hohen Durchsatz

• vorhersehbarer Skalierbarkeit für Lese- als auch Schreibzugriff

• hoher Verfügbarkeit

• keine Single-Point-of-Failures (SPOF)

Zusammenfassung

• schnellem transparentes Failover und Failback

• Zugriff auf In-Memory gehaltenen Daten (Objekte) durch verschiedene Programmiersprachen, wie Java, .Net, und C++

• ...

• Wertschöpfung in neuen und bestehendenArchitekturen

Page 64: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Coherence@Nike+ platform

https://blogs.oracle.com/fusionmiddleware/entry/hasan_session

Page 65: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory

Coherence@Nike+ platform• Nicole Otto, Sr. Director of Consumer Digital Technology discussed the vision of the Nike+ platform, a platform which represents a shift for NIKE from a "product" to a "product +" experience. There are currently nearly 8 million users in the Nike+ system who are using digitally-enabled Nike+ devices. Once data from the Nike+ device is transmitted to Nike+ application, users access the Nike+ website or via the Nike mobile applicatoin, seeing metrics around their daily active lifestyle and even engage in socially compelling experiences to compare, compete or collaborate their data with their friends. Nike expects the number of users to grow significantly this year which will drive an explosion of data and potential new experiences.

• To deal with this challenge, Nike envisioned building a shared platform • To deal with this challenge, Nike envisioned building a shared platform that would drive a consumer-centric model for the company. Nike built this new platform using Oracle Coherence and Oracle Exadata. Using Coherence, Nike built a data grid tier as a distributed cache, thereby provide low-latency access to most recent and relevant data to consumers. Nicole discussed how Nike+ Digital Sports Platform is unique in the way that it utilizes the Coherence Grid. Nike takes advantage of Coherence as a traditional cache using both cache-aside and cache-through patterns. This new tier has enabled Nike to create a horizontally scalable distributed event-driven processing architecture. Current data grid volume is approximately 150,000 request per minute with about 40 million objects at any given time on the grid.

Page 66: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory
Page 67: - th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... ·  Oracle In-Memory Techniken: TimesTen In-Memory