SlideShare a Scribd company logo
Demystifying NoSQL
Jim Borden @borrrden
Software Engineer, Couchbase
About Me
• Lead .NET Mobile Engineer @ Couchbase since
2015/01
• Based in Tokyo
• Former mobile app developer (iOS / Android /
WinRT)
• Using .NET since 2007
What is NoSQL?
•An unfortunate misnomer
•Not a rejection of SQL
•An out of control twitter hashtag
What is the goal?
Horizontal scalability
Fault tolerance
Price/Performance
Flexible data modeling
CAP Theorem
A partition tolerant system either needs to sacrifice consistency or
availability.
WTF does it mean?
Story from http://ksat.me/a-plain-english-introduction-to-cap-theorem/
hanks for calling Remember, Inc
Remember, Inc. Profile
Customers call in with things they want you to remember (WRITE)
Customers call in at a later time requesting things that they asked
you to remember (READ)
The boss answers the phones for
Remember, Inc. alone.
Attempt One
Problem
• Scalability: This method only
works as long as there is only one
person controlling all data.
Image courtesy of Boians Cho Joo Young at FreeDigitalPhotos.net
Attempt Two
Light bulb image courtesy of jannoon028 at FreeDigitalPhotos.net
The boss hires a worker
Problem
• Consistency issue: What if one
call tells something to the boss and
then the next asks for the same
information from the worker?
Attempt Three
The boss and worker relay info before completing calls
Problem
• Availability issue: Cannot do both
things in parallel. If worker or boss
call in sick, work never gets
completed.
Attempt Four
If one is sick or not available, send email update.
When they return, they write down all email notes into notebook
Problem
• Partition tolerance issue: What if
the email server goes down and sent
emails are not received?
Email image courtesy of Stuart Miles at FreeDigitalPhotos.net
How to organize data with no schema?
Generate indices via map functions, get statistics via reduce
Build queries on top of these indices
Comparable to moving the schema to runtime
Let’s see it in action (Couchbase Server / N1QL)
(With CB Server running) http://localhost:8091/index.html
http://query.pub.couchbase.com/tutorial
Learn More
http://www.couchbase.com/developers
https://forums.couchbase.com/
Learn More
http://www.meetup.com/Couchbase-Tokyo/ (English)
https://couchbasejpcommunity.doorkeeper.jp/ (日本語)
2015/07/21 .NET Meetup

More Related Content

What's hot

Code workshop
Code workshopCode workshop
Code workshop
Ankit Kashyap
 
Limiting WIP: Doing Less to Do More @ Big Apple Scrum Day_5.11.18
Limiting WIP: Doing Less to Do More @ Big Apple Scrum Day_5.11.18Limiting WIP: Doing Less to Do More @ Big Apple Scrum Day_5.11.18
Limiting WIP: Doing Less to Do More @ Big Apple Scrum Day_5.11.18
Julie Wyman
 
gmail power user
gmail power usergmail power user
gmail power user
mbeizer
 
Limiting WIP: Doing Less to Do More
Limiting WIP: Doing Less to Do MoreLimiting WIP: Doing Less to Do More
Limiting WIP: Doing Less to Do More
Julie Wyman
 
Lotus Notes Error 4005 Access to Data Denied - Fix It
Lotus Notes Error 4005 Access to Data Denied - Fix ItLotus Notes Error 4005 Access to Data Denied - Fix It
Lotus Notes Error 4005 Access to Data Denied - Fix It
Ben Tyson
 
Component Driven Development - DrupalCamp London 2017
Component Driven Development - DrupalCamp London 2017Component Driven Development - DrupalCamp London 2017
Component Driven Development - DrupalCamp London 2017
John Ennew
 
How to tactically avoid boring work with Power Automate
How to tactically avoid boring work with Power AutomateHow to tactically avoid boring work with Power Automate
How to tactically avoid boring work with Power Automate
Michael Stephenson
 
Answering Questions Online Once and For All: eXtension Ask an Expert and FAQs
Answering Questions Online Once and For All: eXtension Ask an Expert and FAQsAnswering Questions Online Once and For All: eXtension Ask an Expert and FAQs
Answering Questions Online Once and For All: eXtension Ask an Expert and FAQs
bkoch
 

What's hot (8)

Code workshop
Code workshopCode workshop
Code workshop
 
