VoltDB David Rolfe Director of Solution Architecture, EMEA Doug - - PowerPoint PPT Presentation

voltdb
SMART_READER_LITE
LIVE PREVIEW

VoltDB David Rolfe Director of Solution Architecture, EMEA Doug - - PowerPoint PPT Presentation

VoltDB David Rolfe Director of Solution Architecture, EMEA Doug Jauregui Sr. Solutions Engineer Legacy database technology is obsolete Legacy RDBMS designs date from about Internet Traffic (GB Month), Transistors per CPU and Cost of RAM


slide-1
SLIDE 1

VoltDB

David Rolfe Director of Solution Architecture, EMEA Doug Jauregui

  • Sr. Solutions Engineer
slide-2
SLIDE 2

Legacy database technology is obsolete

  • Legacy RDBMS designs date from about

1985.

  • Vendors are finding legacy databases

increasingly uneconomic.

  • Legacy databases struggle to scale beyond

2 nodes.

  • But demand for transactions is increasing

all the time.

  • Meanwhile Moore’s law means hardware

and RAM keeps getting cheaper

$1 $10 $100 $1.000 $10.000 $100.000 $1.000.000 $10.000.000 1 10 100 1.000 10.000 100.000 1.000.000 10.000.000 100.000.000 1.000.000.000 10.000.000.000 100.000.000.000 1980 1990 2000 2010

Internet Traffic (GB Month), Transistors per CPU and Cost of RAM over time Total Internet Bandwidth (GB/Mo) Transistors per CPU Price of Ram ($/GB)

slide-3
SLIDE 3

21st Century Requirements for transaction processing

  • Virtualization friendly .
  • ACID transactions.
  • Millisecond response times.
  • No ”Long Tail”
  • Supports complicated logic
  • Easily scalable beyond 2 nodes.
  • HA “Just Happens”
  • Geo replication
  • “Translytics”/”HTAP”
slide-4
SLIDE 4

RD RDBM BMS - How We Thought an RDBMS Worked

SELECT * FROM PRODUCTS WHERE ID = 1 FOR UPDATE OF qty; ID=1, Qty= 200, LastDate= 23 /March/18 UPDATE users SET BAL = 190 WHERE ID =1; INSERT INTO sales Iuserid, productId, cost) VALUES (42,1,10); UPDATE products SET qty = 199 WHERE ID = 1; COMMIT; SELECT * FROM PRODUCTS WHERE ID = 1 FOR UPDATE OF qty; ID=1, Qty= 200 UPDATE users SET BAL = 190 WHERE ID =1; INSERT INTO sales Iuserid, productId, cost) VALUES (43,1,10); UPDATE products SET qty = 199 WHERE ID = 1; COMMIT;

Inflight Transactions

WAΙTΙNG WAΙTΙNG

RAM DATA DISK DATA CPU

slide-5
SLIDE 5

RD RDBM BMS - What Actually Happens – Part 1…

SELECT * FROM PRODUCTS WHERE ID = 1 FOR UPDATE OF qty; ID=1, Qty= 200, LastDate= 23 /March/18 UPDATE users SET BAL = 190 WHERE ID =1; INSERT INTO sales Iuserid, productId, cost) VALUES (42,1,10); UPDATE products SET qty = 199 WHERE ID = 1; COMMIT; SELECT * FROM PRODUCTS WHERE ID = 1 FOR UPDATE OF qty; ID=1, Qty= 200 UPDATE users SET BAL = 190 WHERE ID =1; INSERT INTO sales Iuserid, productId, cost) VALUES (43,1,10); UPDATE products SET qty = 199 WHERE ID = 1; COMMIT;

Inflight Transactions

WAΙTΙNG WAΙTΙNG

RAM DATA DISK DATA CPU CPU

slide-6
SLIDE 6

RD RDBM BMS - What Actually Happens – Part 2

Inflight Transactions

WAΙTΙNG WAΙTΙNG

Inflight Transactions

WAΙTΙNG WAΙTΙNG

