AgilData - How I Learned to Stop Worrying and Evolve with On-Demand Schemas

929 views 38 slides Jun 16, 2015
Slide 1
Slide 1 of 38
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38

About This Presentation

My talk from SYSCON Cloud Expo 2015 NYC


Slide Content

How$I$Learned$to$Stop$Worrying$and$Evolve$$
with$On8Demand$Schemas
Dan$Lynn,$CEO$
www.agildata.com,
[email protected],
@danklynn

...I#was#struck#by#lightning...and#bit#by#a#cobra.

Water$is$quite$Agile

2001:$The$Agile$
Manifesto$is$
published
Today
Massive Progress

1.Customer#satisfaction#by#rapid#delivery#of#useful#software#
2.Welcome#changing#requirements,#even#late#in#development#
3.Working#software#is#delivered#frequently#(weeks#rather#than#months)#
4.Close,#daily#cooperation#between#business#people#and#developers#
5.Projects#are#built#around#motivated#individuals,#who#should#be#trusted#
6.FaceItoIface#conversation#is#the#best#form#of#communication#(coIlocation)#
7.Working#software#is#the#principal#measure#of#progress#
8.Sustainable#development,#able#to#maintain#a#constant#pace#
9.Continuous#attention#to#technical#excellence#and#good#design#
10.Simplicity—the#art#of#maximizing#the#amount#of#work#not#done—is#essential#
11.SelfIorganizing#teams#
12.Regular#adaptation#to#changing#circumstance
12$Principles$
of$
Agile$$
Development$

http://www.gartner.com/newsroom/id/2823619
Mobile market is putting pressure on development to adopt
rapid development
and deployment practices that constantly iterate as
expectations change.
Traditional Development Practices Will Fail….
Agile Development is Essential.
August, 2014

But…

Questions?

Changing,the,database,
schema,late,in,the,
development,tends,to,cause,
wide9spread,breakages,in,
application,software.,
99,Martin,Fowler
http://martinfowler.com/articles/evodb.html

...changing,a,schema,after,
deployment,results,in,
painful,data,migration,
problems,
99,also$Martin,Fowler
http://martinfowler.com/articles/evodb.html

…which$can$be$frustrating

The$Database$
Must$be$Agile

What$makes$a$database$Agile?

It’s More Than Schema Migration

Ok,$so$what$makes$a$database$Agile?

Simple

Scalable

Streaming

CREATE STREAM s_customer_orders AS
SELECT o.order_id, o.order_amount,
c.first_name, c.last_name
FROM orders_stream o
JOIN customers c ON o.customer_id = c.id ;
SQL

How?

Processing,must,happen,
next$to$the$data

AgilData Broker
v_people

partition 0
SELECT a, b
AgilData Broker
v_people

partition 1
SELECT a, b
USE SCHEMA example;

CREATE STREAM s_one AS SELECT a, b FROM v_people;
Local execution Local execution
Processing$Must$Happen$Next$To$The$Data

CREATE SCHEMA example WITH 2 PARTITIONS;

CREATE VIEW v_people (

a Person,
b INTEGER
) PARTITION BY Modulus( a.id);
AgilData Broker
v_people

partition 0
AgilData Broker
v_people

partition 1
User-Defined Partitioner
Your$data$views$are$Just$Snapshots$of$Streams

http://wearcam.org/dundas-square/2004sep23/cement.jpg

Master Slave
Replication
Binary log
files
Be$log8oriented

Master Slave
Binary log
files
Binary log
files
Binary log
files
Be$log8oriented

Master Slave
Binary log
files
Binary log
files
Binary log
files
Be$log8oriented

Binary log
files
Binary log
files
Binary log
files
0 1 2 3 4 5 6 7 8 9 . .
INSERT INTO employees ...
UPDATE employees
SET salary = 1 MILLION DOLLARS
Be$log8oriented

AgilData Broker
Stream Input (local WAL or network)
Stream Output (Partition: 0..n)
Stream Output (Partition: 0..n)
Stream Output (WAL or in-memory)
Stream Runtime

User-Defined Functions, Stream Functions, SELECTs

(Optimized by Execution Planner)
Network Out
Logs$Allow$Arbitrary$Stream$Computation

Zookeeper
Zookeeper
Zookeeper
AgilData Broker
LEADER - Topic: example Partition: 0
FOLLOWER - Topic: example Partition: 1
AgilData Broker
FOLLOWER - Topic: example Partition: 0
LEADER - Topic: example Partition: 1
Replication
Replication
Logs$get$you$reliability

AgilData Cluster
Distributed
Stream Processing
High-Performance
Embedded Storage
Database Versioning
User-Defined Functions

& Extensible Data Types
Intelligent Query Planning Job Scheduling
3rd-party
data stores
Message QueuesEvent Streams
Clients
Applications
(web apps, APIs, mobile)
Analytics
(e.g. Tableau, Spark)
Monitoring & Management

The simplest way for enterprises to leverage
big data without having to become experts
in a complex and changing toolset.
Dan Lynn
www.agildata.com
[email protected]
@danklynn
Come see us at
Booth #340!