SlideShare a Scribd company logo
1 of 51
Download to read offline
Modeling the IoT with TitanDB and Cassandra
Intro
ā€¢ Ted Wilmes
ā€¢ Data warehouse engineer at WellAware - wellaware.us
ā€¢ Building a SaaS oil and gas production monitoring and
analytics platform
ā€¢ Collect production O&G data from the field via cellular,
satellite, and other means and deliver to our customers via
mobile and browser clients
Ā© 2015. All Rights Reserved. 2
Ā© 2015. All Rights Reserved.
1 The property graph model and TitanDB
2 Modeling IoT
3 Time series and performance
Property graph model
Ā© 2015. All Rights Reserved. 4
person
name: Ted
person
name: George
knows
metOn: June 1,2012
Querying with Gremlin
Ā© 2015. All Rights Reserved. 5
person
name: Ted
person
name: George
knows
metOn: June 1,2012
g.V().hasLabel(ā€œpersonā€).has(ā€œnameā€, ā€œTedā€).out(ā€œknowsā€).values(ā€œnameā€)
> George
TitanDB
ā€¢ Graph database that supports pluggable storage layers
ā€¢ Designed from the ground up to provide OLTP
performance against large graphs with a particular
focus on supporting high degree vertices (vertices with
many edges)
ā€¢ Implements Apache TinkerPop 3 APIs
ā€¢ Cassandra acts as solid foundation providing high
availability, performance, and ease of operation
Ā© 2015. All Rights Reserved. 6
Our Internet of Things
Ā© 2015. All Rights Reserved. 7
Things
People
Organizations
Places
Time
A hypothetical use case: IoTā€¦
Ā© 2015. All Rights Reserved. 8
in SPACE
Ā© 2015. All Rights Reserved. 9
Spaceship
Mars
Base
Space
Station
Rocket
Satellite
Ā© 2015. All Rights Reserved. 10
Many dimensions
Ā© 2015. All Rights Reserved. 11
Rocket
Starfleet
Acme
Rockets
Delta
Booster
operates
builds
isModel
Major Tom
pilots Joyce
maintains
Many times, a ā€œthingā€ is a system of systems
Ā© 2015. All Rights Reserved. 12
http://stardust.jpl.nasa.gov/mission/delta2.html
Rocket
1st Stage 2nd Stage
3rd Stage
Interstage
Fuel Tank
Oxidizer
Guidance
Electronics
CPU Memory
Ā© 2015. All Rights Reserved. 13
Guidance
Electronics
CPU
Memory JVM
Heap
Usage
Thread
Count
Continuing to zoom in
Heap
Usage
Ā© 2015. All Rights Reserved. 14
JVM
Thread
Count
Alarm
Alarm
Condition
Joyce
triggers
notifies
monitors
Ā© 2015. All Rights Reserved. 15
Major Tom
Alarm
Alarm
Condition
Joyce
triggers
notifies
reports to
Starfleet
employs
employs
IoT modeling in summary
ā€¢ Things can be interconnecting systems of other
things
ā€¢ High fidelity model of ā€˜realityā€™ supports wide
variety of use cases vs. a disconnected set of
entities
ā€¢ IoT app is really only one part about things,
donā€™t forget to include everything else! (social,
organizational, etc.)
Ā© 2015. All Rights Reserved. 16
Time series & Performance
Ā© 2015. All Rights Reserved. 17
Ā© 2015. All Rights Reserved. 18
Guidance
Electronics
CPU
Memory JVM
Heap
Usage
Thread
Count
Ā© 2015. All Rights Reserved. 19
Time series in Titan
Heap
Usage
JVM
?
Ā© 2015. All Rights Reserved. 20
Our basic time series requirements
ā€¢ Support a large volume of low latency
writes
ā€¢ Low latency retrieval on primarily the most
recent data
Ā© 2015. All Rights Reserved. 21
A selection of factors affecting Titan performance
ā€¢ Titan deployment topology and configuration
ā€¢ All your usual Cassandra tuning tips and tricks
ā€¢ Titan JVM tuning
ā€¢ selection of appropriate garbage collector
ā€¢ GC parameters
ā€¢ like Cassandra, worthwhile to adjust NewSize
ā€¢ Data modeling
ā€¢ Indexing
ā€¢ Global graph indices (native Titan vs. external)
ā€¢ Vertex centric indices
ā€¢ Titan different caches - transaction cache & the database-level cache
Ā© 2015. All Rights Reserved. 22
A selection of factors affecting Titan performance
ā€¢ Titan deployment topology and configuration
ā€¢ All your usual Cassandra tuning tips and tricks
ā€¢ Titan JVM tuning
ā€¢ selection of appropriate garbage collector
ā€¢ GC parameters
ā€¢ like Cassandra, worthwhile to adjust NewSize
ā€¢ Data modeling
ā€¢ Indexing
ā€¢ Global graph indices
ā€¢ Vertex centric indices
ā€¢ Titan different caches - transaction cache & the database-level cache
Deployment options
Ā© 2015. All Rights Reserved. 23
mars-north-1
Local
Embedded
Remote
Ā© 2015. All Rights Reserved. 24
Ā© 2015. All Rights Reserved. 25
Ā© 2015. All Rights Reserved. 26
But first, time series with CQL
* Brady Gentile - https://academy.datastax.com/demos/getting-started-time-series-data-modeling
Ā© 2015. All Rights Reserved. 27
But first, time series with CQL
* Brady Gentile - https://academy.datastax.com/demos/getting-started-time-series-data-modeling
CQL
Ā© 2015. All Rights Reserved. 28
First approach
Heap
Usage
Chunk
chunkStart: 1442880000000ā€Ø
chunkEnd: 1442966400000
Chunk
chunkStart: 1442966400000ā€Ø
chunkEnd: 1442966400000
Observation Observation
tstamp: 1442880000001 tstamp: 1442880000002
ā€¢ Intuitive and easy to query
ā€¢ You can imagine adding further
levels to the hierarchy following
a year->month->day format
ā€¢ Individual observations can be
associated with other pieces of
data
ā€¢ Observations can be filtered by
timestamp with edge filter but
you still have to retrieve a large
number of disparate vertices
Ā© 2015. All Rights Reserved. 29
A further refinement
Heap
Usage
Chunk
chunkStart: 1442880000000ā€Ø
chunkEnd: 1442966400000
Chunk
chunkStart: 1442966400000ā€Ø
chunkEnd: 1442966400000
ā€¢ How do we reduce the number
of vertices (think Cassandra
partitions) that we need to
retrieve?
Ā© 2015. All Rights Reserved. 30
timestamp value
1. Move all properties to the edge
2. Make the edge ā€œundirectedā€
or, a combo of the two approaches
1. Copy the properties to the edge
2. Keep the discrete observation
vertex
Chunk
tstamp
value
Heap
Usage
Ā© 2015. All Rights Reserved. 31
Chunk vertex with its observations
Vertex ID chunkStart chunkEnd obs. @ t2 obs. @ t1 obs. @ t0
Observations in time descending order
Ā© 2015. All Rights Reserved. 32
Sample Gremlin queries
ā€¢ observations > 1442162072000
ā€¢ chunk.outE().has(ā€œtstampā€, gt(1442162072000))
ā€¢ observations between 1442162072000 and 1442162073000
ā€¢ chunk.outE().has(ā€œtstampā€, between(1442162072000, 1442162073000))
ā€¢ Most recent observation before now
ā€¢ chunk.outE().has(ā€œtstampā€, lte(System.currentTimeMillis()).
order().by(ā€œtstampā€, decr).limit(1)
ā€¢ You can wrap this in your own time series specific API
ā€¢ new SeriesQuery(series1).interval(startTstamp, endTstamp).decr().limit(1)
Ā© 2015. All Rights Reserved. 33
Pros and cons vs. separate CQL or other tsdb
ā€¢ Pros
ā€¢ Allows for a single unified view of your IoT data, maintaining
direct connectivity between sensor data & the other entities
ā€¢ Gremlin works well for processing streams of time series
data
ā€¢ Cons
ā€¢ Storage format is not as compact
ā€¢ Extra overhead of managing ā€˜chunksā€™ versus CQL primary
key taking care of that for us (eg. chunk cache)
Ā© 2015. All Rights Reserved. 34
Heap
Usage
Chunk
label: hasChunk
chunkStart: 1442880000000ā€Ø
chunkEnd: 1442966400000
Chunk
label: hasChunk
chunkStart: 1442966400000ā€Ø
chunkEnd: 1442966400000
A simple query - retrieve all the heap usage chunks
gremlin> g.V(4).out(ā€˜hasChunkā€™).values(ā€˜chunkStartā€™)
==> 1442880000000
==> 1442966400000
Ā© 2015. All Rights Reserved. 35
Getting a vertex by id
gremlin> g.V(4)
==>v[4]
Yes
Does this vertex exist?
Vertex is now loaded in Titan
transaction cache
Ā© 2015. All Rights Reserved. 36
Aside - a tool of the trade
Profiler with socket tracing
Ā© 2015. All Rights Reserved. 37
Ā© 2015. All Rights Reserved. 38
Ā© 2015. All Rights Reserved. 39
Retrieving properties
gremlin> g.V(4).valueMap()
==>[sensorType:[heap usage], units:[bytes]]
Two properties
Retrieve properties
Vertex properties are now loaded
in the Titan transaction cache
Ā© 2015. All Rights Reserved. 40
2 Round trips
Two properties
Retrieve properties
Yes
Does this vertex exist?
ā€¢ Not a big deal for single
vertex lookup with
property retrieval but
can add up
ā€¢ Exacerbated by
magnitude of latency
between Titan and
Cassandra
Ā© 2015. All Rights Reserved. 41
Querying for adjacent vertices
gremlin>
g.V(4).out(ā€˜hasChunkā€™).values(ā€˜chunkStartā€™)
==> 1442880000000
==> 1442966400000
Does this vertex exist?
Get 1st chunk properties
Get edges
Get 2nd chunk properties
Ā© 2015. All Rights Reserved. 42
Batch requests
Does this vertex exist?
Get 1st chunk properties
Get 2nd chunk properties
Get edges
Get 2nd chunk properties
ā€¢ query.batch = true
ā€¢ ā€œWhether traversal queries should
be batched when executed against
the storage backend. This can lead
to significant performance
improvement if there is a non-trivial
latency to the backend.ā€ - http://
s3.thinkaurelius.com/docs/titan/0.9.0-M2/titan-config-ref.html
gremlin>
g.V(4).out(ā€˜hasChunkā€™).values(ā€˜chunkStartā€™)
==> 1442880000000
==> 1442966400000
Ā© 2015. All Rights Reserved. 43
Remove initial exists query
ā€¢ storage.batch-loading = true
ā€¢ WARNING - this disables
vertex ā€˜existsā€™ checks
gremlin>
g.V(4).out(ā€˜hasChunkā€™).values(ā€˜chunkStartā€™)
==> 1442880000000
==> 1442966400000
Does this vertex exist?
Get 1st chunk properties
Get 2nd chunk properties
Get edges
Get 2nd chunk properties
Ā© 2015. All Rights Reserved. 44
Optimizing your write
gremlin> chunk.addEdge(ā€œhasObservationā€, chunk, ā€œtstampā€, 1442162072000, ā€œvalueā€, 500.123)
Does this vertex exist?
Write new edge
Ā© 2015. All Rights Reserved. 45
Optimizing your writes
gremlin> chunk.addEdge(ā€œhasObservationā€, chunk, ā€œtstampā€, 1442162072000, ā€œvalueā€, 500.123)
Does this vertex exist?
Write new edge
ā€¢ Remove the read from your write
path - storage.batch-loading =
true
ā€¢ batch your commits, measure
latency and throughput on your
system to find a good commit size
Ā© 2015. All Rights Reserved. 46
storage.batch-loading=false
Ā© 2015. All Rights Reserved. 47
storage.batch-loading=true
Ā© 2015. All Rights Reserved. 48
Quick and dirty write performance numbers
wps
0
22,500
45,000
67,500
90,000
ā€¢ 9 m3.2xlarge nodes w/ C* 2.2, RF = 3, writing @ quorum, default C* settings
ā€¢ 1 m3.2xlarge ā€œclientā€ w/ Titan 1.0-SNAPSHOT, 10 write threads writing 100
million points in total across 100,000 series
Ā© 2015. All Rights Reserved. 49
In summary
ā€¢ Understanding of underlying data storage format can help with performance
tuning
ā€¢ Writes
ā€¢ remove reads from the write path where possible
ā€¢ test different batch commit sizes
ā€¢ when writing vertices you may need to adjust ids.block-size and
ids.renew-percentage
ā€¢ Reads
ā€¢ batch communication between Titan and Cassandra with
query.batch=true
ā€¢ make use of global and vertex centric indices when possible
What questions do you have and thanks!
Thanks to the Apache TinkerPop,TitanDB team, my awesome
coworkers, and the folks at DataStax for putting on an excellent
summit!
Ted Wilmes
Data Warehouse Engineer
@trwilmes
tedwilmes@wellaware.us
Ā© 2015. All Rights Reserved. 50
Thank you

More Related Content

What's hot

DataStax | DSE Search 5.0 and Beyond (Nick Panahi & Ariel Weisberg) | Cassand...
DataStax | DSE Search 5.0 and Beyond (Nick Panahi & Ariel Weisberg) | Cassand...DataStax | DSE Search 5.0 and Beyond (Nick Panahi & Ariel Weisberg) | Cassand...
DataStax | DSE Search 5.0 and Beyond (Nick Panahi & Ariel Weisberg) | Cassand...DataStax
Ā 
Cassandra & Spark for IoT
Cassandra & Spark for IoTCassandra & Spark for IoT
Cassandra & Spark for IoTMatthias Niehoff
Ā 
C*ollege Credit: CEP Distribtued Processing on Cassandra with Storm
C*ollege Credit: CEP Distribtued Processing on Cassandra with StormC*ollege Credit: CEP Distribtued Processing on Cassandra with Storm
C*ollege Credit: CEP Distribtued Processing on Cassandra with StormDataStax
Ā 
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...DataStax
Ā 
codecentric AG: Using Cassandra and Clojure for Data Crunching backends
codecentric AG: Using Cassandra and Clojure for Data Crunching backendscodecentric AG: Using Cassandra and Clojure for Data Crunching backends
codecentric AG: Using Cassandra and Clojure for Data Crunching backendsDataStax Academy
Ā 
ML on Big Data: Real-Time Analysis on Time Series
ML on Big Data: Real-Time Analysis on Time SeriesML on Big Data: Real-Time Analysis on Time Series
ML on Big Data: Real-Time Analysis on Time SeriesSigmoid
Ā 
Using Approximate Data for Small, Insightful Analytics (Ben Kornmeier, Protec...
Using Approximate Data for Small, Insightful Analytics (Ben Kornmeier, Protec...Using Approximate Data for Small, Insightful Analytics (Ben Kornmeier, Protec...
Using Approximate Data for Small, Insightful Analytics (Ben Kornmeier, Protec...DataStax
Ā 
Web analytics at scale with Druid at naver.com
Web analytics at scale with Druid at naver.comWeb analytics at scale with Druid at naver.com
Web analytics at scale with Druid at naver.comJungsu Heo
Ā 
DataStax: Rigorous Cassandra Data Modeling for the Relational Data Architect
DataStax: Rigorous Cassandra Data Modeling for the Relational Data ArchitectDataStax: Rigorous Cassandra Data Modeling for the Relational Data Architect
DataStax: Rigorous Cassandra Data Modeling for the Relational Data ArchitectDataStax Academy
Ā 
Engineering fast indexes
Engineering fast indexesEngineering fast indexes
Engineering fast indexesDaniel Lemire
Ā 
Always On: Building Highly Available Applications on Cassandra
Always On: Building Highly Available Applications on CassandraAlways On: Building Highly Available Applications on Cassandra
Always On: Building Highly Available Applications on CassandraRobbie Strickland
Ā 
Wide Column Store NoSQL vs SQL Data Modeling
Wide Column Store NoSQL vs SQL Data ModelingWide Column Store NoSQL vs SQL Data Modeling
Wide Column Store NoSQL vs SQL Data ModelingScyllaDB
Ā 
Imply at Apache Druid Meetup in London 1-15-20
Imply at Apache Druid Meetup in London 1-15-20Imply at Apache Druid Meetup in London 1-15-20
Imply at Apache Druid Meetup in London 1-15-20Jelena Zanko
Ā 
SASI: Cassandra on the Full Text Search Ride (DuyHai DOAN, DataStax) | C* Sum...
SASI: Cassandra on the Full Text Search Ride (DuyHai DOAN, DataStax) | C* Sum...SASI: Cassandra on the Full Text Search Ride (DuyHai DOAN, DataStax) | C* Sum...
SASI: Cassandra on the Full Text Search Ride (DuyHai DOAN, DataStax) | C* Sum...DataStax
Ā 
From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016
From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016
From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016DataStax
Ā 
Real time data pipeline with spark streaming and cassandra with mesos
Real time data pipeline with spark streaming and cassandra with mesosReal time data pipeline with spark streaming and cassandra with mesos
Real time data pipeline with spark streaming and cassandra with mesosRahul Kumar
Ā 
Amazon Redshift
Amazon RedshiftAmazon Redshift
Amazon RedshiftJeff Patti
Ā 
Scalable Data Modeling by Example (Carlos Alonso, Job and Talent) | Cassandra...
Scalable Data Modeling by Example (Carlos Alonso, Job and Talent) | Cassandra...Scalable Data Modeling by Example (Carlos Alonso, Job and Talent) | Cassandra...
Scalable Data Modeling by Example (Carlos Alonso, Job and Talent) | Cassandra...DataStax
Ā 
From stream to recommendation using apache beam with cloud pubsub and cloud d...
From stream to recommendation using apache beam with cloud pubsub and cloud d...From stream to recommendation using apache beam with cloud pubsub and cloud d...
From stream to recommendation using apache beam with cloud pubsub and cloud d...Neville Li
Ā 
Analyzing Time Series Data with Apache Spark and Cassandra
Analyzing Time Series Data with Apache Spark and CassandraAnalyzing Time Series Data with Apache Spark and Cassandra
Analyzing Time Series Data with Apache Spark and CassandraPatrick McFadin
Ā 

What's hot (20)

DataStax | DSE Search 5.0 and Beyond (Nick Panahi & Ariel Weisberg) | Cassand...
DataStax | DSE Search 5.0 and Beyond (Nick Panahi & Ariel Weisberg) | Cassand...DataStax | DSE Search 5.0 and Beyond (Nick Panahi & Ariel Weisberg) | Cassand...
DataStax | DSE Search 5.0 and Beyond (Nick Panahi & Ariel Weisberg) | Cassand...
Ā 
Cassandra & Spark for IoT
Cassandra & Spark for IoTCassandra & Spark for IoT
Cassandra & Spark for IoT
Ā 
C*ollege Credit: CEP Distribtued Processing on Cassandra with Storm
C*ollege Credit: CEP Distribtued Processing on Cassandra with StormC*ollege Credit: CEP Distribtued Processing on Cassandra with Storm
C*ollege Credit: CEP Distribtued Processing on Cassandra with Storm
Ā 
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
Cassandra Tools and Distributed Administration (Jeffrey Berger, Knewton) | C*...
Ā 
codecentric AG: Using Cassandra and Clojure for Data Crunching backends
codecentric AG: Using Cassandra and Clojure for Data Crunching backendscodecentric AG: Using Cassandra and Clojure for Data Crunching backends
codecentric AG: Using Cassandra and Clojure for Data Crunching backends
Ā 
ML on Big Data: Real-Time Analysis on Time Series
ML on Big Data: Real-Time Analysis on Time SeriesML on Big Data: Real-Time Analysis on Time Series
ML on Big Data: Real-Time Analysis on Time Series
Ā 
Using Approximate Data for Small, Insightful Analytics (Ben Kornmeier, Protec...
Using Approximate Data for Small, Insightful Analytics (Ben Kornmeier, Protec...Using Approximate Data for Small, Insightful Analytics (Ben Kornmeier, Protec...
Using Approximate Data for Small, Insightful Analytics (Ben Kornmeier, Protec...
Ā 
Web analytics at scale with Druid at naver.com
Web analytics at scale with Druid at naver.comWeb analytics at scale with Druid at naver.com
Web analytics at scale with Druid at naver.com
Ā 
DataStax: Rigorous Cassandra Data Modeling for the Relational Data Architect
DataStax: Rigorous Cassandra Data Modeling for the Relational Data ArchitectDataStax: Rigorous Cassandra Data Modeling for the Relational Data Architect
DataStax: Rigorous Cassandra Data Modeling for the Relational Data Architect
Ā 
Engineering fast indexes
Engineering fast indexesEngineering fast indexes
Engineering fast indexes
Ā 
Always On: Building Highly Available Applications on Cassandra
Always On: Building Highly Available Applications on CassandraAlways On: Building Highly Available Applications on Cassandra
Always On: Building Highly Available Applications on Cassandra
Ā 
Wide Column Store NoSQL vs SQL Data Modeling
Wide Column Store NoSQL vs SQL Data ModelingWide Column Store NoSQL vs SQL Data Modeling
Wide Column Store NoSQL vs SQL Data Modeling
Ā 
Imply at Apache Druid Meetup in London 1-15-20
Imply at Apache Druid Meetup in London 1-15-20Imply at Apache Druid Meetup in London 1-15-20
Imply at Apache Druid Meetup in London 1-15-20
Ā 
SASI: Cassandra on the Full Text Search Ride (DuyHai DOAN, DataStax) | C* Sum...
SASI: Cassandra on the Full Text Search Ride (DuyHai DOAN, DataStax) | C* Sum...SASI: Cassandra on the Full Text Search Ride (DuyHai DOAN, DataStax) | C* Sum...
SASI: Cassandra on the Full Text Search Ride (DuyHai DOAN, DataStax) | C* Sum...
Ā 
From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016
From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016
From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016
Ā 
Real time data pipeline with spark streaming and cassandra with mesos
Real time data pipeline with spark streaming and cassandra with mesosReal time data pipeline with spark streaming and cassandra with mesos
Real time data pipeline with spark streaming and cassandra with mesos
Ā 
Amazon Redshift
Amazon RedshiftAmazon Redshift
Amazon Redshift
Ā 
Scalable Data Modeling by Example (Carlos Alonso, Job and Talent) | Cassandra...
Scalable Data Modeling by Example (Carlos Alonso, Job and Talent) | Cassandra...Scalable Data Modeling by Example (Carlos Alonso, Job and Talent) | Cassandra...
Scalable Data Modeling by Example (Carlos Alonso, Job and Talent) | Cassandra...
Ā 
From stream to recommendation using apache beam with cloud pubsub and cloud d...
From stream to recommendation using apache beam with cloud pubsub and cloud d...From stream to recommendation using apache beam with cloud pubsub and cloud d...
From stream to recommendation using apache beam with cloud pubsub and cloud d...
Ā 
Analyzing Time Series Data with Apache Spark and Cassandra
Analyzing Time Series Data with Apache Spark and CassandraAnalyzing Time Series Data with Apache Spark and Cassandra
Analyzing Time Series Data with Apache Spark and Cassandra
Ā 

Viewers also liked

Understanding Cassandra internals to solve real-world problems
Understanding Cassandra internals to solve real-world problemsUnderstanding Cassandra internals to solve real-world problems
Understanding Cassandra internals to solve real-world problemsAcunu
Ā 
TOWARDS SMART & INCLUSIVE SOCIETY: BUILDING 3D IMMERSIVE MUSEUM BY CHILDREN W...
TOWARDS SMART & INCLUSIVE SOCIETY: BUILDING 3D IMMERSIVE MUSEUM BY CHILDREN W...TOWARDS SMART & INCLUSIVE SOCIETY: BUILDING 3D IMMERSIVE MUSEUM BY CHILDREN W...
TOWARDS SMART & INCLUSIVE SOCIETY: BUILDING 3D IMMERSIVE MUSEUM BY CHILDREN W...Miguel Gea
Ā 
Cassandra(no sql)ć«ć‚ˆć‚‹ć‚·ć‚¹ćƒ†ćƒ ęę”ˆćØ開ē™ŗ
Cassandra(no sql)ć«ć‚ˆć‚‹ć‚·ć‚¹ćƒ†ćƒ ęę”ˆćØ開ē™ŗCassandra(no sql)ć«ć‚ˆć‚‹ć‚·ć‚¹ćƒ†ćƒ ęę”ˆćØ開ē™ŗ
Cassandra(no sql)ć«ć‚ˆć‚‹ć‚·ć‚¹ćƒ†ćƒ ęę”ˆćØ開ē™ŗkishimotosc
Ā 
Cassandrać®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚µćƒćƒ¼ćƒˆåŒ– & web2pyć«ć‚ˆć‚‹cmsē”Øćƒ—ćƒ©ć‚°ć‚¤ćƒ³é–‹ē™ŗ
Cassandrać®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚µćƒćƒ¼ćƒˆåŒ– & web2pyć«ć‚ˆć‚‹cmsē”Øćƒ—ćƒ©ć‚°ć‚¤ćƒ³é–‹ē™ŗCassandrać®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚µćƒćƒ¼ćƒˆåŒ– & web2pyć«ć‚ˆć‚‹cmsē”Øćƒ—ćƒ©ć‚°ć‚¤ćƒ³é–‹ē™ŗ
Cassandrać®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚µćƒćƒ¼ćƒˆåŒ– & web2pyć«ć‚ˆć‚‹cmsē”Øćƒ—ćƒ©ć‚°ć‚¤ćƒ³é–‹ē™ŗkishimotosc
Ā 
Apache Cassandra for Timeseries- and Graph-Data
Apache Cassandra for Timeseries- and Graph-DataApache Cassandra for Timeseries- and Graph-Data
Apache Cassandra for Timeseries- and Graph-DataGuido Schmutz
Ā 
MongoDB IoT City Tour LONDON: Why your Dad's database won't work for IoT. Joe...
MongoDB IoT City Tour LONDON: Why your Dad's database won't work for IoT. Joe...MongoDB IoT City Tour LONDON: Why your Dad's database won't work for IoT. Joe...
MongoDB IoT City Tour LONDON: Why your Dad's database won't work for IoT. Joe...MongoDB
Ā 
GraphConnect Europe 2016 - IoT - where do Graphs fit with Business Requiremen...
GraphConnect Europe 2016 - IoT - where do Graphs fit with Business Requiremen...GraphConnect Europe 2016 - IoT - where do Graphs fit with Business Requiremen...
GraphConnect Europe 2016 - IoT - where do Graphs fit with Business Requiremen...Neo4j
Ā 
Devsumi2013怐15-e-5怑NoSQL恮野åæƒēš„ćŖä½æć„ę–¹ ļ½žApache Cassandraē·Øļ½ž
Devsumi2013怐15-e-5怑NoSQL恮野åæƒēš„ćŖä½æć„ę–¹ ļ½žApache Cassandraē·Øļ½žDevsumi2013怐15-e-5怑NoSQL恮野åæƒēš„ćŖä½æć„ę–¹ ļ½žApache Cassandraē·Øļ½ž
Devsumi2013怐15-e-5怑NoSQL恮野åæƒēš„ćŖä½æć„ę–¹ ļ½žApache Cassandraē·Øļ½žkishimotosc
Ā 
Using spark for timeseries graph analytics
Using spark for timeseries graph analyticsUsing spark for timeseries graph analytics
Using spark for timeseries graph analyticsSigmoid
Ā 
Exploring Titan and Spark GraphX for Analyzing Time-Varying Electrical Networks
Exploring Titan and Spark GraphX for Analyzing Time-Varying Electrical Networks Exploring Titan and Spark GraphX for Analyzing Time-Varying Electrical Networks
Exploring Titan and Spark GraphX for Analyzing Time-Varying Electrical Networks DataWorks Summit/Hadoop Summit
Ā 
IOT Trend and Solution Development in Taiwan
IOT Trend and Solution Development in TaiwanIOT Trend and Solution Development in Taiwan
IOT Trend and Solution Development in TaiwanAgence du NumƩrique (AdN)
Ā 
An indoor location aware system for an io t-based smart museum
An indoor location aware system for an io t-based smart museumAn indoor location aware system for an io t-based smart museum
An indoor location aware system for an io t-based smart museumieeepondy
Ā 
Data Modeling for Apache Cassandra
Data Modeling for Apache CassandraData Modeling for Apache Cassandra
Data Modeling for Apache CassandraDataStax Academy
Ā 
Build a Recommendation Engine using Amazon Machine Learning in Real-time
Build a Recommendation Engine using Amazon Machine Learning in Real-timeBuild a Recommendation Engine using Amazon Machine Learning in Real-time
Build a Recommendation Engine using Amazon Machine Learning in Real-timeAmazon Web Services
Ā 
Using AWS to Build a Graph-Based Product Recommendation System (BDT303) | AWS...
Using AWS to Build a Graph-Based Product Recommendation System (BDT303) | AWS...Using AWS to Build a Graph-Based Product Recommendation System (BDT303) | AWS...
Using AWS to Build a Graph-Based Product Recommendation System (BDT303) | AWS...Amazon Web Services
Ā 

Viewers also liked (16)

Understanding Cassandra internals to solve real-world problems
Understanding Cassandra internals to solve real-world problemsUnderstanding Cassandra internals to solve real-world problems
Understanding Cassandra internals to solve real-world problems
Ā 
TOWARDS SMART & INCLUSIVE SOCIETY: BUILDING 3D IMMERSIVE MUSEUM BY CHILDREN W...
TOWARDS SMART & INCLUSIVE SOCIETY: BUILDING 3D IMMERSIVE MUSEUM BY CHILDREN W...TOWARDS SMART & INCLUSIVE SOCIETY: BUILDING 3D IMMERSIVE MUSEUM BY CHILDREN W...
TOWARDS SMART & INCLUSIVE SOCIETY: BUILDING 3D IMMERSIVE MUSEUM BY CHILDREN W...
Ā 
Cassandra(no sql)ć«ć‚ˆć‚‹ć‚·ć‚¹ćƒ†ćƒ ęę”ˆćØ開ē™ŗ
Cassandra(no sql)ć«ć‚ˆć‚‹ć‚·ć‚¹ćƒ†ćƒ ęę”ˆćØ開ē™ŗCassandra(no sql)ć«ć‚ˆć‚‹ć‚·ć‚¹ćƒ†ćƒ ęę”ˆćØ開ē™ŗ
Cassandra(no sql)ć«ć‚ˆć‚‹ć‚·ć‚¹ćƒ†ćƒ ęę”ˆćØ開ē™ŗ
Ā 
Cassandrać®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚µćƒćƒ¼ćƒˆåŒ– & web2pyć«ć‚ˆć‚‹cmsē”Øćƒ—ćƒ©ć‚°ć‚¤ćƒ³é–‹ē™ŗ
Cassandrać®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚µćƒćƒ¼ćƒˆåŒ– & web2pyć«ć‚ˆć‚‹cmsē”Øćƒ—ćƒ©ć‚°ć‚¤ćƒ³é–‹ē™ŗCassandrać®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚µćƒćƒ¼ćƒˆåŒ– & web2pyć«ć‚ˆć‚‹cmsē”Øćƒ—ćƒ©ć‚°ć‚¤ćƒ³é–‹ē™ŗ
Cassandrać®ćƒˆćƒ©ćƒ³ć‚¶ć‚Æć‚·ćƒ§ćƒ³ć‚µćƒćƒ¼ćƒˆåŒ– & web2pyć«ć‚ˆć‚‹cmsē”Øćƒ—ćƒ©ć‚°ć‚¤ćƒ³é–‹ē™ŗ
Ā 
Apache Cassandra for Timeseries- and Graph-Data
Apache Cassandra for Timeseries- and Graph-DataApache Cassandra for Timeseries- and Graph-Data
Apache Cassandra for Timeseries- and Graph-Data
Ā 
MongoDB IoT City Tour LONDON: Why your Dad's database won't work for IoT. Joe...
MongoDB IoT City Tour LONDON: Why your Dad's database won't work for IoT. Joe...MongoDB IoT City Tour LONDON: Why your Dad's database won't work for IoT. Joe...
MongoDB IoT City Tour LONDON: Why your Dad's database won't work for IoT. Joe...
Ā 
GraphConnect Europe 2016 - IoT - where do Graphs fit with Business Requiremen...
GraphConnect Europe 2016 - IoT - where do Graphs fit with Business Requiremen...GraphConnect Europe 2016 - IoT - where do Graphs fit with Business Requiremen...
GraphConnect Europe 2016 - IoT - where do Graphs fit with Business Requiremen...
Ā 
Devsumi2013怐15-e-5怑NoSQL恮野åæƒēš„ćŖä½æć„ę–¹ ļ½žApache Cassandraē·Øļ½ž
Devsumi2013怐15-e-5怑NoSQL恮野åæƒēš„ćŖä½æć„ę–¹ ļ½žApache Cassandraē·Øļ½žDevsumi2013怐15-e-5怑NoSQL恮野åæƒēš„ćŖä½æć„ę–¹ ļ½žApache Cassandraē·Øļ½ž
Devsumi2013怐15-e-5怑NoSQL恮野åæƒēš„ćŖä½æć„ę–¹ ļ½žApache Cassandraē·Øļ½ž
Ā 
Using spark for timeseries graph analytics
Using spark for timeseries graph analyticsUsing spark for timeseries graph analytics
Using spark for timeseries graph analytics
Ā 
Exploring Titan and Spark GraphX for Analyzing Time-Varying Electrical Networks
Exploring Titan and Spark GraphX for Analyzing Time-Varying Electrical Networks Exploring Titan and Spark GraphX for Analyzing Time-Varying Electrical Networks
Exploring Titan and Spark GraphX for Analyzing Time-Varying Electrical Networks
Ā 
IOT Trend and Solution Development in Taiwan
IOT Trend and Solution Development in TaiwanIOT Trend and Solution Development in Taiwan
IOT Trend and Solution Development in Taiwan
Ā 
An indoor location aware system for an io t-based smart museum
An indoor location aware system for an io t-based smart museumAn indoor location aware system for an io t-based smart museum
An indoor location aware system for an io t-based smart museum
Ā 
Data Modeling for Apache Cassandra
Data Modeling for Apache CassandraData Modeling for Apache Cassandra
Data Modeling for Apache Cassandra
Ā 
Build a Recommendation Engine using Amazon Machine Learning in Real-time
Build a Recommendation Engine using Amazon Machine Learning in Real-timeBuild a Recommendation Engine using Amazon Machine Learning in Real-time
Build a Recommendation Engine using Amazon Machine Learning in Real-time
Ā 
Using AWS to Build a Graph-Based Product Recommendation System (BDT303) | AWS...
Using AWS to Build a Graph-Based Product Recommendation System (BDT303) | AWS...Using AWS to Build a Graph-Based Product Recommendation System (BDT303) | AWS...
Using AWS to Build a Graph-Based Product Recommendation System (BDT303) | AWS...
Ā 
Cassandra and IoT
Cassandra and IoTCassandra and IoT
Cassandra and IoT
Ā 

Similar to Modeling the IoT with TitanDB and Cassandra

Macy's: Changing Engines in Mid-Flight
Macy's: Changing Engines in Mid-FlightMacy's: Changing Engines in Mid-Flight
Macy's: Changing Engines in Mid-FlightDataStax Academy
Ā 
Tsinghua University: Two Exemplary Applications in China
Tsinghua University: Two Exemplary Applications in ChinaTsinghua University: Two Exemplary Applications in China
Tsinghua University: Two Exemplary Applications in ChinaDataStax Academy
Ā 
CA SpectrumĀ® Just Keeps Getting Better and Better
CA SpectrumĀ® Just Keeps Getting Better and BetterCA SpectrumĀ® Just Keeps Getting Better and Better
CA SpectrumĀ® Just Keeps Getting Better and BetterCA Technologies
Ā 
What We Learned About Cassandra While Building go90 (Christopher Webster & Th...
What We Learned About Cassandra While Building go90 (Christopher Webster & Th...What We Learned About Cassandra While Building go90 (Christopher Webster & Th...
What We Learned About Cassandra While Building go90 (Christopher Webster & Th...DataStax
Ā 
MongoDB World 2019: From Traditional Oil and Gas to Sustainable Energy OR Fro...
MongoDB World 2019: From Traditional Oil and Gas to Sustainable Energy OR Fro...MongoDB World 2019: From Traditional Oil and Gas to Sustainable Energy OR Fro...
MongoDB World 2019: From Traditional Oil and Gas to Sustainable Energy OR Fro...MongoDB
Ā 
Large Scale Feature Aggregation Using Apache Spark with Pulkit Bhanot and Ami...
Large Scale Feature Aggregation Using Apache Spark with Pulkit Bhanot and Ami...Large Scale Feature Aggregation Using Apache Spark with Pulkit Bhanot and Ami...
Large Scale Feature Aggregation Using Apache Spark with Pulkit Bhanot and Ami...Databricks
Ā 
Turnkey Riak KV Cluster
Turnkey Riak KV ClusterTurnkey Riak KV Cluster
Turnkey Riak KV ClusterJoe Olson
Ā 
The Flink - Apache Bigtop integration
The Flink - Apache Bigtop integrationThe Flink - Apache Bigtop integration
The Flink - Apache Bigtop integrationMƔrton Balassi
Ā 
GC Tuning Confessions Of A Performance Engineer
GC Tuning Confessions Of A Performance EngineerGC Tuning Confessions Of A Performance Engineer
GC Tuning Confessions Of A Performance EngineerMonica Beckwith
Ā 
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...Adrian Cockcroft
Ā 
Observer, a "real life" time series application
Observer, a "real life" time series applicationObserver, a "real life" time series application
Observer, a "real life" time series applicationKĆ©vin LOVATO
Ā 
Chicago DevOps Meetup Nov2019
Chicago DevOps Meetup Nov2019Chicago DevOps Meetup Nov2019
Chicago DevOps Meetup Nov2019Mike Villiger
Ā 
Viavi_TeraVM Core Emulator.pptx
Viavi_TeraVM Core Emulator.pptxViavi_TeraVM Core Emulator.pptx
Viavi_TeraVM Core Emulator.pptxmani723
Ā 
Real-Time Health Score Application using Apache Spark on Kubernetes
Real-Time Health Score Application using Apache Spark on KubernetesReal-Time Health Score Application using Apache Spark on Kubernetes
Real-Time Health Score Application using Apache Spark on KubernetesDatabricks
Ā 
Apache Druid Design and Future prospect
Apache Druid Design and Future prospectApache Druid Design and Future prospect
Apache Druid Design and Future prospectc-bslim
Ā 
Hortonworks Technical Workshop: What's New in HDP 2.3
Hortonworks Technical Workshop: What's New in HDP 2.3Hortonworks Technical Workshop: What's New in HDP 2.3
Hortonworks Technical Workshop: What's New in HDP 2.3Hortonworks
Ā 
Volta: Logging, Metrics, and Monitoring as a Service
Volta: Logging, Metrics, and Monitoring as a ServiceVolta: Logging, Metrics, and Monitoring as a Service
Volta: Logging, Metrics, and Monitoring as a ServiceLN Renganarayana
Ā 
Durability Simulator Design for OpenStack Swift
Durability Simulator Design for OpenStack SwiftDurability Simulator Design for OpenStack Swift
Durability Simulator Design for OpenStack SwiftKota Tsuyuzaki
Ā 
Intel open stack-summit-session-nov13-final
Intel open stack-summit-session-nov13-finalIntel open stack-summit-session-nov13-final
Intel open stack-summit-session-nov13-finalDeepak Mane
Ā 
Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...
Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...
Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...Motoki Kakinuma
Ā 

Similar to Modeling the IoT with TitanDB and Cassandra (20)

Macy's: Changing Engines in Mid-Flight
Macy's: Changing Engines in Mid-FlightMacy's: Changing Engines in Mid-Flight
Macy's: Changing Engines in Mid-Flight
Ā 
Tsinghua University: Two Exemplary Applications in China
Tsinghua University: Two Exemplary Applications in ChinaTsinghua University: Two Exemplary Applications in China
Tsinghua University: Two Exemplary Applications in China
Ā 
CA SpectrumĀ® Just Keeps Getting Better and Better
CA SpectrumĀ® Just Keeps Getting Better and BetterCA SpectrumĀ® Just Keeps Getting Better and Better
CA SpectrumĀ® Just Keeps Getting Better and Better
Ā 
What We Learned About Cassandra While Building go90 (Christopher Webster & Th...
What We Learned About Cassandra While Building go90 (Christopher Webster & Th...What We Learned About Cassandra While Building go90 (Christopher Webster & Th...
What We Learned About Cassandra While Building go90 (Christopher Webster & Th...
Ā 
MongoDB World 2019: From Traditional Oil and Gas to Sustainable Energy OR Fro...
MongoDB World 2019: From Traditional Oil and Gas to Sustainable Energy OR Fro...MongoDB World 2019: From Traditional Oil and Gas to Sustainable Energy OR Fro...
MongoDB World 2019: From Traditional Oil and Gas to Sustainable Energy OR Fro...
Ā 
Large Scale Feature Aggregation Using Apache Spark with Pulkit Bhanot and Ami...
Large Scale Feature Aggregation Using Apache Spark with Pulkit Bhanot and Ami...Large Scale Feature Aggregation Using Apache Spark with Pulkit Bhanot and Ami...
Large Scale Feature Aggregation Using Apache Spark with Pulkit Bhanot and Ami...
Ā 
Turnkey Riak KV Cluster
Turnkey Riak KV ClusterTurnkey Riak KV Cluster
Turnkey Riak KV Cluster
Ā 
The Flink - Apache Bigtop integration
The Flink - Apache Bigtop integrationThe Flink - Apache Bigtop integration
The Flink - Apache Bigtop integration
Ā 
GC Tuning Confessions Of A Performance Engineer
GC Tuning Confessions Of A Performance EngineerGC Tuning Confessions Of A Performance Engineer
GC Tuning Confessions Of A Performance Engineer
Ā 
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
Ā 
Observer, a "real life" time series application
Observer, a "real life" time series applicationObserver, a "real life" time series application
Observer, a "real life" time series application
Ā 
Chicago DevOps Meetup Nov2019
Chicago DevOps Meetup Nov2019Chicago DevOps Meetup Nov2019
Chicago DevOps Meetup Nov2019
Ā 
Viavi_TeraVM Core Emulator.pptx
Viavi_TeraVM Core Emulator.pptxViavi_TeraVM Core Emulator.pptx
Viavi_TeraVM Core Emulator.pptx
Ā 
Real-Time Health Score Application using Apache Spark on Kubernetes
Real-Time Health Score Application using Apache Spark on KubernetesReal-Time Health Score Application using Apache Spark on Kubernetes
Real-Time Health Score Application using Apache Spark on Kubernetes
Ā 
Apache Druid Design and Future prospect
Apache Druid Design and Future prospectApache Druid Design and Future prospect
Apache Druid Design and Future prospect
Ā 
Hortonworks Technical Workshop: What's New in HDP 2.3
Hortonworks Technical Workshop: What's New in HDP 2.3Hortonworks Technical Workshop: What's New in HDP 2.3
Hortonworks Technical Workshop: What's New in HDP 2.3
Ā 
Volta: Logging, Metrics, and Monitoring as a Service
Volta: Logging, Metrics, and Monitoring as a ServiceVolta: Logging, Metrics, and Monitoring as a Service
Volta: Logging, Metrics, and Monitoring as a Service
Ā 
Durability Simulator Design for OpenStack Swift
Durability Simulator Design for OpenStack SwiftDurability Simulator Design for OpenStack Swift
Durability Simulator Design for OpenStack Swift
Ā 
Intel open stack-summit-session-nov13-final
Intel open stack-summit-session-nov13-finalIntel open stack-summit-session-nov13-final
Intel open stack-summit-session-nov13-final
Ā 
Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...
Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...
Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...
Ā 

Recently uploaded

WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
Ā 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
Ā 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
Ā 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
Ā 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
Ā 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
Ā 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
Ā 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
Ā 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
Ā 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
Ā 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp KrisztiƔn
Ā 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
Ā 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
Ā 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
Ā 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
Ā 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
Ā 
WSO2CON 2024 - Freedom Firstā€”Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom Firstā€”Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom Firstā€”Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom Firstā€”Unleashing Developer Potential with Open SourceWSO2
Ā 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
Ā 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
Ā 

Recently uploaded (20)

WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
Ā 
Abortion Pill Prices Tembisa [(+27832195400*)] šŸ„ Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] šŸ„ Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] šŸ„ Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] šŸ„ Women's Abortion Clinic in T...
Ā 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
Ā 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
Ā 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Ā 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
Ā 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
Ā 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
Ā 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
Ā 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
Ā 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
Ā 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
Ā 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
Ā 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Ā 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Ā 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
Ā 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
Ā 
WSO2CON 2024 - Freedom Firstā€”Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom Firstā€”Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom Firstā€”Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom Firstā€”Unleashing Developer Potential with Open Source
Ā 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
Ā 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
Ā 

Modeling the IoT with TitanDB and Cassandra

  • 1. Modeling the IoT with TitanDB and Cassandra
  • 2. Intro ā€¢ Ted Wilmes ā€¢ Data warehouse engineer at WellAware - wellaware.us ā€¢ Building a SaaS oil and gas production monitoring and analytics platform ā€¢ Collect production O&G data from the field via cellular, satellite, and other means and deliver to our customers via mobile and browser clients Ā© 2015. All Rights Reserved. 2
  • 3. Ā© 2015. All Rights Reserved. 1 The property graph model and TitanDB 2 Modeling IoT 3 Time series and performance
  • 4. Property graph model Ā© 2015. All Rights Reserved. 4 person name: Ted person name: George knows metOn: June 1,2012
  • 5. Querying with Gremlin Ā© 2015. All Rights Reserved. 5 person name: Ted person name: George knows metOn: June 1,2012 g.V().hasLabel(ā€œpersonā€).has(ā€œnameā€, ā€œTedā€).out(ā€œknowsā€).values(ā€œnameā€) > George
  • 6. TitanDB ā€¢ Graph database that supports pluggable storage layers ā€¢ Designed from the ground up to provide OLTP performance against large graphs with a particular focus on supporting high degree vertices (vertices with many edges) ā€¢ Implements Apache TinkerPop 3 APIs ā€¢ Cassandra acts as solid foundation providing high availability, performance, and ease of operation Ā© 2015. All Rights Reserved. 6
  • 7. Our Internet of Things Ā© 2015. All Rights Reserved. 7 Things People Organizations Places Time
  • 8. A hypothetical use case: IoTā€¦ Ā© 2015. All Rights Reserved. 8 in SPACE
  • 9. Ā© 2015. All Rights Reserved. 9 Spaceship Mars Base Space Station Rocket Satellite
  • 10. Ā© 2015. All Rights Reserved. 10
  • 11. Many dimensions Ā© 2015. All Rights Reserved. 11 Rocket Starfleet Acme Rockets Delta Booster operates builds isModel Major Tom pilots Joyce maintains
  • 12. Many times, a ā€œthingā€ is a system of systems Ā© 2015. All Rights Reserved. 12 http://stardust.jpl.nasa.gov/mission/delta2.html Rocket 1st Stage 2nd Stage 3rd Stage Interstage Fuel Tank Oxidizer Guidance Electronics CPU Memory
  • 13. Ā© 2015. All Rights Reserved. 13 Guidance Electronics CPU Memory JVM Heap Usage Thread Count Continuing to zoom in
  • 14. Heap Usage Ā© 2015. All Rights Reserved. 14 JVM Thread Count Alarm Alarm Condition Joyce triggers notifies monitors
  • 15. Ā© 2015. All Rights Reserved. 15 Major Tom Alarm Alarm Condition Joyce triggers notifies reports to Starfleet employs employs
  • 16. IoT modeling in summary ā€¢ Things can be interconnecting systems of other things ā€¢ High fidelity model of ā€˜realityā€™ supports wide variety of use cases vs. a disconnected set of entities ā€¢ IoT app is really only one part about things, donā€™t forget to include everything else! (social, organizational, etc.) Ā© 2015. All Rights Reserved. 16
  • 17. Time series & Performance Ā© 2015. All Rights Reserved. 17
  • 18. Ā© 2015. All Rights Reserved. 18 Guidance Electronics CPU Memory JVM Heap Usage Thread Count
  • 19. Ā© 2015. All Rights Reserved. 19 Time series in Titan Heap Usage JVM ?
  • 20. Ā© 2015. All Rights Reserved. 20 Our basic time series requirements ā€¢ Support a large volume of low latency writes ā€¢ Low latency retrieval on primarily the most recent data
  • 21. Ā© 2015. All Rights Reserved. 21 A selection of factors affecting Titan performance ā€¢ Titan deployment topology and configuration ā€¢ All your usual Cassandra tuning tips and tricks ā€¢ Titan JVM tuning ā€¢ selection of appropriate garbage collector ā€¢ GC parameters ā€¢ like Cassandra, worthwhile to adjust NewSize ā€¢ Data modeling ā€¢ Indexing ā€¢ Global graph indices (native Titan vs. external) ā€¢ Vertex centric indices ā€¢ Titan different caches - transaction cache & the database-level cache
  • 22. Ā© 2015. All Rights Reserved. 22 A selection of factors affecting Titan performance ā€¢ Titan deployment topology and configuration ā€¢ All your usual Cassandra tuning tips and tricks ā€¢ Titan JVM tuning ā€¢ selection of appropriate garbage collector ā€¢ GC parameters ā€¢ like Cassandra, worthwhile to adjust NewSize ā€¢ Data modeling ā€¢ Indexing ā€¢ Global graph indices ā€¢ Vertex centric indices ā€¢ Titan different caches - transaction cache & the database-level cache
  • 23. Deployment options Ā© 2015. All Rights Reserved. 23 mars-north-1 Local Embedded Remote
  • 24. Ā© 2015. All Rights Reserved. 24
  • 25. Ā© 2015. All Rights Reserved. 25
  • 26. Ā© 2015. All Rights Reserved. 26 But first, time series with CQL * Brady Gentile - https://academy.datastax.com/demos/getting-started-time-series-data-modeling
  • 27. Ā© 2015. All Rights Reserved. 27 But first, time series with CQL * Brady Gentile - https://academy.datastax.com/demos/getting-started-time-series-data-modeling CQL
  • 28. Ā© 2015. All Rights Reserved. 28 First approach Heap Usage Chunk chunkStart: 1442880000000ā€Ø chunkEnd: 1442966400000 Chunk chunkStart: 1442966400000ā€Ø chunkEnd: 1442966400000 Observation Observation tstamp: 1442880000001 tstamp: 1442880000002 ā€¢ Intuitive and easy to query ā€¢ You can imagine adding further levels to the hierarchy following a year->month->day format ā€¢ Individual observations can be associated with other pieces of data ā€¢ Observations can be filtered by timestamp with edge filter but you still have to retrieve a large number of disparate vertices
  • 29. Ā© 2015. All Rights Reserved. 29 A further refinement Heap Usage Chunk chunkStart: 1442880000000ā€Ø chunkEnd: 1442966400000 Chunk chunkStart: 1442966400000ā€Ø chunkEnd: 1442966400000 ā€¢ How do we reduce the number of vertices (think Cassandra partitions) that we need to retrieve?
  • 30. Ā© 2015. All Rights Reserved. 30 timestamp value 1. Move all properties to the edge 2. Make the edge ā€œundirectedā€ or, a combo of the two approaches 1. Copy the properties to the edge 2. Keep the discrete observation vertex Chunk tstamp value Heap Usage
  • 31. Ā© 2015. All Rights Reserved. 31 Chunk vertex with its observations Vertex ID chunkStart chunkEnd obs. @ t2 obs. @ t1 obs. @ t0 Observations in time descending order
  • 32. Ā© 2015. All Rights Reserved. 32 Sample Gremlin queries ā€¢ observations > 1442162072000 ā€¢ chunk.outE().has(ā€œtstampā€, gt(1442162072000)) ā€¢ observations between 1442162072000 and 1442162073000 ā€¢ chunk.outE().has(ā€œtstampā€, between(1442162072000, 1442162073000)) ā€¢ Most recent observation before now ā€¢ chunk.outE().has(ā€œtstampā€, lte(System.currentTimeMillis()). order().by(ā€œtstampā€, decr).limit(1) ā€¢ You can wrap this in your own time series specific API ā€¢ new SeriesQuery(series1).interval(startTstamp, endTstamp).decr().limit(1)
  • 33. Ā© 2015. All Rights Reserved. 33 Pros and cons vs. separate CQL or other tsdb ā€¢ Pros ā€¢ Allows for a single unified view of your IoT data, maintaining direct connectivity between sensor data & the other entities ā€¢ Gremlin works well for processing streams of time series data ā€¢ Cons ā€¢ Storage format is not as compact ā€¢ Extra overhead of managing ā€˜chunksā€™ versus CQL primary key taking care of that for us (eg. chunk cache)
  • 34. Ā© 2015. All Rights Reserved. 34 Heap Usage Chunk label: hasChunk chunkStart: 1442880000000ā€Ø chunkEnd: 1442966400000 Chunk label: hasChunk chunkStart: 1442966400000ā€Ø chunkEnd: 1442966400000 A simple query - retrieve all the heap usage chunks gremlin> g.V(4).out(ā€˜hasChunkā€™).values(ā€˜chunkStartā€™) ==> 1442880000000 ==> 1442966400000
  • 35. Ā© 2015. All Rights Reserved. 35 Getting a vertex by id gremlin> g.V(4) ==>v[4] Yes Does this vertex exist? Vertex is now loaded in Titan transaction cache
  • 36. Ā© 2015. All Rights Reserved. 36 Aside - a tool of the trade Profiler with socket tracing
  • 37. Ā© 2015. All Rights Reserved. 37
  • 38. Ā© 2015. All Rights Reserved. 38
  • 39. Ā© 2015. All Rights Reserved. 39 Retrieving properties gremlin> g.V(4).valueMap() ==>[sensorType:[heap usage], units:[bytes]] Two properties Retrieve properties Vertex properties are now loaded in the Titan transaction cache
  • 40. Ā© 2015. All Rights Reserved. 40 2 Round trips Two properties Retrieve properties Yes Does this vertex exist? ā€¢ Not a big deal for single vertex lookup with property retrieval but can add up ā€¢ Exacerbated by magnitude of latency between Titan and Cassandra
  • 41. Ā© 2015. All Rights Reserved. 41 Querying for adjacent vertices gremlin> g.V(4).out(ā€˜hasChunkā€™).values(ā€˜chunkStartā€™) ==> 1442880000000 ==> 1442966400000 Does this vertex exist? Get 1st chunk properties Get edges Get 2nd chunk properties
  • 42. Ā© 2015. All Rights Reserved. 42 Batch requests Does this vertex exist? Get 1st chunk properties Get 2nd chunk properties Get edges Get 2nd chunk properties ā€¢ query.batch = true ā€¢ ā€œWhether traversal queries should be batched when executed against the storage backend. This can lead to significant performance improvement if there is a non-trivial latency to the backend.ā€ - http:// s3.thinkaurelius.com/docs/titan/0.9.0-M2/titan-config-ref.html gremlin> g.V(4).out(ā€˜hasChunkā€™).values(ā€˜chunkStartā€™) ==> 1442880000000 ==> 1442966400000
  • 43. Ā© 2015. All Rights Reserved. 43 Remove initial exists query ā€¢ storage.batch-loading = true ā€¢ WARNING - this disables vertex ā€˜existsā€™ checks gremlin> g.V(4).out(ā€˜hasChunkā€™).values(ā€˜chunkStartā€™) ==> 1442880000000 ==> 1442966400000 Does this vertex exist? Get 1st chunk properties Get 2nd chunk properties Get edges Get 2nd chunk properties
  • 44. Ā© 2015. All Rights Reserved. 44 Optimizing your write gremlin> chunk.addEdge(ā€œhasObservationā€, chunk, ā€œtstampā€, 1442162072000, ā€œvalueā€, 500.123) Does this vertex exist? Write new edge
  • 45. Ā© 2015. All Rights Reserved. 45 Optimizing your writes gremlin> chunk.addEdge(ā€œhasObservationā€, chunk, ā€œtstampā€, 1442162072000, ā€œvalueā€, 500.123) Does this vertex exist? Write new edge ā€¢ Remove the read from your write path - storage.batch-loading = true ā€¢ batch your commits, measure latency and throughput on your system to find a good commit size
  • 46. Ā© 2015. All Rights Reserved. 46 storage.batch-loading=false
  • 47. Ā© 2015. All Rights Reserved. 47 storage.batch-loading=true
  • 48. Ā© 2015. All Rights Reserved. 48 Quick and dirty write performance numbers wps 0 22,500 45,000 67,500 90,000 ā€¢ 9 m3.2xlarge nodes w/ C* 2.2, RF = 3, writing @ quorum, default C* settings ā€¢ 1 m3.2xlarge ā€œclientā€ w/ Titan 1.0-SNAPSHOT, 10 write threads writing 100 million points in total across 100,000 series
  • 49. Ā© 2015. All Rights Reserved. 49 In summary ā€¢ Understanding of underlying data storage format can help with performance tuning ā€¢ Writes ā€¢ remove reads from the write path where possible ā€¢ test different batch commit sizes ā€¢ when writing vertices you may need to adjust ids.block-size and ids.renew-percentage ā€¢ Reads ā€¢ batch communication between Titan and Cassandra with query.batch=true ā€¢ make use of global and vertex centric indices when possible
  • 50. What questions do you have and thanks! Thanks to the Apache TinkerPop,TitanDB team, my awesome coworkers, and the folks at DataStax for putting on an excellent summit! Ted Wilmes Data Warehouse Engineer @trwilmes tedwilmes@wellaware.us Ā© 2015. All Rights Reserved. 50