SlideShare a Scribd company logo
1 of 29
Download to read offline
How I learned to use SQL
             and then learned not to use it
                            Henrik Ingo

                             Froscon
                            2011-08-20




2011-07-26     OSCON 2011                     1
Henrik Ingo


                      open source technology and
                      strategy specialist
                      active in MySQL, Drupal
                      communities
                      current: Senior Performance
                      Architect at Nokia Ovi
                      worked in mobile and LAMP
                      with business management,
                      sales, R&D
                      author of "Open Life: The
                      Philosophy of Open Source"
                      www.openlife.cc
                      henrik.ingo@openlife.cc

2011-07-26    OSCON 2011                            2
1994




2011-07-26   OSCON 2011   3
1994


USSR fell 4 years ago
     Finland yet to win first gold medal in hockey
             Windows 3.0 replacing MS-DOS
               Windows 95 did not yet exist
                  I learn how to write .bat scripts from my dad
                 Word 6.0 replacing WordPerfect 5.1
                Excel 5.0 replacing Lotus
               I had not yet used Internet

2011-07-26                        OSCON 2011                      4
1994



                                                   SQL
                                            Standard Interpreted
C++ & Visual Basic
                                Flexible and expressive command line env

             LAN                          "SQL for secretaries"
      Printer Database                 Good for English speakers
                                     2000: Bad for IDE w IntelliSense

         Client - Server architecture

                 Stored procedures rule
         DBA is king of business logic
2011-07-26                     OSCON 2011                               5
1997




2011-07-26   OSCON 2011   6
1997




2011-07-26   OSCON 2011   7
Learning SQL


NoSQL advocates say:               Henrik says:
    SQL is hard to learn               MS Access easy to learn
    To really scale, you must          Darn, I always got
    de-normalize                       normalization
    Most people don't get              I know, teaching n:n
    normalization right                relations was always fun
    Impedance mismatch                 INSERT INTO t ...
    between oo and sql                 serialize($obj)
    I just need a simple key-          SELECT value FROM t
    value store                        WHERE key=?;


2011-07-26                    OSCON 2011                          8
1997

                                                  WorldWideWeb
                                           Free Software
                                              1998: Open Source

                                  LAMP stack
                                     Where P = Perl, runs +90% of web "apps"
                         Oracle doesn't support Linux
                     PostgreSQL doesn't support Windows
                       MiniSQL has poor performance

             Wish I had a simple data store for my web apps that
             was really fast and scalable and Free Software...



2011-07-26                           OSCON 2011                                9
1997




2011-07-26   OSCON 2011   10
1997


ERROR: Could not connect to MySQL: ERROR 1040: Too many connections




                             "Slashdotted"
                             Web jargon ca 1997.
                             "Your site is down because
                             it isn't web scale."




 2011-07-26                        OSCON 2011                         11
History of MySQL


1985... ISAM key-value store
 - Trivia: Access is also ISAM db

                        Data Warehousing: bulk loads, reporting.
                         - Flexible attitude to errors during insert


 SQL support added (HTML)
                                    ODBC (Excel)
                                    - BI tool #1


             1995.. Released under FOSS-like license


2011-07-26                    OSCON 2011                               12
1997



"Read-mostly"
 - No MVCC
 - Not transactional
                                  Not crash safe

Scales well for 2-3 CPUs
 - This will work well for the next 10 years



                                 Not ANSI SQL

2011-07-26                     OSCON 2011          13
1997


This site is currently offline for nightly backup.
Please come back after 15 minutes.




                       (No online backups)




 2011-07-26                    OSCON 2011            14
1997-2007



 InnoDB and BDB
  - Transactions!                    Replication
                                      - Statement based
                                      - Asynchronous


             SAP partnership
             - 4 CPU servers
             - Support SQL-92 "enterprise" features
             - Oracle acquires InnoDB and BDB



                                Online backup tool
