SlideShare une entreprise Scribd logo
1  sur  16
SENCHA AND SPEEDMENT
DEMO
PROBLEM
• Core Enterprise Applications need modernisation
•The amount of data is increasing every day –Enterprise databases are growing big
• Long response times is the most common IT problem at work
DEMO
Visualization of stock prices over time as detailed as possible.
Dataset:
•1 chosen stock paper
•8 months of simulated data
•28 800 trades per day
•A total ~4 million SQL rows, indexed on id and date
FIRST EXAMPLE - SIMPLE SQL
A basic java http server receives a request from the Sencha app. The
java program formulates an SQL query to download all matching rows
from the database and parses the data into a JSON response.
Databas
e Server Sencha
HTTP
JSON
JDBC
FIRST EXAMPLE - SIMPLE SQL
SELECT * FROM `trade`
WHERE `stock` = ?
AND (UNIX_TIMESTAMP(`date`) BETWEEN ? AND ?);
RESULT- SIMPLE SQL
java.lang.OutOfMemoryError since parsing 4 million rows into a string requires far too
much memory
SECOND EXAMPLE - ADVANCED SQL
The java http server receives a request from the Sencha app. The java
program formulates a more distinct query that calculates a series of
average prices for a particular timespan. The result is then parsed
into a JSON response.
SELECT
MIN(`date`) AS `start`,
MAX(`date`) AS `end`,
ROUND(AVG(`value`)) AS `average`,
MAX(`value`) AS `high`,
MIN(`value`) AS `low`
FROM `trade`
WHERE `stock` = ?
AND (UNIX_TIMESTAMP(`date`) BETWEEN ? AND
?)
GROUP BY (
CASE ?
WHEN '1' THEN YEAR(`date`)
WHEN '2' THEN CONCAT(YEAR(`date`), MONTH(`date`))
WHEN '3' THEN CONCAT(YEAR(`date`), MONTH(`date`),
DAY(`date`))
WHEN '4' THEN CONCAT(YEAR(`date`), MONTH(`date`),
DAY(`date`),
HOUR(`date`))
WHEN '5' THEN CONCAT(YEAR(`date`), MONTH(`date`),
DAY(`date`),
HOUR(`date`), MINUTE(`date`))
WHEN '6' THEN CONCAT(YEAR(`date`), MONTH(`date`),
DAY(`date`),
HOUR(`date`), MINUTE(`date`), SECOND(`date`))
END
) ORDER BY `date`;
SECOND EXAMPLE - ADVANCED SQL
It takes 20-30 seconds to resolve a single stock
If there were more than one stock, the request would be even slower.
Capacity: Is sometimes limited by I/O and a single request may
virtually block the entire database during a call.
RESULT- ADVANCED SQL
THIRD EXAMPLE – SPEEDMENT
The dataset is kept in-memory with all relations intact. When
the server receives a request, a subset of the data is picked
and transformed into a JSON response.
return TradeMgr.getInstance()
.interval(stock, from, to)
.groupBy(lod.grouper())
.mapValue(list -> StockPrices.from(list, layer))
.sorted()
.values()
.collect(toList());
THIRD EXAMPLE – SPEEDMENT
RESULT SPEEDMENT
Really extensive requests are resolved in less than 1 second
Other requests are resolved within milleseconds
The number of stocks available is irrelevant as long as the server has
enough memory.
The solution is Type-Safe and easy to debug.
Capacity: Scales linearly with the number of threads on the server.
The more CPU:s the more capacity.
TRUE EXAMPLE
JVM
UNIQUE TECHNOLOGY
MOV
CQRS
In JVM-
Memory
Copy
Relational
Database
THANK YOU! Carina Dreifeldt CEO
Per Minborg CTO

Contenu connexe

Tendances

Real-Time Integration Between MongoDB and SQL Databases
Real-Time Integration Between MongoDB and SQL Databases Real-Time Integration Between MongoDB and SQL Databases
Real-Time Integration Between MongoDB and SQL Databases
MongoDB
 

Tendances (20)

Presentation
PresentationPresentation
Presentation
 
RDO hangout on gnocchi
RDO hangout on gnocchiRDO hangout on gnocchi
RDO hangout on gnocchi
 