Limiting WIP: Doing Less to Do More @ Big Apple Scrum Day_5.11.18
Limiting WIP: Doing Less to Do More @ Big Apple Scrum Day_5.11.18Limiting WIP: Doing Less to Do More @ Big Apple Scrum Day_5.11.18
Limiting WIP: Doing Less to Do More @ Big Apple Scrum Day_5.11.18
 
gmail power user
gmail power usergmail power user
gmail power user
 
Limiting WIP: Doing Less to Do More
Limiting WIP: Doing Less to Do MoreLimiting WIP: Doing Less to Do More
Limiting WIP: Doing Less to Do More
 
Lotus Notes Error 4005 Access to Data Denied - Fix It
Lotus Notes Error 4005 Access to Data Denied - Fix ItLotus Notes Error 4005 Access to Data Denied - Fix It
Lotus Notes Error 4005 Access to Data Denied - Fix It
 
Component Driven Development - DrupalCamp London 2017
Component Driven Development - DrupalCamp London 2017Component Driven Development - DrupalCamp London 2017
Component Driven Development - DrupalCamp London 2017
 
How to tactically avoid boring work with Power Automate
How to tactically avoid boring work with Power AutomateHow to tactically avoid boring work with Power Automate
How to tactically avoid boring work with Power Automate
 
Answering Questions Online Once and For All: eXtension Ask an Expert and FAQs
Answering Questions Online Once and For All: eXtension Ask an Expert and FAQsAnswering Questions Online Once and For All: eXtension Ask an Expert and FAQs
Answering Questions Online Once and For All: eXtension Ask an Expert and FAQs
 

Viewers also liked

фувцкфыавяа
фувцкфыавяафувцкфыавяа
фувцкфыавяа
Руслан Тагиров
 
HandyBug Robot
HandyBug Robot HandyBug Robot
HandyBug Robot
Reyna M
 
Appartamento affitto Via Montà
Appartamento affitto Via MontàAppartamento affitto Via Montà
Appartamento affitto Via Montà
morc74
 
Seminario formativo inghilterra
Seminario formativo inghilterraSeminario formativo inghilterra
Seminario formativo inghilterramorc74
 
Comunicazione digitale + mod. iscrizione
Comunicazione digitale + mod. iscrizioneComunicazione digitale + mod. iscrizione
Comunicazione digitale + mod. iscrizionemorc74
 
I os meetup_1019
I os meetup_1019I os meetup_1019
I os meetup_1019
Jim Borden
 
кероаво
кероавокероаво
Couchbase Meetup 11/19
Couchbase Meetup 11/19Couchbase Meetup 11/19
Couchbase Meetup 11/19
Jim Borden
 
Contratto preliminare e compravendita immobiliare
Contratto preliminare e compravendita immobiliareContratto preliminare e compravendita immobiliare
Contratto preliminare e compravendita immobiliaremorc74
 
Genetic Skin Health
Genetic Skin HealthGenetic Skin Health
Genetic Skin Health
LindaCrouse
 
фывцуке
фывцукефывцуке
Genes and Solutions
Genes and SolutionsGenes and Solutions
Genes and Solutions
LindaCrouse
 
Keep Your Arms and Legs Inside the Platform
Keep Your Arms and Legs Inside the PlatformKeep Your Arms and Legs Inside the Platform
Keep Your Arms and Legs Inside the Platform
Jim Borden
 
The Last Leaf
The Last LeafThe Last Leaf
The Last Leaf
Rhoell Bandong
 
Presentation1
Presentation1Presentation1
Presentation1
Pallavi Ranjan
 

Viewers also liked (20)

фувцкфыавяа
фувцкфыавяафувцкфыавяа
фувцкфыавяа
 
HandyBug Robot
HandyBug Robot HandyBug Robot
HandyBug Robot
 
Appartamento affitto Via Montà
Appartamento affitto Via MontàAppartamento affitto Via Montà
Appartamento affitto Via Montà
 
варпывар
варпыварварпывар
варпывар
 
Seminario formativo inghilterra
Seminario formativo inghilterraSeminario formativo inghilterra
Seminario formativo inghilterra
 
Comunicazione digitale + mod. iscrizione
Comunicazione digitale + mod. iscrizioneComunicazione digitale + mod. iscrizione
Comunicazione digitale + mod. iscrizione
 