2011-07-26                      OSCON 2011                15
2007




                     Users are not happy!
We want a database that
- does not conform to SQL standard
- has no transactions
- is not crash safe
- impossible to do consistent backups

- but scales to more than 4 cores!


2011-07-26                OSCON 2011    16
You see where I'm going, don't you...




2011-07-26                 OSCON 2011                17
Sorry, that was a cheap shot...




                  ...I just couldn't resist :-)




2011-07-26              OSCON 2011                18
It really started with...




2011-07-26          OSCON 2011           19
Actual questions from Memcache users, ca 2007:




How can I dump all records
from a memcached instance?



                 How can I make
                 memcached
                 highly available?
                                                 Backups?

2011-07-26                      OSCON 2011                    20
Answers from Memcache developers




It's a cache. Please use it
together with a real database!


             Why would you ever
             want to do that?



                    No no no, you're doing it wrong!
2011-07-26               OSCON 2011                21
So clearly there was a market demand...




2011-07-26                  OSCON 2011                 22
Things NoSQL guys do really well


        No SQL (parsing)
        Schemaless = Win! for agile development


                 HA with quorum consistency: R + W > N
                    Transparent sharding


                            Graph databases
                              N:N relationships, what's the big deal?
                              Actually makes sense to give up on SQL!


             Map Reduce
               Bypass ETL, get clean data


                            Implemented in Java or Python (or Erlang)


2011-07-26                              OSCON 2011                      23
Best of both worlds


NoSQL                                    MySQL
    No SQL                                   HandlerSocket
    .                                        Memcache API, NDB API

    Simple key-value store                   BLOB
    .                                        SELECT v FROM ... WHERE k=?

    ...and secondary indexes                 Functional indexes
                                             Virtual columns, etc...

    Quorum consistency                       Synchronous replication
    .                                        Galera, NDB

    Graph databases                          Damn N:N relations!
    Map Reduce against text files            Map Reduce against RDBMS
    Java and Python                          C++ can be done right
    .                                        Drizzle


2011-07-26                          OSCON 2011                             24
Clayton Christensen on Disruptive innovation




2011-07-26                     OSCON 2011                   25
Clayton Christensen on Disruptive innovation




                     First they ignore you
                   Then they laugh at you
                      Then they fight you
                          Then you win


                                            - Gandhi

2011-07-26                     OSCON 2011                   26
It used to be




2011-07-26     OSCON 2011    27
The future is




2011-07-26     OSCON 2011    28
The future is




             All Open Source




2011-07-26          OSCON 2011    29

More Related Content

Similar to Froscon2011: How i learned to use sql and then learned not to use it

Vote NO for MySQL
Vote NO for MySQLVote NO for MySQL
Vote NO for MySQLUlf Wendel
 
A Practitioner's Guide to Successfully Migrate from Oracle to Sybase ASE Part 1
A Practitioner's Guide to Successfully Migrate from Oracle to Sybase ASE Part 1A Practitioner's Guide to Successfully Migrate from Oracle to Sybase ASE Part 1
A Practitioner's Guide to Successfully Migrate from Oracle to Sybase ASE Part 1Dobler Consulting
 
オープンソース開発者がDeNAを選ぶ理由
オープンソース開発者がDeNAを選ぶ理由オープンソース開発者がDeNAを選ぶ理由
オープンソース開発者がDeNAを選ぶ理由Kazuho Oku
 
Thu 1100 duncan_john_color
Thu 1100 duncan_john_colorThu 1100 duncan_john_color
Thu 1100 duncan_john_colorDATAVERSITY
 
Databases and the Cloud
Databases and the CloudDatabases and the Cloud
Databases and the CloudHenrik Ingo
 
Big Data Israel Meetup : Couchbase and Big Data
Big Data Israel Meetup : Couchbase and Big DataBig Data Israel Meetup : Couchbase and Big Data
Big Data Israel Meetup : Couchbase and Big DataTugdual Grall
 