Engineering fast indexes
Engineering fast indexesEngineering fast indexes
Engineering fast indexes
 
Cassandra advanced data modeling
Cassandra advanced data modelingCassandra advanced data modeling
Cassandra advanced data modeling
 
Lambda Architecture with Cassandra (Vaibhav Puranik, GumGum) | C* Summit 2016
Lambda Architecture with Cassandra (Vaibhav Puranik, GumGum) | C* Summit 2016Lambda Architecture with Cassandra (Vaibhav Puranik, GumGum) | C* Summit 2016
Lambda Architecture with Cassandra (Vaibhav Puranik, GumGum) | C* Summit 2016
 
Geo exploration simplified with Elastic Maps
Geo exploration simplified with Elastic MapsGeo exploration simplified with Elastic Maps
Geo exploration simplified with Elastic Maps
 
You might be paying too much for BigQuery
You might be paying too much for BigQueryYou might be paying too much for BigQuery
You might be paying too much for BigQuery
 
Scalable Data Modeling by Example (Carlos Alonso, Job and Talent) | Cassandra...
Scalable Data Modeling by Example (Carlos Alonso, Job and Talent) | Cassandra...Scalable Data Modeling by Example (Carlos Alonso, Job and Talent) | Cassandra...
Scalable Data Modeling by Example (Carlos Alonso, Job and Talent) | Cassandra...
 
Real-Time Integration Between MongoDB and SQL Databases
Real-Time Integration Between MongoDB and SQL Databases Real-Time Integration Between MongoDB and SQL Databases
Real-Time Integration Between MongoDB and SQL Databases
 
Real-Time Integration Between MongoDB and SQL Databases
Real-Time Integration Between MongoDB and SQL DatabasesReal-Time Integration Between MongoDB and SQL Databases
Real-Time Integration Between MongoDB and SQL Databases
 
Aggregated queries with Druid on terrabytes and petabytes of data
Aggregated queries with Druid on terrabytes and petabytes of dataAggregated queries with Druid on terrabytes and petabytes of data
Aggregated queries with Druid on terrabytes and petabytes of data
 
Nike Tech Talk: Double Down on Apache Cassandra and Spark
Nike Tech Talk:  Double Down on Apache Cassandra and SparkNike Tech Talk:  Double Down on Apache Cassandra and Spark
Nike Tech Talk: Double Down on Apache Cassandra and Spark
 
Stabilising the jenga tower
Stabilising the jenga towerStabilising the jenga tower
Stabilising the jenga tower
 
Geo Searches for Health Care Pricing Data with MongoDB
Geo Searches for Health Care Pricing Data with MongoDBGeo Searches for Health Care Pricing Data with MongoDB
Geo Searches for Health Care Pricing Data with MongoDB
 
Time series with Apache Cassandra - Long version
Time series with Apache Cassandra - Long versionTime series with Apache Cassandra - Long version
Time series with Apache Cassandra - Long version
 
SASI: Cassandra on the Full Text Search Ride (DuyHai DOAN, DataStax) | C* Sum...
SASI: Cassandra on the Full Text Search Ride (DuyHai DOAN, DataStax) | C* Sum...SASI: Cassandra on the Full Text Search Ride (DuyHai DOAN, DataStax) | C* Sum...
SASI: Cassandra on the Full Text Search Ride (DuyHai DOAN, DataStax) | C* Sum...
 
Our Story With ClickHouse at seo.do
Our Story With ClickHouse at seo.doOur Story With ClickHouse at seo.do
Our Story With ClickHouse at seo.do
 
Big Data DC - Analytics at Clearspring
Big Data DC - Analytics at ClearspringBig Data DC - Analytics at Clearspring
Big Data DC - Analytics at Clearspring
 
Time Series Processing with Apache Spark
Time Series Processing with Apache SparkTime Series Processing with Apache Spark
Time Series Processing with Apache Spark
 
View, Act, and React: Shaping Business Activity with Analytics, BigData Queri...
View, Act, and React: Shaping Business Activity with Analytics, BigData Queri...View, Act, and React: Shaping Business Activity with Analytics, BigData Queri...
View, Act, and React: Shaping Business Activity with Analytics, BigData Queri...
 

En vedette

