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

More Related Content

What's hot

HBaseCon 2015: HBase Performance Tuning @ Salesforce
HBaseCon 2015: HBase Performance Tuning @ SalesforceHBaseCon 2015: HBase Performance Tuning @ Salesforce
HBaseCon 2015: HBase Performance Tuning @ SalesforceHBaseCon
 
HBaseCon 2012 | Learning HBase Internals - Lars Hofhansl, Salesforce
HBaseCon 2012 | Learning HBase Internals - Lars Hofhansl, SalesforceHBaseCon 2012 | Learning HBase Internals - Lars Hofhansl, Salesforce
HBaseCon 2012 | Learning HBase Internals - Lars Hofhansl, SalesforceCloudera, Inc.
 
In-memory Caching in HDFS: Lower Latency, Same Great Taste
In-memory Caching in HDFS: Lower Latency, Same Great TasteIn-memory Caching in HDFS: Lower Latency, Same Great Taste
In-memory Caching in HDFS: Lower Latency, Same Great TasteDataWorks Summit
 
HBaseCon 2015- HBase @ Flipboard
HBaseCon 2015- HBase @ FlipboardHBaseCon 2015- HBase @ Flipboard
HBaseCon 2015- HBase @ FlipboardMatthew Blair
 
HBase Applications - Atlanta HUG - May 2014
HBase Applications - Atlanta HUG - May 2014HBase Applications - Atlanta HUG - May 2014
HBase Applications - Atlanta HUG - May 2014larsgeorge
 
Cross-Site BigTable using HBase
Cross-Site BigTable using HBaseCross-Site BigTable using HBase
Cross-Site BigTable using HBaseHBaseCon
 
Gruter TECHDAY 2014 Realtime Processing in Telco
Gruter TECHDAY 2014 Realtime Processing in TelcoGruter TECHDAY 2014 Realtime Processing in Telco
Gruter TECHDAY 2014 Realtime Processing in TelcoGruter
 
Interactive Hadoop via Flash and Memory
Interactive Hadoop via Flash and MemoryInteractive Hadoop via Flash and Memory
Interactive Hadoop via Flash and MemoryChris Nauroth
 
HBaseCon 2015: Apache Phoenix - The Evolution of a Relational Database Layer ...
HBaseCon 2015: Apache Phoenix - The Evolution of a Relational Database Layer ...HBaseCon 2015: Apache Phoenix - The Evolution of a Relational Database Layer ...
HBaseCon 2015: Apache Phoenix - The Evolution of a Relational Database Layer ...HBaseCon
 
HBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseHBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseenissoz
 
Digital Library Collection Management using HBase
Digital Library Collection Management using HBaseDigital Library Collection Management using HBase
Digital Library Collection Management using HBaseHBaseCon
 
HBaseCon 2013: ETL for Apache HBase
HBaseCon 2013: ETL for Apache HBaseHBaseCon 2013: ETL for Apache HBase
HBaseCon 2013: ETL for Apache HBaseCloudera, Inc.
 
Benchmarking Top NoSQL Databases: Apache Cassandra, Apache HBase and MongoDB
Benchmarking Top NoSQL Databases: Apache Cassandra, Apache HBase and MongoDBBenchmarking Top NoSQL Databases: Apache Cassandra, Apache HBase and MongoDB
Benchmarking Top NoSQL Databases: Apache Cassandra, Apache HBase and MongoDBAthiq Ahamed
 
HBase 0.20.0 Performance Evaluation
HBase 0.20.0 Performance EvaluationHBase 0.20.0 Performance Evaluation
HBase 0.20.0 Performance EvaluationSchubert Zhang
 
Efficient in situ processing of various storage types on apache tajo
Efficient in situ processing of various storage types on apache tajoEfficient in situ processing of various storage types on apache tajo
Efficient in situ processing of various storage types on apache tajoHyunsik Choi
 
HBase: Where Online Meets Low Latency
HBase: Where Online Meets Low LatencyHBase: Where Online Meets Low Latency
HBase: Where Online Meets Low LatencyHBaseCon
 
