SlideShare a Scribd company logo
Microservices: Terabytes in
Microseconds
Peter Lawrey
Higher FrequencyTrading Ltd
Per Minborg
Speedment, Inc.
About Per 3
About Peter
Microservices
• Microservices bring together best practices from a variety of areas
• Most likely you are already using some of these best practices
Microservices
• It sounds like marketing hype
• It all sounds pretty familiar
• It just a rebranding of stuff we already do
• There is room for improvement in what we do
• There are some tools, and ideas we could apply to our systems
without changing too much
• Simple component based design
• Asynchronous messaging
• Automated, dynamic deployment of services
• Service private data sets
• Transparent messaging
• Teams can develop independently based on well defined contracts
Microservices
Terabytes in Microseconds Solution
Speed
Data volume
GB TB EB
us
ms
s
min
hour
days
Speedment
Chronicle
Terabytes in Microseconds Solution
Maps the data in a key-value store
Synchronizes SQL Data into an in-
JVM-memory data store
Maps the data in Column key stores
Provides application APIs
Terabytes
1. Synchronization
2. Key Value Store
3. Column Key Stores
4. API
Microservice 3
Microservice 2
Microservice
1. Synchronization
• Synchronizes SQL Data with the in-JVM-memory solution:
• Initially
• Over time
• Periodically
• Reactively
1. Synchronization
Periodically
• Dumps are reloaded
periodically
• All data elements are reloaded
• Data remains unchanged
between reloads
• System restart is just a reload
• MVCC so that several dumps
can be active at the same time
Reactively
• Changed data is captured in the
Database
• Changed data events are pushed into
memory
• Events are grouped in transactions
• Cache updates are persisted
• Data changes all the time
• System restart, replay the missed
events
or
1. Synchronization
*
Periodically Reactively Poll Comparison
Max Data Age Dump period Replication Latency- ms Eviction time
Lookup Performance Consistently Instant Consistently Instant 20% very slow
Consistency Eventually Consistent Eventually Consistent Inconsistent – stale data
Database Cache
Update Load
~ Total Size / Dump ~ Rate of Change ~ Cache size * Eviction
Restart Complete Reload Down time*update rate -
>10% of down time
Heat-up time
1. Synchronization Properties
• Detect changes in a database
• Buffer the changes
• Can replay the changes later on
• Preserve order
• Preserve transactions
• See data as it was persisted
• Detect changes from any source
JVM
Column
Oriented
CQRS
In-JVM-
Memory
1. Synchronization
How is data synchronized?
• Periodic MVCC reload
• Transaction log harvesting
• Event Sourcing and CQRS
2. Key Value Store
Makes it possible to
• Having Maps that can exceed the server’s RAM by up to 40x
• Opening up the path to mammoth JVMs with tens of terabytes
• Data persistence inside JVM provides fast restart
• When you have multiple instances of a service they can share the data with a
single copy in memory
32 bit Operating System (31-bit heap)
Compress Oops in Java 7 (35-bit)
• Using the default of
–XX:+UseCompressedOops
• In a 64-bit JVM, it can use “compressed” memory references
• This allows the heap to be up to 32 GB without the overhead of 64-bit object references. The
Oracle/OpenJDK JVM still uses 64-bit class references by default
• As all object must be 8-byte aligned, the lower 3 bits of the address are always 000 and don’t
need to be stored. This allows the heap to reference 4 billion * 8-bytes or 32 GB
• Uses 32-bit references
Compressed Oops with 8 Byte Alignment
Compress Oops in Java 8 (36 bits)
• Using the default of
–XX:+UseCompressedOops
–XX:ObjectAlignmentInBytes=16
• In a 64-bit JVM, it can use “compressed” memory references
• This allows the heap to be up to 64 GB without the overhead of 64-bit object references. The
Oracle/OpenJDK JVM still uses 64-bit class references by default
• As all object must be 8 or 16-byte aligned, the lower 3 or 4 bits of the address are always
zeros and don’t need to be stored. This allows the heap to reference 4 billion * 16-bytes or 64
GB
• Uses 32-bit references
64-bit References in Java (100+ GB)
• A small but significant overhead on main memory use
• Reduces the efficiency of CPU caches as less objects can fit in
• Can address up to the limit of the free memory. Limited to main memory
• GC pauses become a real concern and can take tens of second or many minutes
• For larger heap sizes, using the G1 collector may be a good choice.
NUMA Regions (~40 bits)
• Large machine are limited in how large a single bank of memory can be. This varies based on
the architecture
• Ivy and Sandy bridge Xeon processors are limited to addressing 40 bits of real memory
• In Haswell and Boradwell this has been lifted to 46-bits
• Each Socket has “local” access to a bank of memory, however to access other bank it may
need to use a bus. This is much slower
• The GC of a JVM can perform very poorly if it doesn’t sit within one NUMA region. Ideally
you want a JVM to use just one NUMA region
NUMA Regions (~40 bits)
Virtual Address Space (48-bit)
Virtual Address Space (48-bit)
Memory Mapped Files (48+ bits)
• Memory mappings are not limited to main memory size
• 64-bit OS support 128TiB to 256TiB virtual memory at once
• For larger data sizes, memory mapping need to be managed and cached manually
• Can be shared between processes
• A library can hide the 48-bit limitation by caching memory mapping
Peta Byte JVMs (50+ bits)
• If you are receiving 1 GB/s down a 10 Gig-E line in two weeks you will have received over 1 PB
• Managing this much data in large servers is more complex than your standard JVM
• Replication is critical. Large complex systems, are more likely to fail and take longer to
recover
• You can have systems which cannot be recovered in the normal way. i.e. Unless you recover
faster than new data is added, you will never catch up
Peta Byte JVMs (50+ bits)
Peta Byte JVMs (50+ bits)
3. Column Key Store
• Column Key Stores are used much like database indexes
• The Column Key Stores can produce data lazily
• Can be mapped onto memory mapped files
3. Column Key Store
• Features over ConcurrentNavigableMap
• Handles null values
• Can handle several values for one key
• Can serialize data off-heap
• Can map onto files
• Can compress its keys
• Contains a bi-directional skip dictionary
• Remains performant for billions and trillions of entries
• Supports transactions
3. Column Key Store
Filesystem
Page cache
User Space Kernel Space
Physical memory
Disk blocks
SSD
Page mapping
Microservice JVM
mapped buffer filesystem pages
memory pages
3. Column Key Store
Filesystem
Page cache
User Space Kernel Space
Physical memory
Disk blocks
SSD
Page mapping
Microservice1 JVM 2
filesystem pages
memory pages
mapped buffer
Microservice1 JVM 1
mapped buffer
3. Column Key Store
• O(1) operations:
• equals, notEquals
• isNull, isNotNull
• in, notIn
• sort
• O(log N) operations
• <, <=, >, >=
• between
• startsWith(String)
• O(N)
• matches(regexp)
3. Column Key Store
0
50
100
150
200
250
300
350
1 10 20 30 40 50 60 70 80 90 100
Big-Ohs
O(1) O(log N) O(N) O(NlogN)
3. Column Key Store
Key-Value
Store
ID
Column Key
Store
User.AGE.greaterThan(42)
AGE
Column Key
Store
NAME
Column Key
Store
greaterThan(42) Keys Values
User
3. Column Key Store - The Stream Pipeline
Key-Value
Store
AGE
Column Key
Store
greaterThan(42) Keys
Values
3. Column Key Store - Parallelism
Key-Value
Store
AGE
Column Key
Store
greaterThan(42)
Parallel
Keys
Parallel
Values
Optional
Parallel
Strategy
4. API
• Provides application APIs
• Java 8 Stream API
• REST API
4. API
• Speedment generates Java code automatically from SQL metadata
• Free from hand coding errors
• Reduces development time
• Improves the application quality
• Reduces maintenance for applications
• Uses standard streams for querying
• Custom code possibilities
4. API Java 8 Stream API
REST API
users.stream()
.filter(AGE.greaterThen(42))
.forEach(someOperation());
https://mysite/user/
?filter=[{"property":”age",
”operator":”gt","value":42}]
4. API Java 8 Stream API
REST API
users.stream()
.filter(AGE.greaterThen(42))
.skip(10)
.limit(100)
.sorted(NAME.comparator())
.forEach(someOperation());
https://mysite/user/
?filter=[{"property":”age",
”operator":”gt","value":42}]
&skip=10
&limit=100
&sort=[{"property":”name", ”direction":”ASC”}]
4. API - Parallelism
• Java 8 Stream API
users.stream()
.parallel()
.filter(AGE.greaterThen(42))
.flatMap(users::findLogins)
.forEach(expensiveOperation());
Demo 1
• 300,000 Users
• Off Heap Data Store and Key-Value map
• Test
• Find all users with id = 42
• Count them
• Add the count to a sum
• Iterate 1,000,000 times
• JVMWarmup and then Benchmark
• Sum will be 1,000,000
• A standard MySQL database will process 2,000TPS on a 4 CPU
laptop like mine
Demo 2
• 1,000,000 Users
• Tests
• ID.equal(42)
• ID.greaterOrEqual(42)
• ID.in(42, 43, 44)
• ID.between(42, 45)
Demo 3
Replication demo
Compare Latencies Using the Speed of Light
During the time a database makes a 1 s query, how
far will the light move?
Database CPU L1 cache
Conclusion : Do not place your data on the moon,
keep it close by using in-JVM-memory technology!
Epic Threshold for Mankind Passed in 2016
Conclusion: Quit drinking coffee
and buy more RAM for your application
server instead!
Microservices Solution
MS1 MS1 MS1 MS2 MS2 MS2 MS3 MS3 MS3
Speedment
Chronicle
Speedment
Chronicle
Speedment
Chronicle
Microservices JVM
• The solution maps Java NavigableMaps to persistent stores (files)
• The views of the maps are available for any JVM that has access to
these files
• Microservice JVMs can be started or restarted very rapidly
• Access to these maps will be gained in millisecond time
• These maps can be shared instantly between several microservice
JVMs
• New microservice instances are added, removed, or restarted very
quickly
If You Only Remember One Thing….
Speed
Data volume
GB TB EB
us
ms
s
min
hour
days
Thank you!
sales@chronicle.software
@ChronicleUG
http://chronicle.software
minborg@speedment.com
@Speedment
www.speedment.com
www.speedment.org
Ad