I os meetup_1019
I os meetup_1019I os meetup_1019
I os meetup_1019
 
El PowerPoint
El PowerPointEl PowerPoint
El PowerPoint
 
кероаво
кероавокероаво
кероаво
 
Couchbase Meetup 11/19
Couchbase Meetup 11/19Couchbase Meetup 11/19
Couchbase Meetup 11/19
 
77f76e06001f598ce7685c9b944e0a48
77f76e06001f598ce7685c9b944e0a4877f76e06001f598ce7685c9b944e0a48
77f76e06001f598ce7685c9b944e0a48
 
Contratto preliminare e compravendita immobiliare
Contratto preliminare e compravendita immobiliareContratto preliminare e compravendita immobiliare
Contratto preliminare e compravendita immobiliare
 
fasad
fasadfasad
fasad
 
олпотьмтапов
олпотьмтаповолпотьмтапов
олпотьмтапов
 
Genetic Skin Health
Genetic Skin HealthGenetic Skin Health
Genetic Skin Health
 
фывцуке
фывцукефывцуке
фывцуке
 
Genes and Solutions
Genes and SolutionsGenes and Solutions
Genes and Solutions
 
Keep Your Arms and Legs Inside the Platform
Keep Your Arms and Legs Inside the PlatformKeep Your Arms and Legs Inside the Platform
Keep Your Arms and Legs Inside the Platform
 
The Last Leaf
The Last LeafThe Last Leaf
The Last Leaf
 
Presentation1
Presentation1Presentation1
Presentation1
 

Similar to 2015/07/21 .NET Meetup

AWS re:Invent 2016: Leverage the Power of the Crowd To Work with Amazon Mecha...
AWS re:Invent 2016: Leverage the Power of the Crowd To Work with Amazon Mecha...AWS re:Invent 2016: Leverage the Power of the Crowd To Work with Amazon Mecha...
AWS re:Invent 2016: Leverage the Power of the Crowd To Work with Amazon Mecha...
Amazon Web Services
 
Qardio experience with Core Data
Qardio experience with Core DataQardio experience with Core Data
Qardio experience with Core Data
Dmitrii Ivanov
 
XPages: You Know the 'How to'. Now Learn the 'Why and What'.
XPages: You Know the 'How to'. Now Learn the 'Why and What'.XPages: You Know the 'How to'. Now Learn the 'Why and What'.
XPages: You Know the 'How to'. Now Learn the 'Why and What'.
Teamstudio
 
Dapper: the microORM that will change your life
Dapper: the microORM that will change your lifeDapper: the microORM that will change your life
Dapper: the microORM that will change your life
Davide Mauri
 
Code first approach in entity framework
Code first approach in entity frameworkCode first approach in entity framework
Code first approach in entity framework
Manoj Mahato
 
ODSC East 2020 : Continuous_learning_systems
ODSC East 2020 : Continuous_learning_systemsODSC East 2020 : Continuous_learning_systems
ODSC East 2020 : Continuous_learning_systems
Anuj Gupta
 
Continuous Learning Systems: Building ML systems that learn from their mistakes
Continuous Learning Systems: Building ML systems that learn from their mistakesContinuous Learning Systems: Building ML systems that learn from their mistakes
Continuous Learning Systems: Building ML systems that learn from their mistakes
Anuj Gupta
 
Using MLOps to Bring ML to Production/The Promise of MLOps
Using MLOps to Bring ML to Production/The Promise of MLOpsUsing MLOps to Bring ML to Production/The Promise of MLOps
Using MLOps to Bring ML to Production/The Promise of MLOps
Weaveworks
 
Recommender Systems from A to Z – Real-Time Deployment
Recommender Systems from A to Z – Real-Time DeploymentRecommender Systems from A to Z – Real-Time Deployment
Recommender Systems from A to Z – Real-Time Deployment
Crossing Minds
 
Rsqrd AI: How to Design a Reliable and Reproducible Pipeline
Rsqrd AI: How to Design a Reliable and Reproducible PipelineRsqrd AI: How to Design a Reliable and Reproducible Pipeline
Rsqrd AI: How to Design a Reliable and Reproducible Pipeline
Sanjana Chowdhury
 
Model-Based Systems Engineering Tool How To Use Innoslate Pt. 2
Model-Based Systems Engineering Tool How To Use Innoslate Pt. 2Model-Based Systems Engineering Tool How To Use Innoslate Pt. 2
Model-Based Systems Engineering Tool How To Use Innoslate Pt. 2
Elizabeth Steiner
 