HBase Sizing Guide
HBase Sizing GuideHBase Sizing Guide
HBase Sizing Guidelarsgeorge
 
Apache HBase Performance Tuning
Apache HBase Performance TuningApache HBase Performance Tuning
Apache HBase Performance TuningLars Hofhansl
 
Meet hbase 2.0
Meet hbase 2.0Meet hbase 2.0
Meet hbase 2.0enissoz
 

What's hot (20)

HBaseCon 2015: HBase Performance Tuning @ Salesforce
HBaseCon 2015: HBase Performance Tuning @ SalesforceHBaseCon 2015: HBase Performance Tuning @ Salesforce
HBaseCon 2015: HBase Performance Tuning @ Salesforce
 
HBaseCon 2012 | Learning HBase Internals - Lars Hofhansl, Salesforce
HBaseCon 2012 | Learning HBase Internals - Lars Hofhansl, SalesforceHBaseCon 2012 | Learning HBase Internals - Lars Hofhansl, Salesforce
HBaseCon 2012 | Learning HBase Internals - Lars Hofhansl, Salesforce
 
In-memory Caching in HDFS: Lower Latency, Same Great Taste
In-memory Caching in HDFS: Lower Latency, Same Great TasteIn-memory Caching in HDFS: Lower Latency, Same Great Taste
In-memory Caching in HDFS: Lower Latency, Same Great Taste
 
HBaseCon 2015- HBase @ Flipboard
HBaseCon 2015- HBase @ FlipboardHBaseCon 2015- HBase @ Flipboard
HBaseCon 2015- HBase @ Flipboard
 
HBase Applications - Atlanta HUG - May 2014
HBase Applications - Atlanta HUG - May 2014HBase Applications - Atlanta HUG - May 2014
HBase Applications - Atlanta HUG - May 2014
 
Cross-Site BigTable using HBase
Cross-Site BigTable using HBaseCross-Site BigTable using HBase
Cross-Site BigTable using HBase
 
Gruter TECHDAY 2014 Realtime Processing in Telco
Gruter TECHDAY 2014 Realtime Processing in TelcoGruter TECHDAY 2014 Realtime Processing in Telco
Gruter TECHDAY 2014 Realtime Processing in Telco
 
Interactive Hadoop via Flash and Memory
Interactive Hadoop via Flash and MemoryInteractive Hadoop via Flash and Memory
Interactive Hadoop via Flash and Memory
 
HBaseCon 2015: Apache Phoenix - The Evolution of a Relational Database Layer ...
HBaseCon 2015: Apache Phoenix - The Evolution of a Relational Database Layer ...HBaseCon 2015: Apache Phoenix - The Evolution of a Relational Database Layer ...
HBaseCon 2015: Apache Phoenix - The Evolution of a Relational Database Layer ...
 
HBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseHBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBase
 
Digital Library Collection Management using HBase
Digital Library Collection Management using HBaseDigital Library Collection Management using HBase
Digital Library Collection Management using HBase
 
HBase Accelerated: In-Memory Flush and Compaction
HBase Accelerated: In-Memory Flush and CompactionHBase Accelerated: In-Memory Flush and Compaction
HBase Accelerated: In-Memory Flush and Compaction
 
HBaseCon 2013: ETL for Apache HBase
HBaseCon 2013: ETL for Apache HBaseHBaseCon 2013: ETL for Apache HBase
HBaseCon 2013: ETL for Apache HBase
 
Benchmarking Top NoSQL Databases: Apache Cassandra, Apache HBase and MongoDB
Benchmarking Top NoSQL Databases: Apache Cassandra, Apache HBase and MongoDBBenchmarking Top NoSQL Databases: Apache Cassandra, Apache HBase and MongoDB
Benchmarking Top NoSQL Databases: Apache Cassandra, Apache HBase and MongoDB
 
HBase 0.20.0 Performance Evaluation
HBase 0.20.0 Performance EvaluationHBase 0.20.0 Performance Evaluation
HBase 0.20.0 Performance Evaluation
 