Vergelijking eenmanszaak 2.pdf
Vergelijking eenmanszaak 2.pdfVergelijking eenmanszaak 2.pdf
Vergelijking eenmanszaak 2.pdf
benedictevm
 

En vedette (13)

Real time data processing with anypoint connector for kafka
Real time data processing with anypoint connector for kafkaReal time data processing with anypoint connector for kafka
Real time data processing with anypoint connector for kafka
 
Ambiental Prevencion gestion ambiental minera
Ambiental Prevencion gestion ambiental mineraAmbiental Prevencion gestion ambiental minera
Ambiental Prevencion gestion ambiental minera
 
Petsil registropozos
Petsil registropozosPetsil registropozos
Petsil registropozos
 
Naša škôlka
Naša škôlkaNaša škôlka
Naša škôlka
 
Ambiental Diseño ambiental
Ambiental Diseño ambientalAmbiental Diseño ambiental
Ambiental Diseño ambiental
 
Syllabus de liderazgo minas 15 16
Syllabus de liderazgo minas 15 16Syllabus de liderazgo minas 15 16
Syllabus de liderazgo minas 15 16
 
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...
 
Coding skills από το πανεπιστήμιο και μετά
Coding skills από το πανεπιστήμιο και μετάCoding skills από το πανεπιστήμιο και μετά
Coding skills από το πανεπιστήμιο και μετά
 
Petsil ingeconomica
Petsil ingeconomicaPetsil ingeconomica
Petsil ingeconomica
 
Minas Geologia estructural
Minas Geologia estructuralMinas Geologia estructural
Minas Geologia estructural
 
Ambiental Fisico quimica y termodinamica
Ambiental Fisico quimica y termodinamicaAmbiental Fisico quimica y termodinamica
Ambiental Fisico quimica y termodinamica
 
Vergelijking eenmanszaak 2.pdf
Vergelijking eenmanszaak 2.pdfVergelijking eenmanszaak 2.pdf
Vergelijking eenmanszaak 2.pdf
 
Coding skills από το πανεπιστήμιο και μετά
Coding skills από το πανεπιστήμιο και μετάCoding skills από το πανεπιστήμιο και μετά
Coding skills από το πανεπιστήμιο και μετά
 

Similaire à Speedment & Sencha at Oracle Open World 2015

Evolution of a big data project
Evolution of a big data projectEvolution of a big data project
Evolution of a big data project
Michael Peacock
 
Apache cassandra & apache spark for time series data
Apache cassandra & apache spark for time series dataApache cassandra & apache spark for time series data
Apache cassandra & apache spark for time series data
Patrick McFadin
 
Collaborate 2011– Leveraging and Enriching the Capabilities of Oracle Databas...
Collaborate 2011– Leveraging and Enriching the Capabilities of Oracle Databas...Collaborate 2011– Leveraging and Enriching the Capabilities of Oracle Databas...
Collaborate 2011– Leveraging and Enriching the Capabilities of Oracle Databas...
djkucera
 

Similaire à Speedment & Sencha at Oracle Open World 2015 (20)

Analyzing Time Series Data with Apache Spark and Cassandra
Analyzing Time Series Data with Apache Spark and CassandraAnalyzing Time Series Data with Apache Spark and Cassandra
Analyzing Time Series Data with Apache Spark and Cassandra
 
Your Timestamps Deserve Better than a Generic Database
Your Timestamps Deserve Better than a Generic DatabaseYour Timestamps Deserve Better than a Generic Database
Your Timestamps Deserve Better than a Generic Database
 
Strata+Hadoop 2015 NYC End User Panel on Real-Time Data Analytics
Strata+Hadoop 2015 NYC End User Panel on Real-Time Data AnalyticsStrata+Hadoop 2015 NYC End User Panel on Real-Time Data Analytics
Strata+Hadoop 2015 NYC End User Panel on Real-Time Data Analytics
 
Scylla Summit 2016: Analytics Show Time - Spark and Presto Powered by Scylla
Scylla Summit 2016: Analytics Show Time - Spark and Presto Powered by ScyllaScylla Summit 2016: Analytics Show Time - Spark and Presto Powered by Scylla
Scylla Summit 2016: Analytics Show Time - Spark and Presto Powered by Scylla
 