Scoping call presentation_rev_4_mary
Scoping call presentation_rev_4_maryScoping call presentation_rev_4_mary
Scoping call presentation_rev_4_mary
rhochambeau32
 
Relational data modeling trends for transactional applications
Relational data modeling trends for transactional applicationsRelational data modeling trends for transactional applications
Relational data modeling trends for transactional applications
Ike Ellis
 
Webinar: Migration from IBM Domino to IBM Verse
Webinar: Migration from IBM Domino to IBM VerseWebinar: Migration from IBM Domino to IBM Verse
Webinar: Migration from IBM Domino to IBM Verse
MOVE4IDEAS
 
Building configurable applications for the web
Building configurable applications for the webBuilding configurable applications for the web
Building configurable applications for the web
supertom
 
Tableau Best Practices for OBIEE
Tableau Best Practices for OBIEETableau Best Practices for OBIEE
Tableau Best Practices for OBIEE
BI Connector
 
"Solving Vision Tasks Using Deep Learning: An Introduction," a Presentation f...
"Solving Vision Tasks Using Deep Learning: An Introduction," a Presentation f..."Solving Vision Tasks Using Deep Learning: An Introduction," a Presentation f...
"Solving Vision Tasks Using Deep Learning: An Introduction," a Presentation f...
Edge AI and Vision Alliance
 
Denver Salesforce Developer User Group dec 2016 lightning components
Denver Salesforce Developer User Group dec 2016 lightning componentsDenver Salesforce Developer User Group dec 2016 lightning components
Denver Salesforce Developer User Group dec 2016 lightning components
Mike Tetlow
 
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Hafiz Ismail
 
Mulesoft torronto meetup_16
Mulesoft torronto meetup_16Mulesoft torronto meetup_16
Mulesoft torronto meetup_16
Anurag Dwivedi
 

Similar to 2015/07/21 .NET Meetup (20)

AWS re:Invent 2016: Leverage the Power of the Crowd To Work with Amazon Mecha...
AWS re:Invent 2016: Leverage the Power of the Crowd To Work with Amazon Mecha...AWS re:Invent 2016: Leverage the Power of the Crowd To Work with Amazon Mecha...
AWS re:Invent 2016: Leverage the Power of the Crowd To Work with Amazon Mecha...
 
Qardio experience with Core Data
Qardio experience with Core DataQardio experience with Core Data
Qardio experience with Core Data
 
XPages: You Know the 'How to'. Now Learn the 'Why and What'.
XPages: You Know the 'How to'. Now Learn the 'Why and What'.XPages: You Know the 'How to'. Now Learn the 'Why and What'.
XPages: You Know the 'How to'. Now Learn the 'Why and What'.
 
Dapper: the microORM that will change your life
Dapper: the microORM that will change your lifeDapper: the microORM that will change your life
Dapper: the microORM that will change your life
 
Code first approach in entity framework
Code first approach in entity frameworkCode first approach in entity framework
Code first approach in entity framework
 
ODSC East 2020 : Continuous_learning_systems
ODSC East 2020 : Continuous_learning_systemsODSC East 2020 : Continuous_learning_systems
ODSC East 2020 : Continuous_learning_systems
 
Continuous Learning Systems: Building ML systems that learn from their mistakes
Continuous Learning Systems: Building ML systems that learn from their mistakesContinuous Learning Systems: Building ML systems that learn from their mistakes
Continuous Learning Systems: Building ML systems that learn from their mistakes
 
Using MLOps to Bring ML to Production/The Promise of MLOps
Using MLOps to Bring ML to Production/The Promise of MLOpsUsing MLOps to Bring ML to Production/The Promise of MLOps
Using MLOps to Bring ML to Production/The Promise of MLOps
 
Recommender Systems from A to Z – Real-Time Deployment
Recommender Systems from A to Z – Real-Time DeploymentRecommender Systems from A to Z – Real-Time Deployment
Recommender Systems from A to Z – Real-Time Deployment
 
Rsqrd AI: How to Design a Reliable and Reproducible Pipeline
Rsqrd AI: How to Design a Reliable and Reproducible PipelineRsqrd AI: How to Design a Reliable and Reproducible Pipeline
Rsqrd AI: How to Design a Reliable and Reproducible Pipeline
 
