Title: Why Genero db
1(No Transcript)
2Why Genero db?
- Between 5 to 15 times faster
- In-memory configuration with automatic dataflow
to disk
- Lock-free resists the need to lock eliminates
contention
- Preparation by compilation precompiled SQL
- Thread reassignment saves startup overhead
Page 2
An Alternative Vision Corporate Presentation
8/3/2009
3Customers
- Sprint
- Advanced Messaging Value Added Services
- 10M transactions/day
- 10x MS SQL
- eRevolution
- SMB Retail Outsource
- 1-2 Registers, gas pumps
- Store system ASP
- IRI partner
- Grupo SC
- Payroll Document Management
- 200K transactions/day
- Largest SI in Mexico
- 8X Oracle performance
- MLS Assistant
- REALTOR Multiple Listings
- Search for homes tools for the home buying
process.
- 5x MS SQL performance
Page 3
An Alternative Vision Corporate Presentation
8/3/2009
4The Lowest Cost
- To
- Buy Fewer servers licenses
- Develop Transparent coding, not exotic
configurations with database partitioning
- Run powerful architecture, no need for clusters
multi-node licensing
- Maintain ½ support cost, no need for expensive
teams of DB consultants
- Port Universal Compatibility
5Overview
- Standard SQL relational database
- SQL-92 plus some SQL-99 features (e.g. blobs)
- ODBC JDBC client APIs
- Supports some Windows APIs .NET ADO
- 5-15x faster
- than DBs such as Oracle, SQL-Server, DB2, MySQL
- Supports HA
- via replication failover, additional replicas
as required
- Easy administration
- including built-in online backup
632 64 Bit Platforms
- Two 32-bit platforms
- Windows Linux on Pentium servers
- Three 64-bit platforms
- Solaris/Sparc, Linux Windows on Opteron/Xeon64
- Windows shipping later this year (FY06)
- 64-bit platforms support unlimited memory
- On 32-bit platforms, can use up to 64GB of memory
as a disk cache
7Platform Requirements
- For Windows
- Windows2000, 2003, or XP on Pentium
- For Linux
- Redhat, SUSE, Debian, etc. on Pentium (32 bit) or
Opteron/Xeon64 (64 bit)
- Kernel 2.6 (Redhat Enterprise 4 others)
recommended
- For Solaris
- Solaris 8, 9, or 10 on Sparc
- Solaris 8 (!) gives best client performance
- For all platforms
- 1 CPU 2 CPUs if client co-located with
server
- Caching RAID controller highly recommended
- If none available, OSDURABLE logging should be
used
8Is Genero db a High-Performance Niche Product?
- NO!
- Delivers the same performance at less cost
- Less hardware, fewer DB licenses
- Replaces existing RDBMSs
- even in non-performance-critical applications
- at much lower cost
- Can be phased in as a helper database
- Migrate only hotspot tables/applications
9Stored Procedures
- Supports three stored proc. languages
- Oracle, SQL-Server (Microsoft Sybase),
Informix
- Application porting is much easier
- These are not emulation modes
- Native support for these languages
- Each stored proc. is first parsed into C
functions then compiled to machine language,
all in-memory
- The server is ignorant of which language is being
executed
10Triggers
- Trigger a special kind of stored proc.which
fires in response to a particular INSERT,
UPDATE, or DELETE operation
- Typical uses
- log operations (or do other side effects)
- reject operations
- Supports Oracle, SQL-Server Informix triggers
- Currently supports after triggers not
before triggers
- But these can do anything you want
- Exception
- an after trigger cant change inserted or
updated data. (Rarely done, due to performance
consequences.)
11Genero db vs Oracle
- Supports the same MVCC concurrency model as
Oracle
- Supports a large subset of PL/SQL most of
Oracle SQL
- Missing PL/SQL packages, PL/SQL utility
libraries
- Supports Oracle OCI
- Administration
- Genero db Oracle both admin by command-line
SQL
- Oracle provides admin tools (Enterprise Manager)
- Genero db will do web-based admin in near future
- Database Size
- Oracle scales up to terabytes
- Genero db currently recommended for DBs ?100GB
- Very Large Data Base support is underway
(Terabytes end of year)
12Performance Comparison
SELECT
UPDATE (with contention)
INSERT
UPDATE
13Connection Modes
- Networked
- Advanced connection mgmt for better performance
- Can easily handle thousands of concurrent users
- Shared memory inter-process communication
- For co-located clients, faster than networking
- Firewall between application data still
maintained
- Embedded server
- Server is in-process with an application
- Fastest possible when there are few connections
- Still a full server others can connect normally
14Architecture
- Networked
- Advanced connection management ? better
performance
- Handles thousands of concurrent users
-
- Shared memory inter-process communication
- For co-located clients, faster than networking
- Firewall between application data still
maintained
- Embedded server
- Genero db server is in-process with app.
- Fastest when there are few connections
- Still a full server others can connect normally
hot-standby, shared-nothing slave
Concurrency Engine
Page 14
An Alternative Vision Corporate Presentation
8/3/2009
15Architecture
- Pending Changes Management
- Concurrency conflict
- If changes commutative then no lock
- If hard coded app lock process at least at row
level column level when possible
- If lock needed enter into lock table
- If pending change not executable then change
remains in queue
- Locks removed after commit phase
- Session Phase
- SQL Request Management
- Compile SQL
- Execute SQL
- Create atomic database update queue
Page 15
An Alternative Vision Corporate Presentation
8/3/2009
16Phased Execution
- Execution switches between two phases
- session phase
- commit phase
- Happens thousands of times per second
- Real work is done in session phase
- Commit phase is for cleanup
- where committed changes are applied
- Most commit phases do nothing
- Each phase has a work list of messages
17Threading Messages
- Creates CPU-1 worker threads start-up
- This is the only time OS thread primitives are
ever used
- Work is scheduled onto worker threads via
messages
- A function call (typically a compiled SQL stmt or
compiled stored procedure), plus arguments
- Very efficient
- No context switching at all
- Not even the stack
18High Availability
- Hot-standby, shared-nothing slave
- Recovery is automatic just restart failed
server
- Automatic failover of all connections
- Very fast, in seconds
- All committed transactions preserved
- Uncommitted transactions fail application
replays them then continues as if nothing
happened
Page 18
An Alternative Vision Corporate Presentation
8/3/2009
19High Availability Speed Clusters
- Speed clusters additional replicas
- Real time synchronous with master
- Can be geographically remote for Disaster
Recovery
- Can be used for reporting, BI, etc.
Page 19
An Alternative Vision Corporate Presentation
8/3/2009
20High Availability
- Master slave
- Slave is hot standby
- Coming soon readable slaves (speed clusters)
- Replication is via log-record shipping
- Slave should be local
21High Availability
- Recover from any single point of failure
- Means that master need not wait for end-to-end
acknowledgement from slave
- In normal operation, with local slave, almost no
performance loss
22Horizontal Partitioning
Genero db
Genero db or other DB
ALM based replication
Genero db
Genero db
Transparent partitioning in upcoming release
23ALM (Log Miner)
- A library which accesses the transaction log
- Committed changes only
- Filtering of log entries by table id
- Inspection of log entries
- Selective replication to another Genero db
without going through SQL
- SQL generation for replication to non-Genero db
24Scalability
- Scalability is linear
- Todays limits are locking CPU cache coherency
- Concurrency Engine avoids both problems
- Greatly reduced locking
- Greatly reduced shared data, less cache coherency
problems
- 103 concurrent connections, 106 users
- Wireless Services 16,000
- 15 million SMS messages/day peak
- Millions of users
Page 24
An Alternative Vision Corporate Presentation
8/3/2009
25Monitoring Events
- Queries for many items of interest
- Server status, configuration performance
- Application performance
- SNMP Agent for monitoring this same information
- Dashboard for monitoring multiple servers
- A stored select facility allows applications to
listen for infrequent events without polling
Page 25
An Alternative Vision Corporate Presentation
8/3/2009
26Performance Tuning
- Client-side Server-side tools
- Client tool
- Allows selective tracing performance
characterization of queries
- Server tool
- Shows operation counts, timings, query plans
even within stored procedures
- Find most expensive queries/procedures tune
- Add indexes as needed
- Hints available if necessary to change query
plans
- All while server continues to run, with minimal
impact
Page 26
An Alternative Vision Corporate Presentation
8/3/2009
27BLOBS CLOBS
- A prefix of each BLOB/CLOB is in-line
- Any operation (even indexing) supported on
in-line portion
- Efficient storage using a tree structure as a
page map
Page 27
An Alternative Vision Corporate Presentation
8/3/2009