More Related Content

What's hot (20)

Sql server 2016 it just runs faster sql bits 2017 edition
Sql server 2016 it just runs faster   sql bits 2017 editionSql server 2016 it just runs faster   sql bits 2017 edition
Sql server 2016 it just runs faster sql bits 2017 edition
Bob Ward
 
Gs08 modernize your data platform with sql technologies wash dc
Gs08 modernize your data platform with sql technologies   wash dcGs08 modernize your data platform with sql technologies   wash dc
Gs08 modernize your data platform with sql technologies wash dc
Bob Ward
 
Brk3288 sql server v.next with support on linux, windows and containers was...
Brk3288 sql server v.next with support on linux, windows and containers   was...Brk3288 sql server v.next with support on linux, windows and containers   was...
Brk3288 sql server v.next with support on linux, windows and containers was...
Bob Ward
 
Unique ID generation in distributed systems
Unique ID generation in distributed systemsUnique ID generation in distributed systems
Unique ID generation in distributed systems
Dave Gardner
 
Transactions and Concurrency Control Patterns
Transactions and Concurrency Control PatternsTransactions and Concurrency Control Patterns
Transactions and Concurrency Control Patterns
Vlad Mihalcea
 
Brk2051 sql server on linux and docker
Brk2051 sql server on linux and dockerBrk2051 sql server on linux and docker
Brk2051 sql server on linux and docker
Bob Ward
 
