The document discusses NoSQL databases as an alternative to SQL databases. It defines NoSQL as structured data storage that does not rely on SQL for access. The document notes that NoSQL does not mean SQL is bad, and explores when a NoSQL database may be preferable to a SQL database, such as when an application's data needs are not well suited to the transactions and joins supported by SQL. It then summarizes different types of NoSQL databases and provides MongoDB as an example use case, highlighting how it avoids some of the overhead of SQL through its flexible schema and high performance.
Mongodb and Totsy - E-commerce Case StudyMitch Pirtle
Deck from MongoChicago, providing a case study on the implementation of the totsy.com website using MongoDB and the Lithium framework.
There's a video you can watch of the same presentation from the Mongo Boston event which happened one month earlier:
http://www.10gen.com/video/mongoboston2010/totsy
MongoDB and Ecommerce : A perfect combinationSteven Francia
Presentation given at the MongoDB NYC Meetup by Steve Francia, VP of Engineering at OpenSky. OpenSky uses MongoDB to develop the next ecommerce platform. OpenSky also uses Symfony 2, Doctrine 2, PHP 5.3, PHPUnit 3.5, jQuery, node.js, Git (with gitflow) and a touch of Java and Python. The OpenSky team contributes back to many of these technologies and employs core members of the Symfony 2 and Doctrine 2 teams.
Games for the Masses: Scaling Rails to the ExtremeWooga
This presentation explains and compares the work of two engineering teams that build Facebook game backends at wooga: Cloud vs. dedicated servers, SQL vs. NoSQL and in-memory database vs. a database hierarchy. He will highlight their respective advantages and disadvantages and discuss some common patterns both teams came up with to solve their problems.
At wooga the separate game teams operate their own games. That means that two developers not only develop the backend for a social game but they also the administrator's part.
This presentation gives an insight on how this is done, what tools are used and how the most important challenges were solved.
Augmenting RDBMS with MongoDB for ecommerceSteven Francia
Steve Francia, VP of Engineering at OpenSky a NYC based social commerce company, on how OpenSky augments using RDBMS with MongoDB to develop the next ecommerce platform.
OpenSky utilizes both traditional SQL solutions and combines them with NoSQL to overcome the limitations of each, increase development speed and scale quickly.
Mongodb and Totsy - E-commerce Case StudyMitch Pirtle
Deck from MongoChicago, providing a case study on the implementation of the totsy.com website using MongoDB and the Lithium framework.
There's a video you can watch of the same presentation from the Mongo Boston event which happened one month earlier:
http://www.10gen.com/video/mongoboston2010/totsy
MongoDB and Ecommerce : A perfect combinationSteven Francia
Presentation given at the MongoDB NYC Meetup by Steve Francia, VP of Engineering at OpenSky. OpenSky uses MongoDB to develop the next ecommerce platform. OpenSky also uses Symfony 2, Doctrine 2, PHP 5.3, PHPUnit 3.5, jQuery, node.js, Git (with gitflow) and a touch of Java and Python. The OpenSky team contributes back to many of these technologies and employs core members of the Symfony 2 and Doctrine 2 teams.
Games for the Masses: Scaling Rails to the ExtremeWooga
This presentation explains and compares the work of two engineering teams that build Facebook game backends at wooga: Cloud vs. dedicated servers, SQL vs. NoSQL and in-memory database vs. a database hierarchy. He will highlight their respective advantages and disadvantages and discuss some common patterns both teams came up with to solve their problems.
At wooga the separate game teams operate their own games. That means that two developers not only develop the backend for a social game but they also the administrator's part.
This presentation gives an insight on how this is done, what tools are used and how the most important challenges were solved.
Augmenting RDBMS with MongoDB for ecommerceSteven Francia
Steve Francia, VP of Engineering at OpenSky a NYC based social commerce company, on how OpenSky augments using RDBMS with MongoDB to develop the next ecommerce platform.
OpenSky utilizes both traditional SQL solutions and combines them with NoSQL to overcome the limitations of each, increase development speed and scale quickly.
Conceptos básicos. Seminario web 6: Despliegue de producciónMongoDB
Este es el último seminario web de la serie Conceptos básicos, en la que se realiza una introducción a la base de datos MongoDB. En este seminario web le guiaremos por el despliegue en producción.
Scaling up and accelerating Drupal 8 with NoSQLOSInet
Drupal 8 can scale well and serve pages fast to many users, especially by offloading parts of the work load from the main SQL database to NoSQL solutions.
This presentation describes the strategies and technologies usable to achieve such gains, including specific configuration, contributed modules and custom coding strategies.
Discover & identify ideal storage solution for our needs by examining the history of data storage & the modern database systems including Key Value, Relational, Graph and Document databases.
This presentation was given at RootsTech 2013 in March
This is an introduction to relational and non-relational databases and how their performance affects scaling a web application.
This is a recording of a guest Lecture I gave at the University of Texas school of Information.
In this talk I address the technologies and tools Gowalla (gowalla.com) uses including memcache, redis and cassandra.
Find more on my blog:
http://schneems.com
My toaster stores data without SQL and without tables. But making a choice based on what something doesn’t have isn’t terribly useful. “NoSQL” is an increasingly inaccurate catch-all term that covers a lot of different types of data storage. Let’s make more sense of this new breed of database management systems and go beyond the buzzword. In this session, the four main data models that make up the NoSQL movement will be covered: key-value, document, columnar and graph. How they differ and when you might want to use each one will be discussed.
This session will be looking at the whole ecosystem, with a more detailed focus on Couchbase, Cassandra, Riak KV, and Neo4j.
Deliverance - a compelling way to theme Plone sitesJazkarta, Inc.
This talk gives an overview of Deliverance, a middleware tool that makes it easy to theme any website. In particular, we discuss how to make it work with the Plone, open source CMS.
This presentation was given at the LDS Tech SORT Conference 2011 in Salt Lake City. The slides are quite comprehensive covering many topics on MongoDB. Rather than a traditional presentation, this was presented as more of a Q & A session. Topics covered include. Introduction to MongoDB, Use Cases, Schema design, High availability (replication) and Horizontal Scaling (sharding).
Conceptos básicos. Seminario web 6: Despliegue de producciónMongoDB
Este es el último seminario web de la serie Conceptos básicos, en la que se realiza una introducción a la base de datos MongoDB. En este seminario web le guiaremos por el despliegue en producción.
Scaling up and accelerating Drupal 8 with NoSQLOSInet
Drupal 8 can scale well and serve pages fast to many users, especially by offloading parts of the work load from the main SQL database to NoSQL solutions.
This presentation describes the strategies and technologies usable to achieve such gains, including specific configuration, contributed modules and custom coding strategies.
Discover & identify ideal storage solution for our needs by examining the history of data storage & the modern database systems including Key Value, Relational, Graph and Document databases.
This presentation was given at RootsTech 2013 in March
This is an introduction to relational and non-relational databases and how their performance affects scaling a web application.
This is a recording of a guest Lecture I gave at the University of Texas school of Information.
In this talk I address the technologies and tools Gowalla (gowalla.com) uses including memcache, redis and cassandra.
Find more on my blog:
http://schneems.com
My toaster stores data without SQL and without tables. But making a choice based on what something doesn’t have isn’t terribly useful. “NoSQL” is an increasingly inaccurate catch-all term that covers a lot of different types of data storage. Let’s make more sense of this new breed of database management systems and go beyond the buzzword. In this session, the four main data models that make up the NoSQL movement will be covered: key-value, document, columnar and graph. How they differ and when you might want to use each one will be discussed.
This session will be looking at the whole ecosystem, with a more detailed focus on Couchbase, Cassandra, Riak KV, and Neo4j.
Deliverance - a compelling way to theme Plone sitesJazkarta, Inc.
This talk gives an overview of Deliverance, a middleware tool that makes it easy to theme any website. In particular, we discuss how to make it work with the Plone, open source CMS.
This presentation was given at the LDS Tech SORT Conference 2011 in Salt Lake City. The slides are quite comprehensive covering many topics on MongoDB. Rather than a traditional presentation, this was presented as more of a Q & A session. Topics covered include. Introduction to MongoDB, Use Cases, Schema design, High availability (replication) and Horizontal Scaling (sharding).
Solr cloud the 'search first' nosql database extended deep divelucenerevolution
Presented by Mark Miller, Software Engineer, Cloudera
As the NoSQL ecosystem looks to integrate great search, great search is naturally beginning to expose many NoSQL features. Will these Goliath's collide? Or will they remain specialized while intermingling – two sides of the same coin.
Come learn about where SolrCloud fits into the NoSQL landscape. What can it do? What will it do? And how will the big data, NoSQL, Search ecosystem evolve. If you are interested in Big Data, NoSQL, distributed systems, CAP theorem and other hype filled terms, than this talk may be for you.
Talk given to introduce the concepts behind rails. Be sure to checkout the sample application that goes with it at: https://github.com/rschmukler/sample_rails
Why Organizations are Looking at Alternative Database Technologies – Introduc...DATAVERSITY
This webinar will first walk through the main forces driving developers and IT organizations to adopt non-relational or NoSQL databases. Next it will cover the key concepts and terminology used in the NoSQL space. Finally, using MongoDB as an example, the webinar will highlight examples of how organizations have put NoSQL technology to use in order to drive their business objectives.
MongoDB World 2019: Don't Panic - The Hitchhiker's Guide to the MongoDB GalaxyMongoDB
MongoDB continues to rocket into space with ever-increasing thrust, but you just showed up today at the launch pad. With such an ever-growing universe of features, tools and versions, where to start? Fear not, Friend, for this talk is aimed specifically at you. Remember, we were all once noobs...
When it comes time to select database software for your project, there are a bewildering number of choices. How do you know if your project is a good fit for a relational database, or whether one of the many NoSQL options is a better choice?
In this webinar you will learn when to use MongoDB and how to evaluate if MongoDB is a fit for your project. You will see how MongoDB's flexible document model is solving business problems in ways that were not previously possible, and how MongoDB's built-in features allow running at scale.
Topics covered include:
Performance and Scalability
MongoDB's Data Model
Popular MongoDB Use Cases
Customer Stories
Reuven Lerner's first talk from Open Ruby Day, at Hi-Tech College in Herzliya, Israel, on June 27th 2010. An overview of what makes Rails a powerful framework for Web development -- what attracted Reuven to it, what are the components that most speak to him, and why others should consider Rails for their Web applications.
Tara Hunt - Your Social Media Strategy Wont Save YouCarsonified Team
Being friendly and helpful on Facebook and Twitter won't make your app succeed. In this valuable session, Tara will explain how to think 'customer centrically', put user happiness first, reward enthusiasts, learn not launch and raise whuffie. She'll also explain the difference between 'Influencers' and 'Enthusiasts' and why it's important to reach the latter. Don't miss it!
Dion Almaer & Ben Galbraith - Build Once, Deploy EverywhereCarsonified Team
The Web is becoming the common operating system across all devices, both mobile and desktop. In this talk Dion will explain the technology that you need to understand to make sure your app is ready for the next era where all web apps will need to be mobile. This is going to give web developers a HUGE advantage and opportunity to deploy their apps to multiple devices, and it's vital to understand what's coming down the pipeline. Dion will explain exactly that, and prepare you for what's coming. Exciting!
Steve Huffman - Lessons learned while at reddit.comCarsonified Team
Neil will teach you five advanced website traffic statistics that you NEED to be measuring, but probably aren't. It isn't good enough anymore to just measure click-through and conversion rates to your signup page. You need MUCH more detail and Neil will explain how to get it and make decisions accordingly. You'll be amazed at the increase in valuable sign-ups and revenue increases you can achieve.
Neil Patel - What You Need to be Measuring and How to Do ItCarsonified Team
Neil will teach you five advanced website traffic statistics that you NEED to be measuring, but probably aren't. It isn't good enough anymore to just measure click-through and conversion rates to your signup page. You need MUCH more detail and Neil will explain how to get it and make decisions accordingly. You'll be amazed at the increase in valuable sign-ups and revenue increases you can achieve.
Molly Holzschlag - How HTML 5 is Going to Completely Change your Web AppCarsonified Team
The HTML 5 spec was originally called "Web Applications 1.0". Most of the attention has been on the new markup elements, but we'll look further at the applications side of the spec, including: 1. Dynamic images and graphs with canvas 2. Eliminating forms validation with webforms 2.0 3. Local storage for saving your data 4. Geolocation 5. Building toolbars and menus
Mike Mcderment - Marketing Metrics and the Systems You Need to Measure ThemCarsonified Team
Mike has grown FreshBooks from a one-man startup to a 30-person Web app company. He's going to teach you six essential terms that you need to understand in order to succeed with your app: 'Lifetime Value', 'Average Revenue per User', 'Churn', 'Gross Cost per Acquisition', 'Sales Funnel' and 'Customer Vintages'. He's then going to give an example with a real-life case study. This is one you can't afford to miss.
Fred Wilson - The 10 Golden Principles for Successful Web AppsCarsonified Team
In this session, Fred will share 10 vital principles that anyone working on a web app should know. His experience with Twitter, FeedBurner, Etsy, Delicious, Tumblr, Boxee, FourSquare, Meetup and more will prove invaluable to everyone attending.
Alex Payne - Speedy, Stable, and Secure: Better Web Applications Through Func...Carsonified Team
A whirlwind tour of the benefits of functional programming languages and how you can put them to work in your web application's architecture. Learn how to make the most of a rich type system, immutable data structures, and other features of languages like Scala, Erlang, Haskell, and OCaml. Find out where to get started with functional languages, and how they stack up when it comes to web app development.
Aaron Patzer - How to Take Your Start-up to the Next LevelCarsonified Team
Aaron successfully grew Mint.com from a small bootstrapped team to a large team that was acquired for $170M. In this session Aaron shared how he knew it was time to raise venture capital and grow his team aggressively. He also shared important lessons he's learned which you can directly apply to your business, whether you're raising venture capital or not.
Taking your Site from One to One Million Users by Kevin RoseCarsonified Team
At The Future of Web Apps London, Kevin shares the secrets to digg.com and wefollow.com's explosive user growth. He covers ten unique strategies that turn passive users into passionate advocates.
You'll learn:
1. How to encourage users to tweet about your app
2. The concept of "The Circle of Life" in web apps and how it affects you
3. Growing your userbase: What worked and what didn't for digg, WeFollow and Pownce
4. And more ...
Future of Web Apps Tour Edinburgh & Leeds presents "Lessons Learned from Selling Dropsend and other Web App Stories" by Ryan Carson, founder of Carsonified
3. For Starters: What does it
mean at all?
“NoSQL is a blanket term used to describe
structured storage that doesn’t rely on SQL
to be accessed in a useful way”.
-- Chris Lea
4. For Starters: What does it
mean at all?
“NoSQL” DOES NOT mean “SQL is Bad”
6. MySQL does what I need, why
should I care?
“If I’d asked my customers what they wanted,
they’d have said a faster horse.” -- Henry Ford
7. MySQL does what I need, why
should I care?
RDBMS NoSQL
Designed for generic Designed to solve
workloads specific problems
Large (and growing) Trades features for
feature sets performance
15. Should I be Thinking about
NoSQL?
Probably need
RDBMS.
Yes Can you sanely do
what you need in the app? No
Do you need
transactions?
Yes
No
Think about
NoSQL.
17. NoSQL Systems Typically
Don’t do Transactions
or Joins
• If you really need transactions, stick with RDBMS
• Not having joins turns out to be not such a big deal
18. NoSQL Systems Typically
Don’t do Transactions
or Joins
MongoDB is an excellent use case example
19. Why MongoDB?
• Comfortable if you are coming from MySQL
• Written in C++ means all machine code
• no Erlang / Java / virtual machines
• Tools like mongo (shell), mongodump, mongostat,
mongoimport
• Native drives in languages you care about
• no Thrift / REST / code generation steps
20. Why MongoDB?
• No complex transactions
• If you don’t use them, this is a non-issue
• No joins
• This turns out to not be a big deal generally, because
we’re going to rethink our data modeling
21. Why MongoDB?
Transactions and joins are a huge computational
overhead, even if you don’t use them!
• No complex transactions
• If you don’t use them, this is a non-issue
• No joins
• This turns out to not be a big deal generally, because
we’re going to rethink our data modeling
22. Why MongoDB?
Transactions and joins are a huge computational
overhead, even if you don’t use them!
• No complex transactions
• If you don’t use them, this is a non-issue
• No joins
• This turns out to not be a big deal generally, because
we’re going to rethink our data modeling
23. Thinking About Your Data (RDBMS)
• Look at data, determine logical groupings
• (hope structure never changes)
• Make tables based on groups, link with ID fields
• Break up data on insert, put into appropriate tables
• Use joins on select to re-assemble data
• Create indexes as needed for fast queries
24. Thinking About Your Data (RDBMS)
user_t comment_t
comment_id
user_id
post_t post_id
user_name post_id
comment_body
user_id
post_title
post_body
25. Thinking About Your Data (RDBMS)
This leads to queries such as:
SELECT post_title,post_body,post_id FROM post_t,user_t WHERE
user_t.user_name = “Lorraine” AND post_t.user_id = user_t.user_id LIMIT 1;
SELECT comment_body FROM comment_t WHERE comment_t.post_id = $post_id;
26. Thinking About Your Data (MongoDB)
• Figure out how you will eventually use the data
• Store it that way
• Create indexes as needed for fast queries
27. Thinking About Your Data (MongoDB)
from pymongo import Connection
connection = Connection()
db = connection['blog']
posts = db['posts']
post = {"author": "Lorraine",
"title": "Who on Earth lets Chris Lea Talk on Stage?",
"post": "Seriously. That's just not cool.",
"comments": ["Is he really that bad?", "Yes, he really is."],
"date": datetime.datetime.utcnow()}
posts.insert(post)
28. Thinking About Your Data (MongoDB)
from pymongo import Connection
connection = Connection()
db = connection['blog']
posts = db['posts']
post = posts.find_one({“author”: “Lorraine”})
29. Say Goodbye to Schemas
from pymongo import Connection
connection = Connection()
db = connection['blog']
posts = db['posts']
post = {"author": "Lorraine",
"title": "Who on Earth lets Chris Lea Talk on Stage?",
"post": "Seriously. That's just not cool.",
"comments": ["Is he really that bad?", "Yes, he really is."],
"date": datetime.datetime.utcnow()}
posts.insert(post)
30. Say Goodbye to Schemas
from pymongo import Connection
connection = Connection()
db = connection['blog']
posts = db['posts']
post = {"author": "Lorraine",
"title": "Who on Earth lets Chris Lea Talk on Stage?",
"post": "Seriously. That's just not cool.",
"comments": ["Is he really that bad?", "Yes, he really is."],
"tags": ["fowa", "nosql", "nerds"],
"date": datetime.datetime.utcnow()}
posts.insert(post)
31. Say Goodbye to Schemas
from pymongo import Connection
connection = Connection()
db = connection['blog']
If you want new fields... just start
posts = db['posts'] using them!
post = {"author": "Lorraine",
"title": "Who on Earth lets Chris Lea Talk on Stage?",
"post": "Seriously. That's just not cool.",
"comments": ["Is he really that bad?", "Yes, he really is."],
"tags": ["fowa", "nosql", "nerds"],
"date": datetime.datetime.utcnow()}
posts.insert(post)
32. Enjoy a Wealth of Query Options
from pymongo import Connection
connection = Connection()
db = connection['blog']
posts = db['posts']
posts.find_one({“author”: “Lorraine”})
33. Enjoy a Wealth of Query Options
from pymongo import Connection
connection = Connection()
db = connection['blog']
posts = db['posts']
posts.find({“author”: “Lorraine”}).limit(5)
34. Enjoy a Wealth of Query Options
from pymongo import Connection
connection = Connection()
db = connection['blog']
posts = db['posts']
posts.find({“author”: /^Lor/})
35. Enjoy a Wealth of Query Options
from pymongo import Connection
connection = Connection()
db = connection['blog']
posts = db['posts']
posts.find({“author”: {$not: “Lorraine”} })
36. Enjoy a Massive Performance Jump
• Mileage will vary, but 10x is not uncommon
• For reads and writes
• Writes happen at near disk native speed
• Logging to MongoDB is perfectly acceptable
• Reads for active data near Memcached speeds
37. Enjoy a Massive Performance Jump
Ability to write bad queries is
enormously reduced!
38. Ability to write bad queries is
enormously reduced!
• No joins means need for complex indexes reduced
• Chances of index / query mismatches vastly lower
• Disk I/O much less complex, and therefore much faster
39. Caveats for MongoDB
• Really should use 64bit machines for production
• 32bit has 2G limit per collection (table)
• Happiest with lots of RAM relative to active data
• Under heavy development
• Features / drivers / docs changing rapidly