QuestDB: The building blocks of a fast open-source time-series database
QuestDB: The building blocks of a fast open-source time-series databaseQuestDB: The building blocks of a fast open-source time-series database
QuestDB: The building blocks of a fast open-source time-series database
 
SPL_ALL_EN.pptx
SPL_ALL_EN.pptxSPL_ALL_EN.pptx
SPL_ALL_EN.pptx
 
hbaseconasia2019 Phoenix Practice in China Life Insurance Co., Ltd
hbaseconasia2019 Phoenix Practice in China Life Insurance Co., Ltdhbaseconasia2019 Phoenix Practice in China Life Insurance Co., Ltd
hbaseconasia2019 Phoenix Practice in China Life Insurance Co., Ltd
 
Log everything! @DC13
Log everything! @DC13Log everything! @DC13
Log everything! @DC13
 
Streaming data analytics (Kinesis, EMR/Spark) - Pop-up Loft Tel Aviv
Streaming data analytics (Kinesis, EMR/Spark) - Pop-up Loft Tel Aviv Streaming data analytics (Kinesis, EMR/Spark) - Pop-up Loft Tel Aviv
Streaming data analytics (Kinesis, EMR/Spark) - Pop-up Loft Tel Aviv
 
Building an Analytic Extension to MySQL with ClickHouse and Open Source
Building an Analytic Extension to MySQL with ClickHouse and Open SourceBuilding an Analytic Extension to MySQL with ClickHouse and Open Source
Building an Analytic Extension to MySQL with ClickHouse and Open Source
 
Building an Analytic Extension to MySQL with ClickHouse and Open Source.pptx
Building an Analytic Extension to MySQL with ClickHouse and Open Source.pptxBuilding an Analytic Extension to MySQL with ClickHouse and Open Source.pptx
Building an Analytic Extension to MySQL with ClickHouse and Open Source.pptx
 
Movile Internet Movel SA: A Change of Seasons: A big move to Apache Cassandra
Movile Internet Movel SA: A Change of Seasons: A big move to Apache CassandraMovile Internet Movel SA: A Change of Seasons: A big move to Apache Cassandra
Movile Internet Movel SA: A Change of Seasons: A big move to Apache Cassandra
 
Cassandra Summit 2015 - A Change of Seasons
Cassandra Summit 2015 - A Change of SeasonsCassandra Summit 2015 - A Change of Seasons
Cassandra Summit 2015 - A Change of Seasons
 
Evolution of a big data project
Evolution of a big data projectEvolution of a big data project
Evolution of a big data project
 
Apache cassandra & apache spark for time series data
Apache cassandra & apache spark for time series dataApache cassandra & apache spark for time series data
Apache cassandra & apache spark for time series data
 
Apache Spark Performance Troubleshooting at Scale, Challenges, Tools, and Met...
Apache Spark Performance Troubleshooting at Scale, Challenges, Tools, and Met...Apache Spark Performance Troubleshooting at Scale, Challenges, Tools, and Met...
Apache Spark Performance Troubleshooting at Scale, Challenges, Tools, and Met...
 
Cassandra and Spark
Cassandra and Spark Cassandra and Spark
Cassandra and Spark
 
Owning time series with team apache Strata San Jose 2015
Owning time series with team apache   Strata San Jose 2015Owning time series with team apache   Strata San Jose 2015
Owning time series with team apache Strata San Jose 2015
 
Lessons Learned While Scaling Elasticsearch at Vinted
Lessons Learned While Scaling Elasticsearch at VintedLessons Learned While Scaling Elasticsearch at Vinted
Lessons Learned While Scaling Elasticsearch at Vinted
 
Collaborate 2011– Leveraging and Enriching the Capabilities of Oracle Databas...
Collaborate 2011– Leveraging and Enriching the Capabilities of Oracle Databas...Collaborate 2011– Leveraging and Enriching the Capabilities of Oracle Databas...
Collaborate 2011– Leveraging and Enriching the Capabilities of Oracle Databas...
 

Plus de Speedment, Inc.

Plus de Speedment, Inc. (13)

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
 
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
 
SenchaCon Roadshow Irvine 2017
SenchaCon Roadshow Irvine 2017SenchaCon Roadshow Irvine 2017
SenchaCon Roadshow Irvine 2017
 
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
 