The AMIS Report from Oracle Open World and JavaOne 2011 - Part One
The AMIS Report from Oracle Open World and JavaOne 2011 - Part OneThe AMIS Report from Oracle Open World and JavaOne 2011 - Part One
The AMIS Report from Oracle Open World and JavaOne 2011 - Part OneLucas Jellema
 
Tagging and Folksonomy Schema Design for Scalability and Performance
Tagging and Folksonomy Schema Design for Scalability and PerformanceTagging and Folksonomy Schema Design for Scalability and Performance
Tagging and Folksonomy Schema Design for Scalability and PerformanceEduard Bondarenko
 
Comparison between rdbms and nosql
Comparison between rdbms and nosqlComparison between rdbms and nosql
Comparison between rdbms and nosqlbharati k
 
Expert Session SAP TechEd Madrid 2011
Expert Session SAP TechEd Madrid 2011Expert Session SAP TechEd Madrid 2011
Expert Session SAP TechEd Madrid 2011Ivan Femia
 
Rooted 2011 nosql security
Rooted 2011 nosql securityRooted 2011 nosql security
Rooted 2011 nosql securityJose Palanco
 
NoSQL in MySQL
NoSQL in MySQLNoSQL in MySQL
NoSQL in MySQLUlf Wendel
 
MySQL Document Store for Modern Applications
MySQL Document Store for Modern ApplicationsMySQL Document Store for Modern Applications
MySQL Document Store for Modern ApplicationsOlivier DASINI
 
Keeping Movies Running Amid Thunderstorms!
Keeping Movies Running Amid Thunderstorms!Keeping Movies Running Amid Thunderstorms!
Keeping Movies Running Amid Thunderstorms!Sid Anand
 
Considerations for using NoSQL technology on your next IT project - Akmal Cha...
Considerations for using NoSQL technology on your next IT project - Akmal Cha...Considerations for using NoSQL technology on your next IT project - Akmal Cha...
Considerations for using NoSQL technology on your next IT project - Akmal Cha...BCS Data Management Specialist Group
 
Azure Kubernetes Service - benefits and challenges
Azure Kubernetes Service - benefits and challengesAzure Kubernetes Service - benefits and challenges
Azure Kubernetes Service - benefits and challengesWojciech Barczyński
 
How big data moved the needle from monolithic SQL RDBMS to distributed NoSQL
How big data moved the needle from monolithic SQL RDBMS to distributed NoSQLHow big data moved the needle from monolithic SQL RDBMS to distributed NoSQL
How big data moved the needle from monolithic SQL RDBMS to distributed NoSQLSayyaparaju Sunil
 
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptxODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptxToon Koppelaars
 

Similar to Froscon2011: How i learned to use sql and then learned not to use it (20)

Vote NO for MySQL
Vote NO for MySQLVote NO for MySQL
Vote NO for MySQL
 
A Practitioner's Guide to Successfully Migrate from Oracle to Sybase ASE Part 1
A Practitioner's Guide to Successfully Migrate from Oracle to Sybase ASE Part 1A Practitioner's Guide to Successfully Migrate from Oracle to Sybase ASE Part 1
A Practitioner's Guide to Successfully Migrate from Oracle to Sybase ASE Part 1
 
オープンソース開発者がDeNAを選ぶ理由
オープンソース開発者がDeNAを選ぶ理由オープンソース開発者がDeNAを選ぶ理由
オープンソース開発者がDeNAを選ぶ理由
 
Thu 1100 duncan_john_color
Thu 1100 duncan_john_colorThu 1100 duncan_john_color
Thu 1100 duncan_john_color
 
Arrays in database systems, the next frontier?
Arrays in database systems, the next frontier?Arrays in database systems, the next frontier?
Arrays in database systems, the next frontier?
 
