Title: TimesTen Technology For Epoch Well
1TimesTenTechnology For Epoch Well
2TimesTen In-Memory Database History and
Technology Background
3When You Think Database
SQL
Results
RDBMS client/server connectivity NOT fast
enough for a new category of performance-intensive
applications
4RDBMS with Home-Grown Cache
SQL
Results
For very demanding applications Build a
home-grown, application-specific, in-memory
cache.
5Combine the cache and the database into ONE
product
SQL
RDBMS
SQL
Results
Full capabilities of a relational database
Memory-optimized speed latency Optimized for
embedded architecture Persistent, recoverable,
highly available
6History of TimesTen
- Early 1990s Smallbase project at HP Labs
- Embedded into HP Opencall in 1995
- HP Spinoff into TimesTen, Inc. in 1996
- First customer revenue and shipments in 1998
- Profitable and cash-positive before acquisition
- Acquisition by Oracle Corporation in June, 2005
71,500 Customers Run TimesTen
- 7 of the top 9 NEPs build products with
TimesTen - The worlds most popular telecom BILLING
SYSTEMS use TimesTen - 4 of the top 5 WIRELESS OPERATORS in Europe use
TimesTen - The largest CALL CENTERS in the world run on
TimesTen - Over 40 OEM and ISV solutions are built on
TimesTen
In the Enterprise
In Telecom
On Wall Street
In Networks
8Real-Time Program Trading of Equities
Lehman Brothers
Fixed-Income Trading System
Internal Trading Desks( different geographyor
class of instrument )
- TimesTen Usage
- Event capture (trade orders)
- Order processing (trade matching)
- Event publishing (trader alerts and closed
orders) - Performance Metrics
- 1,000 fixed-income trades/hr (30/sec peak)
- 20 trader alerts/sec
- Configuration
- 4-CPU Server (plus hot-standby) per location
- Linux with C applications
- 2 Gigabyte TimesTen
- Value of TimesTen
- Fast order execution
- Trader alerting
Orders, Inquiries, Notifications
Trader Alerts
XLA Application
XLA Application
Closed Order Data
Tibco Messaging
AggregatedReporting
Global Order Repository
9TimesTen In-Memory Database Technology
Introduction
10TimesTen Technology Basics
- High-performance in-memory database software
- Optimized memory layout and algorithms
- Flexible options for data persistence to disk
- Applications access the database via standard
APIs (SQL,ODBC, JDBC) - Protect, Extend, Evolve your existing investment
in RDBMS
TimesTen
Disk Persistence/ Recovery
11How Big a Database Can I Build?
- Database must fit into RAM
- 32-bit operating systems
- 2 GB on most platforms
- 1 GB on Windows and HP
- 64-bit operating systems
- Limit is available RAM
- For larger databases, use TimesTen to cache
Oracle data
One Shared Memory Segment
Disk Persistence
12TimesTen Platforms
- Linux on x86, Opteron (64 bit), EM64T (64),
Itanium (64) - Sun Solaris 8, 9, 10 (32 bit 64 bit)
- HP/UX on PA-RISC and Itanium (3264)
- HP Tru64 (64 bit)
- IBM AIX 5.3 POWER (32 bit and 64 bit)
- Windows 2000, XP, Server 2003 (32 only)
13TimesTen Architecture
14TimesTen Architecture
TimesTen Main Daemon
Directly Connected Applications
TimesTen Subdaemon
TimesTen Subdaemon
TimesTen Subdaemon
TimesTen Subdaemons
Engine (ODBC Driver) Database I/O
Data in Shared Memory
Disk Persistence
15Client/Server Connections to a Data Store
Direct Connect Application
TimesTen Server
Client Application
TimesTen Engine (ODBC Driver)
TimesTen Client Driver(ODBC or JDBC Driver)
TCP/IP
Data Store in Shared Memory
16MicroLogging - Resilience to Application Failures
- TimesTen Daemon monitors application health
- If an application aborts, an in-progress
transaction is rolled back - Database remains fully available
- Shared Memory is NOT corrupted
TimesTen Main Daemon
Directly Connected Applications
17Architecture Comparison
18Why Is TimesTen So Fast?
- TimesTen needs fewer CPU instructions to
accomplish the same work as a disk RDBMS - Physical memory addresses are used inside the
engine - No lookups of logical addresses to physical
addresses - No buffer cache management overhead
19TimesTen Performance
20TimesTen Throughput
12-CPU IBM AIX POWER 1.2 GHz
Sun Solaris 9, 1.6 GHz Sparc, C with ODBC
300,000 Reads Per Second
100,000 Writes Per Second
21Lightning Fast Response
Average Response Times
TimesTen/DataServer 5.1 Sun Solaris 9, 1.6 GHz
Sparc
45
37µs
36µs
40
35
Updatea Record
Inserta Record
30
15µs
25
Microseconds
INSERT
UPDATE
20
Capture or update data in 40 millionths of a
second
15
Retrieve a Record
SELECT
10
5
0
Database Operation
22ODBC, JDBC, Client/Server
100 Read, 4-CPU Xenon x86 3/0 GHz, Linux
4-CPU 2.8 GHz Linux
271,000
Direct
Client/Server
171,000
Transactions Per Second
51,000
35,000
JDBC
ODBC with C or C
23Data Durability Recovery
24ACID Properties
- Full support for transactions (COMMIT/ROLLBACK)
- Row-Level Locking
- Versioning
- Writes do not block reads
- Reads do not block writes
25Durability Disk Storage
Hard Disk
Non-blocking Checkpoint
Datastore.ds0
Datastore.ds1
CALL ttCkpt
TimesTen Subdaemon
Datastore.log1
Datastore.log2
Logging
Datastore.log3
Checkpoints are performed automatically ONLY in
TimesTen 6.0 and above
26Three Logging Types
Dynamically configurable with SQL statements
LOG BUFFER .. Tx ... Tx ...Tx
Hard Disk
TimesTen Data Store
In-Memory Logging
Datastore.ds0
Buffered Logging
LOG BUFFER .. Tx ... Tx ...Tx
TimesTen Data Store
Datastore.ds1
Datastore.log1
Datastore.log2
LOG BUFFER COMMIT COMMIT COMMIT
Datastore.log3
TimesTen Data Store
Durable Commit
27TimesTen Data Store Recovery
Datastore.ds0
Datastore.ds1
Datastore.log1
TimesTen Subdaemon
TimesTen Data Store
Datastore.log2
Datastore.log3
2. Transaction Log Rollforward
28TimesTen Advanced Features and Functionality
29TimesTen APIs
- SQL and Relational at the database core
- No proprietary API
- JDBC driver provided for Java
- ODBC (Open Database Connectivity) provided for C
and other languages - C API (TTClasses) included with TimesTen
- TTClasses calls ODBC underneath
- Compatible with 3rd party ODBC and JDBC tools
30Memory-Optimized Indexes
- Hash Indexes
- Extremely fast exact matches and equi-joins
- Created automatically when a primary key is
specified - T-Tree Indexes
- Memory-optimized index technology
- Use SQL CREATE INDEX like other databases
- Very fast exact matches, range searches
- Cost-Based Optimizer
- Explains and Hints
31Transaction Log Monitoring and Event Notification
(XLA)
- Track changes to tables and materialized views
- Support multiple, concurrent XLA applications
per data store - Maintain log positions via Bookmarks
- Supported with C in TTClasses
- New Java/JMS API in TimesTen 6.0
32Example XLA Applications
- Trigger-like functionality
- Any INSERT, UPDATE, DELETE in the database can be
monitored - For UPDATEs, the old and new copy of the data is
visible - 1000s of transactions per second much faster
than triggers - Custom replication agents
- Replicate data to relational or non-relational
databases - Actions based on events
- When the price of ORCL increases by 1.00, notify
other applications to re-price options - When a new subscriber is added, notify the
billing and provisioning systems
33TimesTen Replication
34TimesTen-to-TimesTen Replication
- Replicate entire databases or individual tables
- Dynamic configuration with SQL
- Automatic recovery and catch-up of down systems
- Asynchronous or synchronous (dynamic
configuration with SQL) - Does not include a cluster manager (no automatic
failover)
Master - Subscriber
Master - Master
N-Way
35Replication How It Works
(7)
(2)
Bookmark
(1)
TimesTen
Log File
Rep. Agent
Data Store
Disk Image
(3)
Ack.
Sender
TCP/IP
(6)
changes
Receiver
(5)
TimesTen
Log File
Rep. Agent
Data Store
Disk Image
(4)
changes
36TimesTen Cache Connect to Oracle
37What you can do with Cache Connect
- Load data from Oracle into TimesTen
- Bulk load with LOAD CACHE GROUP, or
- AUTOREFRESH replication
- Save data from TimesTen to Oracle
- Using a FLUSH CACHE GROUP command in TimesTen
SQL - Once the data is loaded, your application
connects to TimesTen - SQL Operations are executed on TimesTen tables
- Performance is greatly improved
Client
App
ODBC/JDBC
Application Server Tier
Async Writethrough
AUTO- REFRESH
Hot
Data Subset
Database Server Tier
ORACLE
38Web-based GUI Administrator
39Example SQL Statement
CREATE TABLE CMS_FLEET ( CMS_FLEET_TYPE
CHAR(10) NOT NULL, MAX_CREW_CNT
NUMBER(3) NULL, ODS_CREATE_TMSTMP
CHAR(26) NULL, PRIMARY KEY
(CMS_FLEET_TYPE) )
Oracle table schema
CREATE READONLY CACHE GROUP CG_CMS_FLEET
AUTOREFRESH MODE INCREMENTAL INTERVAL 60 SECONDS
FROM SCOTT.CMS_FLEET ( CMS_FLEET_TYPE
CHAR(10) NOT NULL, MAX_CREW_CNT
SMALLINT, PRIMARY KEY (CMS_FLEET_TYPE))
WHERE FLEET_TYPE BOEING SELECT
MAX_CREW_CNT FROM SCOTT.CMS_FLEET WHERE
CMS_FLEET_TYPE 767
TimesTen Cache Group
A table called CMS_FLEET now exists in both
TimesTen and Oracle
40Asynchronous Writethrough
Memory and Disk Buffers
App
TimesTen acts as a write cache Good for
applications with sudden, high write demand
spikes
TimesTen Oracle Agent
Oracle Application
SELECT
Oracle Tables
41Main TimesTen Benefits
- Response Time in Microseconds
- Predictable and Consistent Response Time
- Throughput up to 100,000 Transactions Per Second
and Beyond - Familiar Relational Model Existing Developers
are Immediately Productive - Unattended operation DBA tasks are automated
with applications - High Availability through Replication
42A
43Higher Customer Satisfaction through
Personalization
Dynamic Personalization
- User preferences are loaded from Oracle RAC into
Oracle In-Memory Database upon login - Preference information is now looked up in Oracle
In-Memory Database - HA through replication
- One API for both databases (JDBC)
- Fast response time means a better user experience
- Users now see personalized pages suited to their
needs - User experience is now noticeably better than
their competitors
Worldwide Corporate Subscribers
NA Application Servers
EMEA / APAC Application Servers
JDBC
Load Balancer
Load Balancer
4-CPU Servers, Linux, 2 GB databases
Active
Standby
Standby
Active
Master Database
Master Database
Oracle
44Hedge Fund Unprofitable Architecture
Hedge-Fund Traders
- Only the first trade makes a profit
- Customer could not analyze data fast enough to
make the trade first - Real-time ticker data could not be combined with
historic data fast enough - Enterprise RDBMS was not fast enough
- Home-grown in-memory data structures lacked SQL
functionality and were expensive to maintain
Should I make this trade?
Real-time Modeling of Current Market vs. History
Home-Grown In-Memory Database INFLEXIBLE
Real-time Market Data Updates
Enterprise RDBMS
Historic Market Data
TOO SLOW
45Profitable, Faster, Real-Time Decisions
Hedge-Fund Traders
- Oracle In-Memory Database provides a flexible SQL
interface allows for easy aggregations of data - Combining real-time ticker data with historic
data is FAST and EASY - Analysis of market data in sub-seconds, not
minutes - The customer can make the trade first, before
their competitors - Therefore, they make a profit and their
competitor loses!
Real-time Modeling of Current Market vs. History
Real-time Market Data Updates
Enterprise RDBMS
Historic Market Data
On-demand load of selected data
46Oracle TimesTen Comparison