Model-Based Systems Engineering Tool How To Use Innoslate Pt. 2
Model-Based Systems Engineering Tool How To Use Innoslate Pt. 2Model-Based Systems Engineering Tool How To Use Innoslate Pt. 2
Model-Based Systems Engineering Tool How To Use Innoslate Pt. 2
 
Scoping call presentation_rev_4_mary
Scoping call presentation_rev_4_maryScoping call presentation_rev_4_mary
Scoping call presentation_rev_4_mary
 
Relational data modeling trends for transactional applications
Relational data modeling trends for transactional applicationsRelational data modeling trends for transactional applications
Relational data modeling trends for transactional applications
 
Webinar: Migration from IBM Domino to IBM Verse
Webinar: Migration from IBM Domino to IBM VerseWebinar: Migration from IBM Domino to IBM Verse
Webinar: Migration from IBM Domino to IBM Verse
 
Building configurable applications for the web
Building configurable applications for the webBuilding configurable applications for the web
Building configurable applications for the web
 
Tableau Best Practices for OBIEE
Tableau Best Practices for OBIEETableau Best Practices for OBIEE
Tableau Best Practices for OBIEE
 
"Solving Vision Tasks Using Deep Learning: An Introduction," a Presentation f...
"Solving Vision Tasks Using Deep Learning: An Introduction," a Presentation f..."Solving Vision Tasks Using Deep Learning: An Introduction," a Presentation f...
"Solving Vision Tasks Using Deep Learning: An Introduction," a Presentation f...
 
Denver Salesforce Developer User Group dec 2016 lightning components
Denver Salesforce Developer User Group dec 2016 lightning componentsDenver Salesforce Developer User Group dec 2016 lightning components
Denver Salesforce Developer User Group dec 2016 lightning components
 
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
 
Mulesoft torronto meetup_16
Mulesoft torronto meetup_16Mulesoft torronto meetup_16
Mulesoft torronto meetup_16
 

Recently uploaded

Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
kalichargn70th171
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
The Third Creative Media
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Paul Brebner
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
Maitrey Patel
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
Yara Milbes
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 

Recently uploaded (20)

Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 

2015/07/21 .NET Meetup

  • 1. Demystifying NoSQL Jim Borden @borrrden Software Engineer, Couchbase
  • 2. About Me • Lead .NET Mobile Engineer @ Couchbase since 2015/01 • Based in Tokyo • Former mobile app developer (iOS / Android / WinRT) • Using .NET since 2007
  • 3. What is NoSQL? •An unfortunate misnomer •Not a rejection of SQL •An out of control twitter hashtag
  • 4. What is the goal? Horizontal scalability Fault tolerance Price/Performance Flexible data modeling
  • 5. CAP Theorem A partition tolerant system either needs to sacrifice consistency or availability.
  • 6. WTF does it mean? Story from http://ksat.me/a-plain-english-introduction-to-cap-theorem/ hanks for calling Remember, Inc
  • 7. Remember, Inc. Profile Customers call in with things they want you to remember (WRITE) Customers call in at a later time requesting things that they asked you to remember (READ)
  • 8. The boss answers the phones for Remember, Inc. alone. Attempt One Problem • Scalability: This method only works as long as there is only one person controlling all data. Image courtesy of Boians Cho Joo Young at FreeDigitalPhotos.net
  • 9. Attempt Two Light bulb image courtesy of jannoon028 at FreeDigitalPhotos.net The boss hires a worker Problem • Consistency issue: What if one call tells something to the boss and then the next asks for the same information from the worker?
  • 10. Attempt Three The boss and worker relay info before completing calls Problem • Availability issue: Cannot do both things in parallel. If worker or boss call in sick, work never gets completed.
  • 11. Attempt Four If one is sick or not available, send email update. When they return, they write down all email notes into notebook Problem • Partition tolerance issue: What if the email server goes down and sent emails are not received? Email image courtesy of Stuart Miles at FreeDigitalPhotos.net
  • 12. How to organize data with no schema? Generate indices via map functions, get statistics via reduce Build queries on top of these indices Comparable to moving the schema to runtime
  • 13. Let’s see it in action (Couchbase Server / N1QL) (With CB Server running) http://localhost:8091/index.html http://query.pub.couchbase.com/tutorial