Efficient in situ processing of various storage types on apache tajo
Efficient in situ processing of various storage types on apache tajoEfficient in situ processing of various storage types on apache tajo
Efficient in situ processing of various storage types on apache tajo
 
HBase: Where Online Meets Low Latency
HBase: Where Online Meets Low LatencyHBase: Where Online Meets Low Latency
HBase: Where Online Meets Low Latency
 
HBase Sizing Guide
HBase Sizing GuideHBase Sizing Guide
HBase Sizing Guide
 
Apache HBase Performance Tuning
Apache HBase Performance TuningApache HBase Performance Tuning
Apache HBase Performance Tuning
 
Meet hbase 2.0
Meet hbase 2.0Meet hbase 2.0
Meet hbase 2.0
 

Viewers also liked

Objeción parcial a proyecto de ley de incentivos
Objeción parcial a proyecto de ley de incentivosObjeción parcial a proyecto de ley de incentivos
Objeción parcial a proyecto de ley de incentivosFabricio Vela
 
HR Fundamentals 227-7914685
HR Fundamentals 227-7914685HR Fundamentals 227-7914685
HR Fundamentals 227-7914685Alexsander Rost
 
How to lose weight
How to lose weightHow to lose weight
How to lose weightRetha Harmse
 
David Tette's Acting Resume.odt 2
David Tette's Acting Resume.odt 2David Tette's Acting Resume.odt 2
David Tette's Acting Resume.odt 2David Tette
 
600 development
600 development600 development
600 developmentjmiels
 
Parecer tecnico 286.2011
Parecer tecnico 286.2011Parecer tecnico 286.2011
Parecer tecnico 286.2011Otto Sobral
 
Festejos del día del estudiante
Festejos del día del estudianteFestejos del día del estudiante
Festejos del día del estudianteNicolas Casas
 
13 pisa world_cup_(eng)
13 pisa world_cup_(eng)13 pisa world_cup_(eng)
13 pisa world_cup_(eng)eventours
 
Incident Response: Tunnelling
Incident Response: TunnellingIncident Response: Tunnelling
Incident Response: TunnellingNapier University
 
About So Good Football Academy
About So Good Football AcademyAbout So Good Football Academy
About So Good Football AcademyBenjamin Siwale
 

Viewers also liked (15)

design-low
design-lowdesign-low
design-low
 
Objeción parcial a proyecto de ley de incentivos
Objeción parcial a proyecto de ley de incentivosObjeción parcial a proyecto de ley de incentivos
Objeción parcial a proyecto de ley de incentivos
 
HR Fundamentals 227-7914685
HR Fundamentals 227-7914685HR Fundamentals 227-7914685
HR Fundamentals 227-7914685
 
How to lose weight
How to lose weightHow to lose weight
How to lose weight
 
David Tette's Acting Resume.odt 2
David Tette's Acting Resume.odt 2David Tette's Acting Resume.odt 2
David Tette's Acting Resume.odt 2
 
600 development
600 development600 development
600 development
 
Parecer tecnico 286.2011
Parecer tecnico 286.2011Parecer tecnico 286.2011
Parecer tecnico 286.2011
 
Yaray leon
Yaray leonYaray leon
Yaray leon
 
Festejos del día del estudiante
Festejos del día del estudianteFestejos del día del estudiante
Festejos del día del estudiante
 
13 pisa world_cup_(eng)
13 pisa world_cup_(eng)13 pisa world_cup_(eng)
13 pisa world_cup_(eng)
 
2.1 TEMU Workshop 2016
2.1   TEMU Workshop 2016 2.1   TEMU Workshop 2016
2.1 TEMU Workshop 2016
 
Vitaal-Thuis-visie
Vitaal-Thuis-visieVitaal-Thuis-visie
Vitaal-Thuis-visie
 
Incident Response: Tunnelling
Incident Response: TunnellingIncident Response: Tunnelling
Incident Response: Tunnelling
 
About So Good Football Academy
About So Good Football AcademyAbout So Good Football Academy
About So Good Football Academy
 
