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

Post on 02-Aug-2018

227 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

<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

Agenda

• In-Memory Grid Computing

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

• Oracle Coherence Data Grid

Ü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)

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

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

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

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

Agenda

• In-Memory Grid Computing

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

• Oracle Coherence Data Grid

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

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

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

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

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

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

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

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

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)

Unterschied zur Oracle Datenbank

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

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

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

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

In-MemoryDatabase CacheDatabase Cache

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

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

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

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

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

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

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)

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

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

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

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

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

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

Agenda

• In-Memory Grid Computing

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

• Oracle Coherence Data Grid

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)

Warteschlange am Flughafen (Analogie)

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.

Ein “Mitarbeiter“

Vier “Mitarbeiter“

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)

• 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

Coherence for .NET

coherence-net-3.7.1.0b27698.zip

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

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

• 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

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

Begrifflichkeiten

• Jeder Knoten hat alle Informationen

Cache Typen – Replicated Cache

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

Cache Typen – Partitioned Cache

• 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

• Kombiniert Local Cache mit Distributed Cache

Cache Typen – Near Cache

• 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

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

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

• Oder in coherence-tangosol-override*.xml

Cache Konfiguration

• 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

• 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

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

Exkurs Serialisierung – Portable ObjectFormat

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”

Einen Cluster verlassen

• Verlässt den aktuellen Cluster

• shutdown blockt bis Daten “sicher”

CacheFactory.shutdown();

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

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

Ü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) {

}

});

• 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

Coherence@Nike+ platform

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

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.

top related