Databases and the Cloud
Databases and the CloudDatabases and the Cloud
Databases and the Cloud
 
Big Data Israel Meetup : Couchbase and Big Data
Big Data Israel Meetup : Couchbase and Big DataBig Data Israel Meetup : Couchbase and Big Data
Big Data Israel Meetup : Couchbase and Big Data
 
The AMIS Report from Oracle Open World and JavaOne 2011 - Part One
The AMIS Report from Oracle Open World and JavaOne 2011 - Part OneThe AMIS Report from Oracle Open World and JavaOne 2011 - Part One
The AMIS Report from Oracle Open World and JavaOne 2011 - Part One
 
Tagging and Folksonomy Schema Design for Scalability and Performance
Tagging and Folksonomy Schema Design for Scalability and PerformanceTagging and Folksonomy Schema Design for Scalability and Performance
Tagging and Folksonomy Schema Design for Scalability and Performance
 
Comparison between rdbms and nosql
Comparison between rdbms and nosqlComparison between rdbms and nosql
Comparison between rdbms and nosql
 
Expert Session SAP TechEd Madrid 2011
Expert Session SAP TechEd Madrid 2011Expert Session SAP TechEd Madrid 2011
Expert Session SAP TechEd Madrid 2011
 
Rooted 2011 nosql security
Rooted 2011 nosql securityRooted 2011 nosql security
Rooted 2011 nosql security
 
NoSQL in MySQL
NoSQL in MySQLNoSQL in MySQL
NoSQL in MySQL
 
MySQL Document Store for Modern Applications
MySQL Document Store for Modern ApplicationsMySQL Document Store for Modern Applications
MySQL Document Store for Modern Applications
 
Keeping Movies Running Amid Thunderstorms!
Keeping Movies Running Amid Thunderstorms!Keeping Movies Running Amid Thunderstorms!
Keeping Movies Running Amid Thunderstorms!
 
Considerations for using NoSQL technology on your next IT project - Akmal Cha...
Considerations for using NoSQL technology on your next IT project - Akmal Cha...Considerations for using NoSQL technology on your next IT project - Akmal Cha...
Considerations for using NoSQL technology on your next IT project - Akmal Cha...
 
Azure Kubernetes Service - benefits and challenges
Azure Kubernetes Service - benefits and challengesAzure Kubernetes Service - benefits and challenges
Azure Kubernetes Service - benefits and challenges
 
How big data moved the needle from monolithic SQL RDBMS to distributed NoSQL
How big data moved the needle from monolithic SQL RDBMS to distributed NoSQLHow big data moved the needle from monolithic SQL RDBMS to distributed NoSQL
How big data moved the needle from monolithic SQL RDBMS to distributed NoSQL
 
eZ Publish nextgen
eZ Publish nextgeneZ Publish nextgen
eZ Publish nextgen
 
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptxODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
 

More from Henrik Ingo

Introduction to new high performance storage engines in mongodb 3.0
Introduction to new high performance storage engines in mongodb 3.0Introduction to new high performance storage engines in mongodb 3.0
Introduction to new high performance storage engines in mongodb 3.0Henrik Ingo
 
Meteor - The next generation software stack
Meteor - The next generation software stackMeteor - The next generation software stack
Meteor - The next generation software stackHenrik Ingo
 
MongoDB for Oracle Experts - OUGF Harmony 2014
MongoDB for Oracle Experts - OUGF Harmony 2014 MongoDB for Oracle Experts - OUGF Harmony 2014
MongoDB for Oracle Experts - OUGF Harmony 2014 Henrik Ingo
 
Building Your First MongoDB App
Building Your First MongoDB AppBuilding Your First MongoDB App
Building Your First MongoDB AppHenrik Ingo
 
Analytics with MongoDB Aggregation Framework and Hadoop Connector
Analytics with MongoDB Aggregation Framework and Hadoop ConnectorAnalytics with MongoDB Aggregation Framework and Hadoop Connector
Analytics with MongoDB Aggregation Framework and Hadoop ConnectorHenrik Ingo
 
