SlideShare a Scribd company logo
1 of 41
Project Phoenix Stephen Rose Ashok Subramanian MongoUK March 21, 2011
Background Architecture Data-store Selection Implementation
What is Phoenix? 	“a platform that allows data to be transferred seamlessly to the people who want it, presented in the way they want to see it, regardless to the source, type or location of the inputs”
What sort of data? Time-series Sensor readings External data feeds Meta data Adding context Credits: http://commons.wikimedia.org/wiki/File:CPI-plot.png
What is Phoenix? 	“a web basedplatform capable of ingesting, combining, processing and distributing data - in real time”
Target Markets Smaller, cheaper, better connected Credits: http://www.flickr.com/photos/opensourceway/4370251113/ Credits: http://www.flickr.com/photos/juggerphotos/4562680976/in/photostream/
Why develop a new platform? No existing platforms for the use cases Typical solutions use Excel, SQL cannot cope with amount of data no real-time capability
Real-time Analysis COMPLEX EVENT PROCESSING STREAM COMPUTING Reporting Processing Big Data Target Customer BUSINESS INTELLIGENCE BATCHPROCESSING Batch Analysis
Real-time Analysis COMPLEX EVENT PROCESSING STREAM COMPUTING PHOENIXPLATFORM Reporting Processing Big Data Target Customer BUSINESS INTELLIGENCE BATCHPROCESSING Batch Analysis
Project Timelines 2010			                             Research Market Customers Design Architecture Data model Development 4 developers Rapid! Release Version 1 Phoenix local Q1			       	   Q2			        		 Q3	            			Q4
Background Architecture Data-store Selection Implementation
Data Model Credits: http://www.flickr.com/photos/nazly/5502884394/sizes/z/
Data Highways and Lanes Credits: http://www.flickr.com/photos/mhzmaster/965947834/sizes/z/
LATITUDE MY CAR LONGITUDE MPG MPG GFORCES GFORCES PASSENGER HEART RATE LATITUDE MY WIFE’S CAR LONGITUDE MPG MPG TEMPERATURE TEMPERATURE
Markers Credits: http://www.flickr.com/photos/rebelxt/5284536592/sizes/z/in/photostream/
STEVE’S WIFE DRIVING STEVE DRIVING LATITUDE MY CAR LONGITUDE MPG MPG G FORCE G FORCE
Architecture Phoenix  		   					Customer APPLICATION STREAM PROCESSOR ALGORITHMS DATASTORE DATA FEEDS
Offline and Cloud Credits: http://www.flickr.com/photos/noii/2327713880/
Background Architecture Data Store Selection Implementation
Selection Criteria Local and Cloud Use cases – time-series and marker Performance Query Community Maintenance Deployment
3 different categories
Data Stores Evaluated
Background Architecture Data Store Selection Implementation
Data Stores Phoenix  Customer APPLICATION STREAM PROCESSOR ALGORITHMS DATASTORE DATA FEEDS TIME SERIES MARKERS
Marker Store T I M E FROM FROM TO L I N K E D		H I G H W A Y S
Marker Store {	"fromId" : ”Athlete1", 	"toId" : ”Ergometer", 	"startTime" : 1, 	"endTime" : 50 } {	"fromId" : ”Athlete2", 	"toId" : ”Ergometer", 	"startTime" : 60, 	"endTime" : null } L I N K E D		H I G H W A Y S
Marker Store {	”deviceId" : ”1", 	”calibrationType" : ”sensor1", 	”validFrom" : 1, 	”validTo" : null 	“calibrations" : 		 	[	 			{”expected”: 10.0, 			“actual”: 12.9 			}, 			{”expected”: 50.0, 			“actual”: 61.7 			} 		] } C A L I B R A T I O N	M A R K E R S
Marker Store
Marker Store Stack Http JbossNettyWebserver JSON Java
Marker Store API JSON POST to /linkedhighway/create GET from /linkedhighway/findactive/{fromId} POST to /calibration/create GET from /calibration/{markerId}
Phoenix Data Store Ergometer Force Reading (Newtons) {X1, Y1} {Xn, Yn} Distance Travel (Metres) {X1, Y1} {Xn, Yn}
Phoenix Data Store {	“_id”: “HandleForce”, 	“xDomainType”: “SINT64”, 	“xUnits”:	“ms”, 	“yDomainType”:	“DOUBLE”, 	“yUnits”:	“N” } L A N E		M E T A D A T A
Phoenix Data Store {	”_id" : 1, 	”y" : 0 } {	“_id”: 2, 	“y”: 0.5 } {	“_id”: 3, 	“y”: 0.707 } {	“_id”: 4, 	“y”: 0.866 } {	“_id”: 5, 	“y”: 1 }… T I M E		S E R I E S
Phoenix Data Store
Phoenix Data Store Stack Tcp JbossNetty Server – NIO Google Protocol Buffers Java
Phoenix Data Store API Commit connect() openLane(…) persist(x, y) disconnect() Query connect() submitQuery(…) returns a Cursor disconnect() J A V A		C L I E N T
Performance
Phoenix Local AMD Athlon II 2.8GHz 64-bit 640GB 2.5” Hard Drive SATA 5400 rpm 2 X 2GB DDR3 Ubuntu 10.10 EXT4
Issues Faced No Journaling in Mongo 1.6 (Fixed in 1.8) Compression DB repair did not work once – unclean shutdown Assertion failure magic == 0x41424344 db/pdfile.h
Summary MongoDB - Does what it says on the tin
Thank You Questions? stephen.rose@mclaren.com ashok.subramanian@thoughtworks.com

More Related Content

Similar to Project Phoenix - MongoUK 2011

Big Data Analytics in the Cloud with Microsoft Azure
Big Data Analytics in the Cloud with Microsoft AzureBig Data Analytics in the Cloud with Microsoft Azure
Big Data Analytics in the Cloud with Microsoft AzureMark Kromer
 
Real-Time Analytics with Confluent and MemSQL
Real-Time Analytics with Confluent and MemSQLReal-Time Analytics with Confluent and MemSQL
Real-Time Analytics with Confluent and MemSQLSingleStore
 
WSO2 Analytics Platform - The one stop shop for all your data needs
WSO2 Analytics Platform - The one stop shop for all your data needsWSO2 Analytics Platform - The one stop shop for all your data needs
WSO2 Analytics Platform - The one stop shop for all your data needsSriskandarajah Suhothayan
 
Open Blueprint for Real-Time Analytics in Retail: Strata Hadoop World 2017 S...
Open Blueprint for Real-Time  Analytics in Retail: Strata Hadoop World 2017 S...Open Blueprint for Real-Time  Analytics in Retail: Strata Hadoop World 2017 S...
Open Blueprint for Real-Time Analytics in Retail: Strata Hadoop World 2017 S...Grid Dynamics
 
Big Data Processing Beyond MapReduce by Dr. Flavio Villanustre
Big Data Processing Beyond MapReduce by Dr. Flavio VillanustreBig Data Processing Beyond MapReduce by Dr. Flavio Villanustre
Big Data Processing Beyond MapReduce by Dr. Flavio VillanustreHPCC Systems
 
[WSO2Con EU 2017] Deriving Insights for Your Digital Business with Analytics
[WSO2Con EU 2017] Deriving Insights for Your Digital Business with Analytics[WSO2Con EU 2017] Deriving Insights for Your Digital Business with Analytics
[WSO2Con EU 2017] Deriving Insights for Your Digital Business with AnalyticsWSO2
 
Advanced Analytics and Machine Learning with Data Virtualization
Advanced Analytics and Machine Learning with Data VirtualizationAdvanced Analytics and Machine Learning with Data Virtualization
Advanced Analytics and Machine Learning with Data VirtualizationDenodo
 
WSO2 Data Analytics Server - Product Overview
WSO2 Data Analytics Server - Product OverviewWSO2 Data Analytics Server - Product Overview
WSO2 Data Analytics Server - Product OverviewWSO2
 
V like Velocity, Predicting in Real-Time with Azure ML
V like Velocity, Predicting in Real-Time with Azure MLV like Velocity, Predicting in Real-Time with Azure ML
V like Velocity, Predicting in Real-Time with Azure MLBarbara Fusinska
 
RA - Empower your Connected Enterprise with FactoryTalk.pptx
RA - Empower your Connected Enterprise with FactoryTalk.pptxRA - Empower your Connected Enterprise with FactoryTalk.pptx
RA - Empower your Connected Enterprise with FactoryTalk.pptxAjay Gangakhedkar
 
Time's Up! Getting Value from Big Data Now
Time's Up! Getting Value from Big Data NowTime's Up! Getting Value from Big Data Now
Time's Up! Getting Value from Big Data NowEric Kavanagh
 
Getting insights from IoT data with Apache Spark and Apache Bahir
Getting insights from IoT data with Apache Spark and Apache BahirGetting insights from IoT data with Apache Spark and Apache Bahir
Getting insights from IoT data with Apache Spark and Apache BahirLuciano Resende
 
Building the IOT Platform as a Service
Building the IOT Platform as a ServiceBuilding the IOT Platform as a Service
Building the IOT Platform as a ServiceJesus Rodriguez
 
Processing Real-Time Data at Scale: A streaming platform as a central nervous...
Processing Real-Time Data at Scale: A streaming platform as a central nervous...Processing Real-Time Data at Scale: A streaming platform as a central nervous...
Processing Real-Time Data at Scale: A streaming platform as a central nervous...confluent
 
[WSO2Con Asia 2018] Patterns for Building Streaming Apps
[WSO2Con Asia 2018] Patterns for Building Streaming Apps[WSO2Con Asia 2018] Patterns for Building Streaming Apps
[WSO2Con Asia 2018] Patterns for Building Streaming AppsWSO2
 
Unlock the Power of Streaming Data with Kinetica and Confluent Platform
Unlock the Power of Streaming Data with Kinetica and Confluent PlatformUnlock the Power of Streaming Data with Kinetica and Confluent Platform
Unlock the Power of Streaming Data with Kinetica and Confluent Platformconfluent
 
Serverless Streaming Data Processing using Amazon Kinesis Analytics
Serverless Streaming Data Processing using Amazon Kinesis AnalyticsServerless Streaming Data Processing using Amazon Kinesis Analytics
Serverless Streaming Data Processing using Amazon Kinesis AnalyticsAdrian Hornsby
 
From measurement to knowledge with sofia2 Platform
From measurement to knowledge with sofia2 PlatformFrom measurement to knowledge with sofia2 Platform
From measurement to knowledge with sofia2 PlatformSofia2 Smart Platform
 

Similar to Project Phoenix - MongoUK 2011 (20)

Big Data Analytics in the Cloud with Microsoft Azure
Big Data Analytics in the Cloud with Microsoft AzureBig Data Analytics in the Cloud with Microsoft Azure
Big Data Analytics in the Cloud with Microsoft Azure
 
Real-Time Analytics with Confluent and MemSQL
Real-Time Analytics with Confluent and MemSQLReal-Time Analytics with Confluent and MemSQL
Real-Time Analytics with Confluent and MemSQL
 
WSO2 Analytics Platform - The one stop shop for all your data needs
WSO2 Analytics Platform - The one stop shop for all your data needsWSO2 Analytics Platform - The one stop shop for all your data needs
WSO2 Analytics Platform - The one stop shop for all your data needs
 
Open Blueprint for Real-Time Analytics in Retail: Strata Hadoop World 2017 S...
Open Blueprint for Real-Time  Analytics in Retail: Strata Hadoop World 2017 S...Open Blueprint for Real-Time  Analytics in Retail: Strata Hadoop World 2017 S...
Open Blueprint for Real-Time Analytics in Retail: Strata Hadoop World 2017 S...
 
Big Data Processing Beyond MapReduce by Dr. Flavio Villanustre
Big Data Processing Beyond MapReduce by Dr. Flavio VillanustreBig Data Processing Beyond MapReduce by Dr. Flavio Villanustre
Big Data Processing Beyond MapReduce by Dr. Flavio Villanustre
 
Analytics&IoT
Analytics&IoTAnalytics&IoT
Analytics&IoT
 
[WSO2Con EU 2017] Deriving Insights for Your Digital Business with Analytics
[WSO2Con EU 2017] Deriving Insights for Your Digital Business with Analytics[WSO2Con EU 2017] Deriving Insights for Your Digital Business with Analytics
[WSO2Con EU 2017] Deriving Insights for Your Digital Business with Analytics
 
Advanced Analytics and Machine Learning with Data Virtualization
Advanced Analytics and Machine Learning with Data VirtualizationAdvanced Analytics and Machine Learning with Data Virtualization
Advanced Analytics and Machine Learning with Data Virtualization
 
WSO2 Data Analytics Server - Product Overview
WSO2 Data Analytics Server - Product OverviewWSO2 Data Analytics Server - Product Overview
WSO2 Data Analytics Server - Product Overview
 
V like Velocity, Predicting in Real-Time with Azure ML
V like Velocity, Predicting in Real-Time with Azure MLV like Velocity, Predicting in Real-Time with Azure ML
V like Velocity, Predicting in Real-Time with Azure ML
 
RA - Empower your Connected Enterprise with FactoryTalk.pptx
RA - Empower your Connected Enterprise with FactoryTalk.pptxRA - Empower your Connected Enterprise with FactoryTalk.pptx
RA - Empower your Connected Enterprise with FactoryTalk.pptx
 
Time's Up! Getting Value from Big Data Now
Time's Up! Getting Value from Big Data NowTime's Up! Getting Value from Big Data Now
Time's Up! Getting Value from Big Data Now
 
Getting insights from IoT data with Apache Spark and Apache Bahir
Getting insights from IoT data with Apache Spark and Apache BahirGetting insights from IoT data with Apache Spark and Apache Bahir
Getting insights from IoT data with Apache Spark and Apache Bahir
 
Building the IOT Platform as a Service
Building the IOT Platform as a ServiceBuilding the IOT Platform as a Service
Building the IOT Platform as a Service
 
Processing Real-Time Data at Scale: A streaming platform as a central nervous...
Processing Real-Time Data at Scale: A streaming platform as a central nervous...Processing Real-Time Data at Scale: A streaming platform as a central nervous...
Processing Real-Time Data at Scale: A streaming platform as a central nervous...
 
[WSO2Con Asia 2018] Patterns for Building Streaming Apps
[WSO2Con Asia 2018] Patterns for Building Streaming Apps[WSO2Con Asia 2018] Patterns for Building Streaming Apps
[WSO2Con Asia 2018] Patterns for Building Streaming Apps
 
Unlock the Power of Streaming Data with Kinetica and Confluent Platform
Unlock the Power of Streaming Data with Kinetica and Confluent PlatformUnlock the Power of Streaming Data with Kinetica and Confluent Platform
Unlock the Power of Streaming Data with Kinetica and Confluent Platform
 
Andersen portfolio
Andersen portfolio Andersen portfolio
Andersen portfolio
 
Serverless Streaming Data Processing using Amazon Kinesis Analytics
Serverless Streaming Data Processing using Amazon Kinesis AnalyticsServerless Streaming Data Processing using Amazon Kinesis Analytics
Serverless Streaming Data Processing using Amazon Kinesis Analytics
 
From measurement to knowledge with sofia2 Platform
From measurement to knowledge with sofia2 PlatformFrom measurement to knowledge with sofia2 Platform
From measurement to knowledge with sofia2 Platform
 

Recently uploaded

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 

Recently uploaded (20)

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 

Project Phoenix - MongoUK 2011

  • 1. Project Phoenix Stephen Rose Ashok Subramanian MongoUK March 21, 2011
  • 2. Background Architecture Data-store Selection Implementation
  • 3. What is Phoenix? “a platform that allows data to be transferred seamlessly to the people who want it, presented in the way they want to see it, regardless to the source, type or location of the inputs”
  • 4. What sort of data? Time-series Sensor readings External data feeds Meta data Adding context Credits: http://commons.wikimedia.org/wiki/File:CPI-plot.png
  • 5. What is Phoenix? “a web basedplatform capable of ingesting, combining, processing and distributing data - in real time”
  • 6. Target Markets Smaller, cheaper, better connected Credits: http://www.flickr.com/photos/opensourceway/4370251113/ Credits: http://www.flickr.com/photos/juggerphotos/4562680976/in/photostream/
  • 7. Why develop a new platform? No existing platforms for the use cases Typical solutions use Excel, SQL cannot cope with amount of data no real-time capability
  • 8. Real-time Analysis COMPLEX EVENT PROCESSING STREAM COMPUTING Reporting Processing Big Data Target Customer BUSINESS INTELLIGENCE BATCHPROCESSING Batch Analysis
  • 9. Real-time Analysis COMPLEX EVENT PROCESSING STREAM COMPUTING PHOENIXPLATFORM Reporting Processing Big Data Target Customer BUSINESS INTELLIGENCE BATCHPROCESSING Batch Analysis
  • 10. Project Timelines 2010 Research Market Customers Design Architecture Data model Development 4 developers Rapid! Release Version 1 Phoenix local Q1 Q2 Q3 Q4
  • 11. Background Architecture Data-store Selection Implementation
  • 12. Data Model Credits: http://www.flickr.com/photos/nazly/5502884394/sizes/z/
  • 13. Data Highways and Lanes Credits: http://www.flickr.com/photos/mhzmaster/965947834/sizes/z/
  • 14. LATITUDE MY CAR LONGITUDE MPG MPG GFORCES GFORCES PASSENGER HEART RATE LATITUDE MY WIFE’S CAR LONGITUDE MPG MPG TEMPERATURE TEMPERATURE
  • 16. STEVE’S WIFE DRIVING STEVE DRIVING LATITUDE MY CAR LONGITUDE MPG MPG G FORCE G FORCE
  • 17. Architecture Phoenix Customer APPLICATION STREAM PROCESSOR ALGORITHMS DATASTORE DATA FEEDS
  • 18. Offline and Cloud Credits: http://www.flickr.com/photos/noii/2327713880/
  • 19. Background Architecture Data Store Selection Implementation
  • 20. Selection Criteria Local and Cloud Use cases – time-series and marker Performance Query Community Maintenance Deployment
  • 23. Background Architecture Data Store Selection Implementation
  • 24. Data Stores Phoenix Customer APPLICATION STREAM PROCESSOR ALGORITHMS DATASTORE DATA FEEDS TIME SERIES MARKERS
  • 25. Marker Store T I M E FROM FROM TO L I N K E D H I G H W A Y S
  • 26. Marker Store { "fromId" : ”Athlete1", "toId" : ”Ergometer", "startTime" : 1, "endTime" : 50 } { "fromId" : ”Athlete2", "toId" : ”Ergometer", "startTime" : 60, "endTime" : null } L I N K E D H I G H W A Y S
  • 27. Marker Store { ”deviceId" : ”1", ”calibrationType" : ”sensor1", ”validFrom" : 1, ”validTo" : null “calibrations" : [ {”expected”: 10.0, “actual”: 12.9 }, {”expected”: 50.0, “actual”: 61.7 } ] } C A L I B R A T I O N M A R K E R S
  • 29. Marker Store Stack Http JbossNettyWebserver JSON Java
  • 30. Marker Store API JSON POST to /linkedhighway/create GET from /linkedhighway/findactive/{fromId} POST to /calibration/create GET from /calibration/{markerId}
  • 31. Phoenix Data Store Ergometer Force Reading (Newtons) {X1, Y1} {Xn, Yn} Distance Travel (Metres) {X1, Y1} {Xn, Yn}
  • 32. Phoenix Data Store { “_id”: “HandleForce”, “xDomainType”: “SINT64”, “xUnits”: “ms”, “yDomainType”: “DOUBLE”, “yUnits”: “N” } L A N E M E T A D A T A
  • 33. Phoenix Data Store { ”_id" : 1, ”y" : 0 } { “_id”: 2, “y”: 0.5 } { “_id”: 3, “y”: 0.707 } { “_id”: 4, “y”: 0.866 } { “_id”: 5, “y”: 1 }… T I M E S E R I E S
  • 35. Phoenix Data Store Stack Tcp JbossNetty Server – NIO Google Protocol Buffers Java
  • 36. Phoenix Data Store API Commit connect() openLane(…) persist(x, y) disconnect() Query connect() submitQuery(…) returns a Cursor disconnect() J A V A C L I E N T
  • 38. Phoenix Local AMD Athlon II 2.8GHz 64-bit 640GB 2.5” Hard Drive SATA 5400 rpm 2 X 2GB DDR3 Ubuntu 10.10 EXT4
  • 39. Issues Faced No Journaling in Mongo 1.6 (Fixed in 1.8) Compression DB repair did not work once – unclean shutdown Assertion failure magic == 0x41424344 db/pdfile.h
  • 40. Summary MongoDB - Does what it says on the tin
  • 41. Thank You Questions? stephen.rose@mclaren.com ashok.subramanian@thoughtworks.com

Editor's Notes

  1. generic
  2. Increased connectivityCheaper, smaller sensorsNew computing techniques
  3. Each sensor manufacturer creates a custom tool to view data from that sensor
  4. Relative performance of the different types of data stores with BerkeleyDB as the baseline to benchmark against