RAM DATA RAM DATA CPU

CORE

CPU

CORE

SAN

slide-7
SLIDE 7

If we tried this in a supermarket…

slide-8
SLIDE 8
  • Dr. Michael Stonebraker found a solution..

Index Management 11% Logging 20% Locking 18% Latching 10% Buffer Management 29% Useful Work 12%

slide-9
SLIDE 9

How VoӏtDB works

Inflight Transactions Inflight Transactions

RAM DATA RAM DATA

WAΙTΙNG WAΙTΙNG WAΙTΙNG WAΙTΙNG

BOOK BOOK PAY PAY BOOK PAY

Bay Item 1 Bay Item 2

BOOK BOOK PAY

Bay Item 1 Bay Item 2

BOOK PAY BOOK BOOK BOOK PAY PAY BOOK PAY

Bay Item 1 Bay Item 2

BOOK BOOK PAY

Bay Item 1 Bay Item 2

BOOK PAY BOOK

CORE CORE CORE CORE

Local File System Local File System

slide-10
SLIDE 10

How a supermarket works…

slide-11
SLIDE 11

VoltDB’s Role

Tranactions Scale Milliseconds ACID Transactions

Batch Processing/ HDFS NoSQL Legacy OL TP

slide-12
SLIDE 12

The only 3 ways to interact with any database

Approach Examples Strengths Weaknesses Many SQL Statements + Commit or Rollback JDBC, ODBC, Liked by developers, initial development is rapid

  • Doesn’t handle scaling OLTP loads well – DB spends its

time figuring out who can see what instead of working

  • Constant locking problems for shared, finite resources
  • Failure of a client to Commit or Rollback causes a

temporary resource leak Move all the data to the client and back again NoSQL, KV Stores Very developer friendly

  • Multiple updated copies of the data can arrive at the

same time for scaling OLTP loads

  • All of the data gets moved across the network, every

time. Stored Procedures VoltDB, PL/SQL Predictable speed and best possible scaling characteristics

  • Not in fashion with developers.
  • PL/SQL created perception of complexity.
  • Other implementations of Java Stored Procedures really

slow.

slide-13
SLIDE 13

A Proven and Reliable Partner

loT Platforms, Energy, Sensor

Smart grid/meters, asset tracing & management

Telco

Billing/rights management, subscriber data, etc.

Financial Services

Risk, market data management, customer mgt.

Personalize, Customize, Target

Ad optimization, audience segmenting, customer service

Infrastructure, Dashboards, KPIs

Data pipeline, system performance, streaming ETL.

slide-14
SLIDE 14

VoltDB & Machine Learning

slide-15
SLIDE 15

Near Real Time Data for Models and Rules

VoltDB

Spark + Hadoop

New Data Rules

Fraud Prevention Single Sign-on Manager Consumer Banking Risk Management Credit Card & Mobile Pay Consumer Banking System Mobile log-in

Message Queue

Real-Time Decision Making

VoltDB Application/Use Case

  • Fraud Prevention
  • Single sign-in of all Huawei phones
  • Consumer banking risk management

Why VoltDB?

  • > 50% reduction in fraud cases
  • > $15M/year saved from fraud loss
  • 10k complex Transactions Per Second
  • 99.99% transactions finish < 50ms
  • 10x better performance than

traditional fraud detection

slide-16
SLIDE 16

VoltDB & Machine Learning

  • VoltDB has a C++ core with a Java layer on top for running stored

procedures

  • VoltDB implements High Availability by running the same code in two

places at once.

  • Any Java class can be used in a stored procedure call provided:
  • It’s deterministic (all copies of the code have to act the same way…)
  • It doesn’t access network resources (which would make it non-deterministic)
  • Examples: H20.AI and (J)PMML
slide-17
SLIDE 17

ML Example – User Defined Function in H20

slide-18
SLIDE 18

ML Example – Calling JPMML from a Procedure

slide-19
SLIDE 19

For more information:

www.voltdb.com drolfe@voltdb.com