Experience sql server on l inux and docker
Experience sql server on l inux and dockerExperience sql server on l inux and docker
Experience sql server on l inux and docker
Bob Ward
 
Inside sql server in memory oltp sql sat nyc 2017
Inside sql server in memory oltp sql sat nyc 2017Inside sql server in memory oltp sql sat nyc 2017
Inside sql server in memory oltp sql sat nyc 2017
Bob Ward
 
memcached Distributed Cache
memcached Distributed Cachememcached Distributed Cache
memcached Distributed Cache
Aniruddha Chakrabarti
 
AWS Summit Berlin 2012 Talk on Web Data Commons
AWS Summit Berlin 2012 Talk on Web Data CommonsAWS Summit Berlin 2012 Talk on Web Data Commons
AWS Summit Berlin 2012 Talk on Web Data Commons
Hannes Mühleisen
 
Level DB - Quick Cheat Sheet
Level DB - Quick Cheat SheetLevel DB - Quick Cheat Sheet
Level DB - Quick Cheat Sheet
Aniruddha Chakrabarti
 
XPages Performance Master Class - Survive in the fast lane on the Autobahn (E...
XPages Performance Master Class - Survive in the fast lane on the Autobahn (E...XPages Performance Master Class - Survive in the fast lane on the Autobahn (E...
XPages Performance Master Class - Survive in the fast lane on the Autobahn (E...
BCC - Solutions for IBM Collaboration Software
 
qcon
qconqcon
qcon
nkallen
 
MongoDB at eBay
MongoDB at eBayMongoDB at eBay
MongoDB at eBay
MongoDB
 
NoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learnedNoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learned
La FeWeb
 
Memcached Code Camp 2009
Memcached Code Camp 2009Memcached Code Camp 2009
Memcached Code Camp 2009
NorthScale
 
Melbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDBMelbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDB
Yuval Ararat
 
Big data processing with Apache Spark and Oracle Database
Big data processing with Apache Spark and Oracle DatabaseBig data processing with Apache Spark and Oracle Database
Big data processing with Apache Spark and Oracle Database
Martin Toshev
 
MongoDB - An Agile NoSQL Database
MongoDB - An Agile NoSQL DatabaseMongoDB - An Agile NoSQL Database
MongoDB - An Agile NoSQL Database
Gaurav Awasthi
 
Compare DynamoDB vs. MongoDB
Compare DynamoDB vs. MongoDBCompare DynamoDB vs. MongoDB
Compare DynamoDB vs. MongoDB
Amar Das
 
Sql server 2016 it just runs faster sql bits 2017 edition
Sql server 2016 it just runs faster   sql bits 2017 editionSql server 2016 it just runs faster   sql bits 2017 edition
Sql server 2016 it just runs faster sql bits 2017 edition
Bob Ward
 
Gs08 modernize your data platform with sql technologies wash dc
Gs08 modernize your data platform with sql technologies   wash dcGs08 modernize your data platform with sql technologies   wash dc
Gs08 modernize your data platform with sql technologies wash dc
Bob Ward
 
Brk3288 sql server v.next with support on linux, windows and containers was...
Brk3288 sql server v.next with support on linux, windows and containers   was...Brk3288 sql server v.next with support on linux, windows and containers   was...
Brk3288 sql server v.next with support on linux, windows and containers was...
Bob Ward
 
Unique ID generation in distributed systems
Unique ID generation in distributed systemsUnique ID generation in distributed systems
Unique ID generation in distributed systems
Dave Gardner
 
Transactions and Concurrency Control Patterns
Transactions and Concurrency Control PatternsTransactions and Concurrency Control Patterns
Transactions and Concurrency Control Patterns
Vlad Mihalcea
 
Brk2051 sql server on linux and docker
Brk2051 sql server on linux and dockerBrk2051 sql server on linux and docker
Brk2051 sql server on linux and docker
Bob Ward
 
Experience sql server on l inux and docker
Experience sql server on l inux and dockerExperience sql server on l inux and docker
Experience sql server on l inux and docker
Bob Ward
 
Inside sql server in memory oltp sql sat nyc 2017
Inside sql server in memory oltp sql sat nyc 2017Inside sql server in memory oltp sql sat nyc 2017
Inside sql server in memory oltp sql sat nyc 2017
Bob Ward
 
AWS Summit Berlin 2012 Talk on Web Data Commons
AWS Summit Berlin 2012 Talk on Web Data CommonsAWS Summit Berlin 2012 Talk on Web Data Commons
AWS Summit Berlin 2012 Talk on Web Data Commons
Hannes Mühleisen
 
MongoDB at eBay
MongoDB at eBayMongoDB at eBay
MongoDB at eBay
MongoDB
 
NoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learnedNoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learned
La FeWeb
 
Memcached Code Camp 2009
Memcached Code Camp 2009Memcached Code Camp 2009
Memcached Code Camp 2009
NorthScale
 
Melbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDBMelbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDB
Yuval Ararat
 
Big data processing with Apache Spark and Oracle Database
Big data processing with Apache Spark and Oracle DatabaseBig data processing with Apache Spark and Oracle Database
Big data processing with Apache Spark and Oracle Database
Martin Toshev
 
MongoDB - An Agile NoSQL Database
MongoDB - An Agile NoSQL DatabaseMongoDB - An Agile NoSQL Database
MongoDB - An Agile NoSQL Database
Gaurav Awasthi
 
Compare DynamoDB vs. MongoDB
Compare DynamoDB vs. MongoDBCompare DynamoDB vs. MongoDB
Compare DynamoDB vs. MongoDB
Amar Das
 

Viewers also liked (16)

Functional progrmming with scala
Functional progrmming with scalaFunctional progrmming with scala
Functional progrmming with scala
오석 한
 
Ambiental Microbiologia
Ambiental MicrobiologiaAmbiental Microbiologia
Ambiental Microbiologia
figempa uce
 
Java one2015 - Work With Hundreds of Hot Terabytes in JVMs
Java one2015 - Work With Hundreds of Hot Terabytes in JVMsJava one2015 - Work With Hundreds of Hot Terabytes in JVMs
Java one2015 - Work With Hundreds of Hot Terabytes in JVMs
Speedment, Inc.
 
บทคัดย่อ
บทคัดย่อบทคัดย่อ
บทคัดย่อ
Nirut Uthatip
 
Geología del subsuelo
Geología del subsueloGeología del subsuelo
Geología del subsuelo
figempa uce
 
Legislación aplicada
Legislación aplicadaLegislación aplicada
Legislación aplicada
figempa uce
 
Smart work
Smart workSmart work
Smart work
오석 한
 
예제로 쉽게 배우는 Log4j 기초 활용법
예제로 쉽게 배우는 Log4j 기초 활용법예제로 쉽게 배우는 Log4j 기초 활용법
예제로 쉽게 배우는 Log4j 기초 활용법
오석 한
 
JAVA NIO
JAVA NIOJAVA NIO
JAVA NIO
오석 한
 
Ambiental Hidraulica
Ambiental HidraulicaAmbiental Hidraulica
Ambiental Hidraulica
figempa uce
 
Netty @Apple: Large Scale Deployment/Connectivity
Netty @Apple: Large Scale Deployment/ConnectivityNetty @Apple: Large Scale Deployment/Connectivity
Netty @Apple: Large Scale Deployment/Connectivity
C4Media
 
Ambiental Fisica ii
Ambiental Fisica iiAmbiental Fisica ii
Ambiental Fisica ii
figempa uce
 
Ambiental Quimica organica
Ambiental Quimica organicaAmbiental Quimica organica
Ambiental Quimica organica
figempa uce
 
Petsil metinvestigacion
Petsil metinvestigacionPetsil metinvestigacion
Petsil metinvestigacion
figempa uce
 
Petsil geologiapetroleo
Petsil geologiapetroleoPetsil geologiapetroleo
Petsil geologiapetroleo
figempa uce
 
Petsil dibujo
Petsil dibujoPetsil dibujo
Petsil dibujo
figempa uce
 
Functional progrmming with scala
Functional progrmming with scalaFunctional progrmming with scala
Functional progrmming with scala
오석 한
 
Ambiental Microbiologia
Ambiental MicrobiologiaAmbiental Microbiologia
Ambiental Microbiologia
figempa uce
 
Java one2015 - Work With Hundreds of Hot Terabytes in JVMs
Java one2015 - Work With Hundreds of Hot Terabytes in JVMsJava one2015 - Work With Hundreds of Hot Terabytes in JVMs
Java one2015 - Work With Hundreds of Hot Terabytes in JVMs
Speedment, Inc.
 
บทคัดย่อ
บทคัดย่อบทคัดย่อ
บทคัดย่อ
Nirut Uthatip
 
Geología del subsuelo
Geología del subsueloGeología del subsuelo
Geología del subsuelo
figempa uce
 
Legislación aplicada
Legislación aplicadaLegislación aplicada
Legislación aplicada
figempa uce
 
예제로 쉽게 배우는 Log4j 기초 활용법
예제로 쉽게 배우는 Log4j 기초 활용법예제로 쉽게 배우는 Log4j 기초 활용법
예제로 쉽게 배우는 Log4j 기초 활용법
오석 한
 
Ambiental Hidraulica
Ambiental HidraulicaAmbiental Hidraulica
Ambiental Hidraulica
figempa uce
 
Netty @Apple: Large Scale Deployment/Connectivity
Netty @Apple: Large Scale Deployment/ConnectivityNetty @Apple: Large Scale Deployment/Connectivity
Netty @Apple: Large Scale Deployment/Connectivity
C4Media
 
Ambiental Fisica ii
Ambiental Fisica iiAmbiental Fisica ii
Ambiental Fisica ii
figempa uce
 
Ambiental Quimica organica
Ambiental Quimica organicaAmbiental Quimica organica
Ambiental Quimica organica
figempa uce
 
Petsil metinvestigacion
Petsil metinvestigacionPetsil metinvestigacion
Petsil metinvestigacion
figempa uce
 
Petsil geologiapetroleo
Petsil geologiapetroleoPetsil geologiapetroleo
Petsil geologiapetroleo
figempa uce
 
Ad

Similar to JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516] (20)

NYJavaSIG - Big Data Microservices w/ Speedment
NYJavaSIG - Big Data Microservices w/ SpeedmentNYJavaSIG - Big Data Microservices w/ Speedment
NYJavaSIG - Big Data Microservices w/ Speedment
Speedment, Inc.
 
How does Apache Pegasus (incubating) community develop at SensorsData
How does Apache Pegasus (incubating) community develop at SensorsDataHow does Apache Pegasus (incubating) community develop at SensorsData
How does Apache Pegasus (incubating) community develop at SensorsData
acelyc1112009
 
Responding rapidly when you have 100+ GB data sets in Java
Responding rapidly when you have 100+ GB data sets in JavaResponding rapidly when you have 100+ GB data sets in Java
Responding rapidly when you have 100+ GB data sets in Java
Peter Lawrey
 
MariaDB ColumnStore
MariaDB ColumnStoreMariaDB ColumnStore
MariaDB ColumnStore
MariaDB plc
 
Scaling with sync_replication using Galera and EC2
Scaling with sync_replication using Galera and EC2Scaling with sync_replication using Galera and EC2
Scaling with sync_replication using Galera and EC2
Marco Tusa
 
Work with hundred of hot terabytes in JVMs
Work with hundred of hot terabytes in JVMsWork with hundred of hot terabytes in JVMs
Work with hundred of hot terabytes in JVMs
Malin Weiss
 
SQL Server 2014 In-Memory OLTP
SQL Server 2014 In-Memory OLTPSQL Server 2014 In-Memory OLTP
SQL Server 2014 In-Memory OLTP
Tony Rogerson
 
Dissecting Scalable Database Architectures
Dissecting Scalable Database ArchitecturesDissecting Scalable Database Architectures
Dissecting Scalable Database Architectures
hypertable
 
Agility and Scalability with MongoDB
Agility and Scalability with MongoDBAgility and Scalability with MongoDB
Agility and Scalability with MongoDB
MongoDB
 
7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth
Fabio Fumarola
 
4. (mjk) extreme performance 2
4. (mjk) extreme performance 24. (mjk) extreme performance 2
4. (mjk) extreme performance 2
Doina Draganescu
 
Elasticsearch 5.0
Elasticsearch 5.0Elasticsearch 5.0
Elasticsearch 5.0
Matias Cascallares
 
HBase in Practice
HBase in Practice HBase in Practice
HBase in Practice
DataWorks Summit/Hadoop Summit
 
HBase in Practice
HBase in PracticeHBase in Practice
HBase in Practice
larsgeorge
 
A Closer Look at Apache Kudu
A Closer Look at Apache KuduA Closer Look at Apache Kudu
A Closer Look at Apache Kudu
Andriy Zabavskyy
 
Cloud computing UNIT 2.1 presentation in
Cloud computing UNIT 2.1 presentation inCloud computing UNIT 2.1 presentation in
Cloud computing UNIT 2.1 presentation in
RahulBhole12
 
Managing Security At 1M Events a Second using Elasticsearch
Managing Security At 1M Events a Second using ElasticsearchManaging Security At 1M Events a Second using Elasticsearch
Managing Security At 1M Events a Second using Elasticsearch
Joe Alex
 
Building a Large Scale SEO/SEM Application with Apache Solr
Building a Large Scale SEO/SEM Application with Apache SolrBuilding a Large Scale SEO/SEM Application with Apache Solr
Building a Large Scale SEO/SEM Application with Apache Solr
Rahul Jain
 
Alluxio - Scalable Filesystem Metadata Services
Alluxio - Scalable Filesystem Metadata ServicesAlluxio - Scalable Filesystem Metadata Services
Alluxio - Scalable Filesystem Metadata Services
Alluxio, Inc.
 
C* Summit 2013: Cassandra at eBay Scale by Feng Qu and Anurag Jambhekar
C* Summit 2013: Cassandra at eBay Scale by Feng Qu and Anurag JambhekarC* Summit 2013: Cassandra at eBay Scale by Feng Qu and Anurag Jambhekar
C* Summit 2013: Cassandra at eBay Scale by Feng Qu and Anurag Jambhekar
DataStax Academy
 
NYJavaSIG - Big Data Microservices w/ Speedment
NYJavaSIG - Big Data Microservices w/ SpeedmentNYJavaSIG - Big Data Microservices w/ Speedment
NYJavaSIG - Big Data Microservices w/ Speedment
Speedment, Inc.
 
How does Apache Pegasus (incubating) community develop at SensorsData
How does Apache Pegasus (incubating) community develop at SensorsDataHow does Apache Pegasus (incubating) community develop at SensorsData
How does Apache Pegasus (incubating) community develop at SensorsData
acelyc1112009
 
Responding rapidly when you have 100+ GB data sets in Java
Responding rapidly when you have 100+ GB data sets in JavaResponding rapidly when you have 100+ GB data sets in Java
Responding rapidly when you have 100+ GB data sets in Java
Peter Lawrey
 
MariaDB ColumnStore
MariaDB ColumnStoreMariaDB ColumnStore
MariaDB ColumnStore
MariaDB plc
 
Scaling with sync_replication using Galera and EC2
Scaling with sync_replication using Galera and EC2Scaling with sync_replication using Galera and EC2
Scaling with sync_replication using Galera and EC2
Marco Tusa
 
Work with hundred of hot terabytes in JVMs
Work with hundred of hot terabytes in JVMsWork with hundred of hot terabytes in JVMs
Work with hundred of hot terabytes in JVMs
Malin Weiss
 
SQL Server 2014 In-Memory OLTP
SQL Server 2014 In-Memory OLTPSQL Server 2014 In-Memory OLTP
SQL Server 2014 In-Memory OLTP
Tony Rogerson
 
Dissecting Scalable Database Architectures
Dissecting Scalable Database ArchitecturesDissecting Scalable Database Architectures
Dissecting Scalable Database Architectures
hypertable
 
Agility and Scalability with MongoDB
Agility and Scalability with MongoDBAgility and Scalability with MongoDB
Agility and Scalability with MongoDB
MongoDB
 
7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth
Fabio Fumarola
 
4. (mjk) extreme performance 2
4. (mjk) extreme performance 24. (mjk) extreme performance 2
4. (mjk) extreme performance 2
Doina Draganescu
 
HBase in Practice
HBase in PracticeHBase in Practice
HBase in Practice
larsgeorge
 
A Closer Look at Apache Kudu
A Closer Look at Apache KuduA Closer Look at Apache Kudu
A Closer Look at Apache Kudu
Andriy Zabavskyy
 
Cloud computing UNIT 2.1 presentation in
Cloud computing UNIT 2.1 presentation inCloud computing UNIT 2.1 presentation in
Cloud computing UNIT 2.1 presentation in
RahulBhole12
 
Managing Security At 1M Events a Second using Elasticsearch
Managing Security At 1M Events a Second using ElasticsearchManaging Security At 1M Events a Second using Elasticsearch
Managing Security At 1M Events a Second using Elasticsearch
Joe Alex
 
Building a Large Scale SEO/SEM Application with Apache Solr
Building a Large Scale SEO/SEM Application with Apache SolrBuilding a Large Scale SEO/SEM Application with Apache Solr
Building a Large Scale SEO/SEM Application with Apache Solr
Rahul Jain
 
Alluxio - Scalable Filesystem Metadata Services
Alluxio - Scalable Filesystem Metadata ServicesAlluxio - Scalable Filesystem Metadata Services
Alluxio - Scalable Filesystem Metadata Services
Alluxio, Inc.
 
C* Summit 2013: Cassandra at eBay Scale by Feng Qu and Anurag Jambhekar
C* Summit 2013: Cassandra at eBay Scale by Feng Qu and Anurag JambhekarC* Summit 2013: Cassandra at eBay Scale by Feng Qu and Anurag Jambhekar
C* Summit 2013: Cassandra at eBay Scale by Feng Qu and Anurag Jambhekar
DataStax Academy
 
Ad

More from Speedment, Inc. (12)

How to generate customized java 8 code from your database
How to generate customized java 8 code from your databaseHow to generate customized java 8 code from your database
How to generate customized java 8 code from your database
Speedment, Inc.
 
Silicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your databaseSilicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your database
Speedment, Inc.
 
SenchaCon Roadshow Irvine 2017
SenchaCon Roadshow Irvine 2017SenchaCon Roadshow Irvine 2017
SenchaCon Roadshow Irvine 2017
Speedment, Inc.
 
SenchaCon 2016 - How to Auto Generate a Back-end in Minutes
SenchaCon 2016 - How to Auto Generate a Back-end in MinutesSenchaCon 2016 - How to Auto Generate a Back-end in Minutes
SenchaCon 2016 - How to Auto Generate a Back-end in Minutes
Speedment, Inc.
 
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
Speedment, Inc.
 
DZone Java 8 Block Buster: Query Databases Using Streams
DZone Java 8 Block Buster: Query Databases Using StreamsDZone Java 8 Block Buster: Query Databases Using Streams
DZone Java 8 Block Buster: Query Databases Using Streams
Speedment, Inc.
 
Speed-up Your Big Data Applications with Sencha and Speedment
Speed-up Your Big Data Applications with Sencha and SpeedmentSpeed-up Your Big Data Applications with Sencha and Speedment
Speed-up Your Big Data Applications with Sencha and Speedment
Speedment, Inc.
 
Speedment & Sencha at Oracle Open World 2015
Speedment & Sencha at Oracle Open World 2015Speedment & Sencha at Oracle Open World 2015
Speedment & Sencha at Oracle Open World 2015
Speedment, Inc.
 
eXtreme Tuesday Club at Pivotal Labs ft. Speemdnet / San Francisco - SEP 2015
eXtreme Tuesday Club at Pivotal Labs ft. Speemdnet / San Francisco - SEP 2015eXtreme Tuesday Club at Pivotal Labs ft. Speemdnet / San Francisco - SEP 2015
eXtreme Tuesday Club at Pivotal Labs ft. Speemdnet / San Francisco - SEP 2015
Speedment, Inc.
 
Speedment - Reactive programming for Java8
Speedment - Reactive programming for Java8Speedment - Reactive programming for Java8
Speedment - Reactive programming for Java8
Speedment, Inc.
 
Java days gbg online
Java days gbg onlineJava days gbg online
Java days gbg online
Speedment, Inc.
 
SAP Open Source meetup/Speedment - Palo Alto 2015
SAP Open Source meetup/Speedment - Palo Alto 2015SAP Open Source meetup/Speedment - Palo Alto 2015
SAP Open Source meetup/Speedment - Palo Alto 2015
Speedment, Inc.
 
How to generate customized java 8 code from your database
How to generate customized java 8 code from your databaseHow to generate customized java 8 code from your database
How to generate customized java 8 code from your database
Speedment, Inc.
 
Silicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your databaseSilicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your database
Speedment, Inc.
 
SenchaCon Roadshow Irvine 2017
SenchaCon Roadshow Irvine 2017SenchaCon Roadshow Irvine 2017
SenchaCon Roadshow Irvine 2017
Speedment, Inc.
 
SenchaCon 2016 - How to Auto Generate a Back-end in Minutes
SenchaCon 2016 - How to Auto Generate a Back-end in MinutesSenchaCon 2016 - How to Auto Generate a Back-end in Minutes
SenchaCon 2016 - How to Auto Generate a Back-end in Minutes
Speedment, Inc.
 
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
Speedment, Inc.
 
DZone Java 8 Block Buster: Query Databases Using Streams
DZone Java 8 Block Buster: Query Databases Using StreamsDZone Java 8 Block Buster: Query Databases Using Streams
DZone Java 8 Block Buster: Query Databases Using Streams
Speedment, Inc.
 
Speed-up Your Big Data Applications with Sencha and Speedment
Speed-up Your Big Data Applications with Sencha and SpeedmentSpeed-up Your Big Data Applications with Sencha and Speedment
Speed-up Your Big Data Applications with Sencha and Speedment
Speedment, Inc.
 
Speedment & Sencha at Oracle Open World 2015
Speedment & Sencha at Oracle Open World 2015Speedment & Sencha at Oracle Open World 2015
Speedment & Sencha at Oracle Open World 2015
Speedment, Inc.
 
eXtreme Tuesday Club at Pivotal Labs ft. Speemdnet / San Francisco - SEP 2015
eXtreme Tuesday Club at Pivotal Labs ft. Speemdnet / San Francisco - SEP 2015eXtreme Tuesday Club at Pivotal Labs ft. Speemdnet / San Francisco - SEP 2015
eXtreme Tuesday Club at Pivotal Labs ft. Speemdnet / San Francisco - SEP 2015
Speedment, Inc.
 
Speedment - Reactive programming for Java8
Speedment - Reactive programming for Java8Speedment - Reactive programming for Java8
Speedment - Reactive programming for Java8
Speedment, Inc.
 
SAP Open Source meetup/Speedment - Palo Alto 2015
SAP Open Source meetup/Speedment - Palo Alto 2015SAP Open Source meetup/Speedment - Palo Alto 2015
SAP Open Source meetup/Speedment - Palo Alto 2015
Speedment, Inc.
 

Recently uploaded (20)

Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 

JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]

  • 1. Microservices: Terabytes in Microseconds Peter Lawrey Higher FrequencyTrading Ltd Per Minborg Speedment, Inc.
  • 4. Microservices • Microservices bring together best practices from a variety of areas • Most likely you are already using some of these best practices
  • 5. Microservices • It sounds like marketing hype • It all sounds pretty familiar • It just a rebranding of stuff we already do • There is room for improvement in what we do • There are some tools, and ideas we could apply to our systems without changing too much
  • 6. • Simple component based design • Asynchronous messaging • Automated, dynamic deployment of services • Service private data sets • Transparent messaging • Teams can develop independently based on well defined contracts Microservices
  • 7. Terabytes in Microseconds Solution Speed Data volume GB TB EB us ms s min hour days
  • 8. Speedment Chronicle Terabytes in Microseconds Solution Maps the data in a key-value store Synchronizes SQL Data into an in- JVM-memory data store Maps the data in Column key stores Provides application APIs Terabytes 1. Synchronization 2. Key Value Store 3. Column Key Stores 4. API Microservice 3 Microservice 2 Microservice
  • 9. 1. Synchronization • Synchronizes SQL Data with the in-JVM-memory solution: • Initially • Over time • Periodically • Reactively
  • 10. 1. Synchronization Periodically • Dumps are reloaded periodically • All data elements are reloaded • Data remains unchanged between reloads • System restart is just a reload • MVCC so that several dumps can be active at the same time Reactively • Changed data is captured in the Database • Changed data events are pushed into memory • Events are grouped in transactions • Cache updates are persisted • Data changes all the time • System restart, replay the missed events or
  • 11. 1. Synchronization * Periodically Reactively Poll Comparison Max Data Age Dump period Replication Latency- ms Eviction time Lookup Performance Consistently Instant Consistently Instant 20% very slow Consistency Eventually Consistent Eventually Consistent Inconsistent – stale data Database Cache Update Load ~ Total Size / Dump ~ Rate of Change ~ Cache size * Eviction Restart Complete Reload Down time*update rate - >10% of down time Heat-up time
  • 12. 1. Synchronization Properties • Detect changes in a database • Buffer the changes • Can replay the changes later on • Preserve order • Preserve transactions • See data as it was persisted • Detect changes from any source JVM Column Oriented CQRS In-JVM- Memory
  • 13. 1. Synchronization How is data synchronized? • Periodic MVCC reload • Transaction log harvesting • Event Sourcing and CQRS
  • 14. 2. Key Value Store Makes it possible to • Having Maps that can exceed the server’s RAM by up to 40x • Opening up the path to mammoth JVMs with tens of terabytes • Data persistence inside JVM provides fast restart • When you have multiple instances of a service they can share the data with a single copy in memory
  • 15. 32 bit Operating System (31-bit heap)
  • 16. Compress Oops in Java 7 (35-bit) • Using the default of –XX:+UseCompressedOops • In a 64-bit JVM, it can use “compressed” memory references • This allows the heap to be up to 32 GB without the overhead of 64-bit object references. The Oracle/OpenJDK JVM still uses 64-bit class references by default • As all object must be 8-byte aligned, the lower 3 bits of the address are always 000 and don’t need to be stored. This allows the heap to reference 4 billion * 8-bytes or 32 GB • Uses 32-bit references
  • 17. Compressed Oops with 8 Byte Alignment
  • 18. Compress Oops in Java 8 (36 bits) • Using the default of –XX:+UseCompressedOops –XX:ObjectAlignmentInBytes=16 • In a 64-bit JVM, it can use “compressed” memory references • This allows the heap to be up to 64 GB without the overhead of 64-bit object references. The Oracle/OpenJDK JVM still uses 64-bit class references by default • As all object must be 8 or 16-byte aligned, the lower 3 or 4 bits of the address are always zeros and don’t need to be stored. This allows the heap to reference 4 billion * 16-bytes or 64 GB • Uses 32-bit references
  • 19. 64-bit References in Java (100+ GB) • A small but significant overhead on main memory use • Reduces the efficiency of CPU caches as less objects can fit in • Can address up to the limit of the free memory. Limited to main memory • GC pauses become a real concern and can take tens of second or many minutes • For larger heap sizes, using the G1 collector may be a good choice.
  • 20. NUMA Regions (~40 bits) • Large machine are limited in how large a single bank of memory can be. This varies based on the architecture • Ivy and Sandy bridge Xeon processors are limited to addressing 40 bits of real memory • In Haswell and Boradwell this has been lifted to 46-bits • Each Socket has “local” access to a bank of memory, however to access other bank it may need to use a bus. This is much slower • The GC of a JVM can perform very poorly if it doesn’t sit within one NUMA region. Ideally you want a JVM to use just one NUMA region
  • 24. Memory Mapped Files (48+ bits) • Memory mappings are not limited to main memory size • 64-bit OS support 128TiB to 256TiB virtual memory at once • For larger data sizes, memory mapping need to be managed and cached manually • Can be shared between processes • A library can hide the 48-bit limitation by caching memory mapping
  • 25. Peta Byte JVMs (50+ bits) • If you are receiving 1 GB/s down a 10 Gig-E line in two weeks you will have received over 1 PB • Managing this much data in large servers is more complex than your standard JVM • Replication is critical. Large complex systems, are more likely to fail and take longer to recover • You can have systems which cannot be recovered in the normal way. i.e. Unless you recover faster than new data is added, you will never catch up
  • 26. Peta Byte JVMs (50+ bits)
  • 27. Peta Byte JVMs (50+ bits)
  • 28. 3. Column Key Store • Column Key Stores are used much like database indexes • The Column Key Stores can produce data lazily • Can be mapped onto memory mapped files
  • 29. 3. Column Key Store • Features over ConcurrentNavigableMap • Handles null values • Can handle several values for one key • Can serialize data off-heap • Can map onto files • Can compress its keys • Contains a bi-directional skip dictionary • Remains performant for billions and trillions of entries • Supports transactions
  • 30. 3. Column Key Store Filesystem Page cache User Space Kernel Space Physical memory Disk blocks SSD Page mapping Microservice JVM mapped buffer filesystem pages memory pages
  • 31. 3. Column Key Store Filesystem Page cache User Space Kernel Space Physical memory Disk blocks SSD Page mapping Microservice1 JVM 2 filesystem pages memory pages mapped buffer Microservice1 JVM 1 mapped buffer
  • 32. 3. Column Key Store • O(1) operations: • equals, notEquals • isNull, isNotNull • in, notIn • sort • O(log N) operations • <, <=, >, >= • between • startsWith(String) • O(N) • matches(regexp)
  • 33. 3. Column Key Store 0 50 100 150 200 250 300 350 1 10 20 30 40 50 60 70 80 90 100 Big-Ohs O(1) O(log N) O(N) O(NlogN)
  • 34. 3. Column Key Store Key-Value Store ID Column Key Store User.AGE.greaterThan(42) AGE Column Key Store NAME Column Key Store greaterThan(42) Keys Values User
  • 35. 3. Column Key Store - The Stream Pipeline Key-Value Store AGE Column Key Store greaterThan(42) Keys Values
  • 36. 3. Column Key Store - Parallelism Key-Value Store AGE Column Key Store greaterThan(42) Parallel Keys Parallel Values Optional Parallel Strategy
  • 37. 4. API • Provides application APIs • Java 8 Stream API • REST API
  • 38. 4. API • Speedment generates Java code automatically from SQL metadata • Free from hand coding errors • Reduces development time • Improves the application quality • Reduces maintenance for applications • Uses standard streams for querying • Custom code possibilities
  • 39. 4. API Java 8 Stream API REST API users.stream() .filter(AGE.greaterThen(42)) .forEach(someOperation()); https://mysite/user/ ?filter=[{"property":”age", ”operator":”gt","value":42}]
  • 40. 4. API Java 8 Stream API REST API users.stream() .filter(AGE.greaterThen(42)) .skip(10) .limit(100) .sorted(NAME.comparator()) .forEach(someOperation()); https://mysite/user/ ?filter=[{"property":”age", ”operator":”gt","value":42}] &skip=10 &limit=100 &sort=[{"property":”name", ”direction":”ASC”}]
  • 41. 4. API - Parallelism • Java 8 Stream API users.stream() .parallel() .filter(AGE.greaterThen(42)) .flatMap(users::findLogins) .forEach(expensiveOperation());
  • 42. Demo 1 • 300,000 Users • Off Heap Data Store and Key-Value map • Test • Find all users with id = 42 • Count them • Add the count to a sum • Iterate 1,000,000 times • JVMWarmup and then Benchmark • Sum will be 1,000,000 • A standard MySQL database will process 2,000TPS on a 4 CPU laptop like mine
  • 43. Demo 2 • 1,000,000 Users • Tests • ID.equal(42) • ID.greaterOrEqual(42) • ID.in(42, 43, 44) • ID.between(42, 45)
  • 45. Compare Latencies Using the Speed of Light During the time a database makes a 1 s query, how far will the light move? Database CPU L1 cache Conclusion : Do not place your data on the moon, keep it close by using in-JVM-memory technology!
  • 46. Epic Threshold for Mankind Passed in 2016 Conclusion: Quit drinking coffee and buy more RAM for your application server instead!
  • 47. Microservices Solution MS1 MS1 MS1 MS2 MS2 MS2 MS3 MS3 MS3 Speedment Chronicle Speedment Chronicle Speedment Chronicle
  • 48. Microservices JVM • The solution maps Java NavigableMaps to persistent stores (files) • The views of the maps are available for any JVM that has access to these files • Microservice JVMs can be started or restarted very rapidly • Access to these maps will be gained in millisecond time • These maps can be shared instantly between several microservice JVMs • New microservice instances are added, removed, or restarted very quickly
  • 49. If You Only Remember One Thing…. Speed Data volume GB TB EB us ms s min hour days

Editor's Notes

  • #3: I live in Palo Alto in California..