Whats new in mongoDB 2.4 at Copenhagen user group 2013-06-19
Whats new in mongoDB 2.4 at Copenhagen user group 2013-06-19Whats new in mongoDB 2.4 at Copenhagen user group 2013-06-19
Whats new in mongoDB 2.4 at Copenhagen user group 2013-06-19Henrik Ingo
 
Failover or not to failover
Failover or not to failoverFailover or not to failover
Failover or not to failoverHenrik Ingo
 
Spatial functions in MySQL 5.6, MariaDB 5.5, PostGIS 2.0 and others
Spatial functions in  MySQL 5.6, MariaDB 5.5, PostGIS 2.0 and othersSpatial functions in  MySQL 5.6, MariaDB 5.5, PostGIS 2.0 and others
Spatial functions in MySQL 5.6, MariaDB 5.5, PostGIS 2.0 and othersHenrik Ingo
 
Introducing Xtrabackup Manager
Introducing Xtrabackup ManagerIntroducing Xtrabackup Manager
Introducing Xtrabackup ManagerHenrik Ingo
 
Using and Benchmarking Galera in different architectures (PLUK 2012)
Using and Benchmarking Galera in different architectures (PLUK 2012)Using and Benchmarking Galera in different architectures (PLUK 2012)
Using and Benchmarking Galera in different architectures (PLUK 2012)Henrik Ingo
 
Froscon 2012 how big corporations play the open source game
Froscon 2012   how big corporations play the open source gameFroscon 2012   how big corporations play the open source game
Froscon 2012 how big corporations play the open source gameHenrik Ingo
 
Introduction to Galera
Introduction to GaleraIntroduction to Galera
Introduction to GaleraHenrik Ingo
 
Fixed in drizzle
Fixed in drizzleFixed in drizzle
Fixed in drizzleHenrik Ingo
 
Choosing a MySQL High Availability solution - Percona Live UK 2011
Choosing a MySQL High Availability solution - Percona Live UK 2011Choosing a MySQL High Availability solution - Percona Live UK 2011
Choosing a MySQL High Availability solution - Percona Live UK 2011Henrik Ingo
 
How to grow your open source project 10x and revenues 5x OSCON2011
How to grow your open source project 10x and revenues 5x OSCON2011How to grow your open source project 10x and revenues 5x OSCON2011
How to grow your open source project 10x and revenues 5x OSCON2011Henrik Ingo
 

More from Henrik Ingo (15)

Introduction to new high performance storage engines in mongodb 3.0
Introduction to new high performance storage engines in mongodb 3.0Introduction to new high performance storage engines in mongodb 3.0
Introduction to new high performance storage engines in mongodb 3.0
 
Meteor - The next generation software stack
Meteor - The next generation software stackMeteor - The next generation software stack
Meteor - The next generation software stack
 
MongoDB for Oracle Experts - OUGF Harmony 2014
MongoDB for Oracle Experts - OUGF Harmony 2014 MongoDB for Oracle Experts - OUGF Harmony 2014
MongoDB for Oracle Experts - OUGF Harmony 2014
 
Building Your First MongoDB App
Building Your First MongoDB AppBuilding Your First MongoDB App
Building Your First MongoDB App
 
Analytics with MongoDB Aggregation Framework and Hadoop Connector
Analytics with MongoDB Aggregation Framework and Hadoop ConnectorAnalytics with MongoDB Aggregation Framework and Hadoop Connector
Analytics with MongoDB Aggregation Framework and Hadoop Connector
 
Whats new in mongoDB 2.4 at Copenhagen user group 2013-06-19
Whats new in mongoDB 2.4 at Copenhagen user group 2013-06-19Whats new in mongoDB 2.4 at Copenhagen user group 2013-06-19
Whats new in mongoDB 2.4 at Copenhagen user group 2013-06-19
 