NYJavaSIG - Big Data Microservices w/ Speedment
NYJavaSIG - Big Data Microservices w/ SpeedmentNYJavaSIG - Big Data Microservices w/ Speedment
NYJavaSIG - Big Data Microservices w/ Speedment
 
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
JavaOne2016 - Microservices: Terabytes in Microseconds [CON4516]
 
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
 
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
 
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
 
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 - Reactive programming for Java8
Speedment - Reactive programming for Java8Speedment - Reactive programming for Java8
Speedment - Reactive programming for Java8
 
Java days gbg online
Java days gbg onlineJava days gbg online
Java days gbg online
 
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
 

Dernier

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Dernier (20)

OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 

Speedment & Sencha at Oracle Open World 2015

  • 2. PROBLEM • Core Enterprise Applications need modernisation •The amount of data is increasing every day –Enterprise databases are growing big • Long response times is the most common IT problem at work
  • 3. DEMO Visualization of stock prices over time as detailed as possible. Dataset: •1 chosen stock paper •8 months of simulated data •28 800 trades per day •A total ~4 million SQL rows, indexed on id and date
  • 4. FIRST EXAMPLE - SIMPLE SQL A basic java http server receives a request from the Sencha app. The java program formulates an SQL query to download all matching rows from the database and parses the data into a JSON response. Databas e Server Sencha HTTP JSON JDBC
  • 5. FIRST EXAMPLE - SIMPLE SQL SELECT * FROM `trade` WHERE `stock` = ? AND (UNIX_TIMESTAMP(`date`) BETWEEN ? AND ?);
  • 6. RESULT- SIMPLE SQL java.lang.OutOfMemoryError since parsing 4 million rows into a string requires far too much memory
  • 7. SECOND EXAMPLE - ADVANCED SQL The java http server receives a request from the Sencha app. The java program formulates a more distinct query that calculates a series of average prices for a particular timespan. The result is then parsed into a JSON response.
  • 8. SELECT MIN(`date`) AS `start`, MAX(`date`) AS `end`, ROUND(AVG(`value`)) AS `average`, MAX(`value`) AS `high`, MIN(`value`) AS `low` FROM `trade` WHERE `stock` = ? AND (UNIX_TIMESTAMP(`date`) BETWEEN ? AND ?) GROUP BY ( CASE ? WHEN '1' THEN YEAR(`date`) WHEN '2' THEN CONCAT(YEAR(`date`), MONTH(`date`)) WHEN '3' THEN CONCAT(YEAR(`date`), MONTH(`date`), DAY(`date`)) WHEN '4' THEN CONCAT(YEAR(`date`), MONTH(`date`), DAY(`date`), HOUR(`date`)) WHEN '5' THEN CONCAT(YEAR(`date`), MONTH(`date`), DAY(`date`), HOUR(`date`), MINUTE(`date`)) WHEN '6' THEN CONCAT(YEAR(`date`), MONTH(`date`), DAY(`date`), HOUR(`date`), MINUTE(`date`), SECOND(`date`)) END ) ORDER BY `date`; SECOND EXAMPLE - ADVANCED SQL
  • 9. It takes 20-30 seconds to resolve a single stock If there were more than one stock, the request would be even slower. Capacity: Is sometimes limited by I/O and a single request may virtually block the entire database during a call. RESULT- ADVANCED SQL
  • 10. THIRD EXAMPLE – SPEEDMENT The dataset is kept in-memory with all relations intact. When the server receives a request, a subset of the data is picked and transformed into a JSON response. return TradeMgr.getInstance() .interval(stock, from, to) .groupBy(lod.grouper()) .mapValue(list -> StockPrices.from(list, layer)) .sorted() .values() .collect(toList());
  • 11. THIRD EXAMPLE – SPEEDMENT
  • 12. RESULT SPEEDMENT Really extensive requests are resolved in less than 1 second Other requests are resolved within milleseconds The number of stocks available is irrelevant as long as the server has enough memory. The solution is Type-Safe and easy to debug. Capacity: Scales linearly with the number of threads on the server. The more CPU:s the more capacity.
  • 13.
  • 16. THANK YOU! Carina Dreifeldt CEO Per Minborg CTO