Tony Mundia profile
Tony Mundia profileTony Mundia profile
Tony Mundia profile
 

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

NYJavaSIG - Big Data Microservices w/ Speedment
NYJavaSIG - Big Data Microservices w/ SpeedmentNYJavaSIG - Big Data Microservices w/ Speedment
NYJavaSIG - Big Data Microservices w/ SpeedmentSpeedment, Inc.
 
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 JVMsSpeedment, 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 SensorsDataacelyc1112009
 
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 JavaPeter Lawrey
 
MariaDB ColumnStore
MariaDB ColumnStoreMariaDB ColumnStore
MariaDB ColumnStoreMariaDB 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 EC2Marco 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 JVMsMalin Weiss
 
SQL Server 2014 In-Memory OLTP
SQL Server 2014 In-Memory OLTPSQL Server 2014 In-Memory OLTP
SQL Server 2014 In-Memory OLTPTony Rogerson
 
Dissecting Scalable Database Architectures
Dissecting Scalable Database ArchitecturesDissecting Scalable Database Architectures
Dissecting Scalable Database Architectureshypertable
 
Agility and Scalability with MongoDB
Agility and Scalability with MongoDBAgility and Scalability with MongoDB
Agility and Scalability with MongoDBMongoDB
 
7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth7. Key-Value Databases: In Depth
7. Key-Value Databases: In DepthFabio Fumarola
 
4. (mjk) extreme performance 2
4. (mjk) extreme performance 24. (mjk) extreme performance 2
4. (mjk) extreme performance 2Doina Draganescu
 
HBase in Practice
HBase in PracticeHBase in Practice
HBase in Practicelarsgeorge
 
A Closer Look at Apache Kudu
A Closer Look at Apache KuduA Closer Look at Apache Kudu
A Closer Look at Apache KuduAndriy 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 inRahulBhole12
 
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 ElasticsearchJoe 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 SolrRahul Jain
 
Alluxio - Scalable Filesystem Metadata Services
Alluxio - Scalable Filesystem Metadata ServicesAlluxio - Scalable Filesystem Metadata Services
Alluxio - Scalable Filesystem Metadata ServicesAlluxio, Inc.
 

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
 
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
 
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
 
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
 
MariaDB ColumnStore
MariaDB ColumnStoreMariaDB ColumnStore
MariaDB ColumnStore
 
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
 
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
 
SQL Server 2014 In-Memory OLTP
SQL Server 2014 In-Memory OLTPSQL Server 2014 In-Memory OLTP
SQL Server 2014 In-Memory OLTP
 
Dissecting Scalable Database Architectures
Dissecting Scalable Database ArchitecturesDissecting Scalable Database Architectures
Dissecting Scalable Database Architectures
 
Agility and Scalability with MongoDB
Agility and Scalability with MongoDBAgility and Scalability with MongoDB
Agility and Scalability with MongoDB
 
7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth
 
4. (mjk) extreme performance 2
4. (mjk) extreme performance 24. (mjk) extreme performance 2
4. (mjk) extreme performance 2
 
Elasticsearch 5.0
Elasticsearch 5.0Elasticsearch 5.0
Elasticsearch 5.0
 
HBase in Practice
HBase in Practice HBase in Practice
HBase in Practice
 
HBase in Practice
HBase in PracticeHBase in Practice
HBase in Practice
 
A Closer Look at Apache Kudu
A Closer Look at Apache KuduA Closer Look at Apache Kudu
A Closer Look at Apache Kudu
 
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
 
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
 
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
 
Alluxio - Scalable Filesystem Metadata Services
Alluxio - Scalable Filesystem Metadata ServicesAlluxio - Scalable Filesystem Metadata Services
Alluxio - Scalable Filesystem Metadata Services
 

Recently uploaded

Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxDavid Michel
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Thierry Lestable
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀DianaGray10
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2DianaGray10
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Product School
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomCzechDreamin
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...Product School
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...Product School
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekCzechDreamin
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka DoktorováCzechDreamin
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backElena Simperl
 

Recently uploaded (20)

Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 

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

  1. I live in Palo Alto in California..