Failover or not to failover
Failover or not to failoverFailover or not to failover
Failover or not to failover
 
Spatial functions in MySQL 5.6, MariaDB 5.5, PostGIS 2.0 and others
Spatial functions in  MySQL 5.6, MariaDB 5.5, PostGIS 2.0 and othersSpatial functions in  MySQL 5.6, MariaDB 5.5, PostGIS 2.0 and others
Spatial functions in MySQL 5.6, MariaDB 5.5, PostGIS 2.0 and others
 
Introducing Xtrabackup Manager
Introducing Xtrabackup ManagerIntroducing Xtrabackup Manager
Introducing Xtrabackup Manager
 
Using and Benchmarking Galera in different architectures (PLUK 2012)
Using and Benchmarking Galera in different architectures (PLUK 2012)Using and Benchmarking Galera in different architectures (PLUK 2012)
Using and Benchmarking Galera in different architectures (PLUK 2012)
 
Froscon 2012 how big corporations play the open source game
Froscon 2012   how big corporations play the open source gameFroscon 2012   how big corporations play the open source game
Froscon 2012 how big corporations play the open source game
 
Introduction to Galera
Introduction to GaleraIntroduction to Galera
Introduction to Galera
 
Fixed in drizzle
Fixed in drizzleFixed in drizzle
Fixed in drizzle
 
Choosing a MySQL High Availability solution - Percona Live UK 2011
Choosing a MySQL High Availability solution - Percona Live UK 2011Choosing a MySQL High Availability solution - Percona Live UK 2011
Choosing a MySQL High Availability solution - Percona Live UK 2011
 
How to grow your open source project 10x and revenues 5x OSCON2011
How to grow your open source project 10x and revenues 5x OSCON2011How to grow your open source project 10x and revenues 5x OSCON2011
How to grow your open source project 10x and revenues 5x OSCON2011
 

