- th-koeln.deblogs.gm.fh-koeln.de/faeskorn/files/2013/06/kisslng_oracle_times... · oracle...
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.