Recently uploaded

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Recently uploaded (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Froscon2011: How i learned to use sql and then learned not to use it

  • 1. How I learned to use SQL and then learned not to use it Henrik Ingo Froscon 2011-08-20 2011-07-26 OSCON 2011 1
  • 2. Henrik Ingo open source technology and strategy specialist active in MySQL, Drupal communities current: Senior Performance Architect at Nokia Ovi worked in mobile and LAMP with business management, sales, R&D author of "Open Life: The Philosophy of Open Source" www.openlife.cc henrik.ingo@openlife.cc 2011-07-26 OSCON 2011 2
  • 3. 1994 2011-07-26 OSCON 2011 3
  • 4. 1994 USSR fell 4 years ago Finland yet to win first gold medal in hockey Windows 3.0 replacing MS-DOS Windows 95 did not yet exist I learn how to write .bat scripts from my dad Word 6.0 replacing WordPerfect 5.1 Excel 5.0 replacing Lotus I had not yet used Internet 2011-07-26 OSCON 2011 4
  • 5. 1994 SQL Standard Interpreted C++ & Visual Basic Flexible and expressive command line env LAN "SQL for secretaries" Printer Database Good for English speakers 2000: Bad for IDE w IntelliSense Client - Server architecture Stored procedures rule DBA is king of business logic 2011-07-26 OSCON 2011 5
  • 6. 1997 2011-07-26 OSCON 2011 6
  • 7. 1997 2011-07-26 OSCON 2011 7
  • 8. Learning SQL NoSQL advocates say: Henrik says: SQL is hard to learn MS Access easy to learn To really scale, you must Darn, I always got de-normalize normalization Most people don't get I know, teaching n:n normalization right relations was always fun Impedance mismatch INSERT INTO t ... between oo and sql serialize($obj) I just need a simple key- SELECT value FROM t value store WHERE key=?; 2011-07-26 OSCON 2011 8
  • 9. 1997 WorldWideWeb Free Software 1998: Open Source LAMP stack Where P = Perl, runs +90% of web "apps" Oracle doesn't support Linux PostgreSQL doesn't support Windows MiniSQL has poor performance Wish I had a simple data store for my web apps that was really fast and scalable and Free Software... 2011-07-26 OSCON 2011 9
  • 10. 1997 2011-07-26 OSCON 2011 10
  • 11. 1997 ERROR: Could not connect to MySQL: ERROR 1040: Too many connections "Slashdotted" Web jargon ca 1997. "Your site is down because it isn't web scale." 2011-07-26 OSCON 2011 11
  • 12. History of MySQL 1985... ISAM key-value store - Trivia: Access is also ISAM db Data Warehousing: bulk loads, reporting. - Flexible attitude to errors during insert SQL support added (HTML) ODBC (Excel) - BI tool #1 1995.. Released under FOSS-like license 2011-07-26 OSCON 2011 12
  • 13. 1997 "Read-mostly" - No MVCC - Not transactional Not crash safe Scales well for 2-3 CPUs - This will work well for the next 10 years Not ANSI SQL 2011-07-26 OSCON 2011 13
  • 14. 1997 This site is currently offline for nightly backup. Please come back after 15 minutes. (No online backups) 2011-07-26 OSCON 2011 14
  • 15. 1997-2007 InnoDB and BDB - Transactions! Replication - Statement based - Asynchronous SAP partnership - 4 CPU servers - Support SQL-92 "enterprise" features - Oracle acquires InnoDB and BDB Online backup tool 2011-07-26 OSCON 2011 15
  • 16. 2007 Users are not happy! We want a database that - does not conform to SQL standard - has no transactions - is not crash safe - impossible to do consistent backups - but scales to more than 4 cores! 2011-07-26 OSCON 2011 16
  • 17. You see where I'm going, don't you... 2011-07-26 OSCON 2011 17
  • 18. Sorry, that was a cheap shot... ...I just couldn't resist :-) 2011-07-26 OSCON 2011 18
  • 19. It really started with... 2011-07-26 OSCON 2011 19
  • 20. Actual questions from Memcache users, ca 2007: How can I dump all records from a memcached instance? How can I make memcached highly available? Backups? 2011-07-26 OSCON 2011 20
  • 21. Answers from Memcache developers It's a cache. Please use it together with a real database! Why would you ever want to do that? No no no, you're doing it wrong! 2011-07-26 OSCON 2011 21
  • 22. So clearly there was a market demand... 2011-07-26 OSCON 2011 22
  • 23. Things NoSQL guys do really well No SQL (parsing) Schemaless = Win! for agile development HA with quorum consistency: R + W > N Transparent sharding Graph databases N:N relationships, what's the big deal? Actually makes sense to give up on SQL! Map Reduce Bypass ETL, get clean data Implemented in Java or Python (or Erlang) 2011-07-26 OSCON 2011 23
  • 24. Best of both worlds NoSQL MySQL No SQL HandlerSocket . Memcache API, NDB API Simple key-value store BLOB . SELECT v FROM ... WHERE k=? ...and secondary indexes Functional indexes Virtual columns, etc... Quorum consistency Synchronous replication . Galera, NDB Graph databases Damn N:N relations! Map Reduce against text files Map Reduce against RDBMS Java and Python C++ can be done right . Drizzle 2011-07-26 OSCON 2011 24
  • 25. Clayton Christensen on Disruptive innovation 2011-07-26 OSCON 2011 25
  • 26. Clayton Christensen on Disruptive innovation First they ignore you Then they laugh at you Then they fight you Then you win - Gandhi 2011-07-26 OSCON 2011 26
  • 27. It used to be 2011-07-26 OSCON 2011 27
  • 28. The future is 2011-07-26 OSCON 2011 28
  • 29. The future is All Open Source 2011-07-26 OSCON 2011 29