SlideShare a Scribd company logo
1 of 69
Download to read offline
A GUIDE TO THE
POST RELATIONAL
  REVOLUTION


      @iconara
speakerdeck.com/u/iconara
          (real time!)
Theo / @iconara
Chief Architect at
Co-organizer of the local Ruby, Scala and JavaScript user groups
        More rep on StackOverflow than both Jeff & Joel
THE WORLD
 ISN’T FLAT
OUT IS THE
 NEW UP
  when scaling up you’re
constrained by Moore’s Law
DISTRIBUTED
  SYSTEMS ARE
ABOUT TRADEOFFS
WHO NEEDS
ACID, ANYWAY?
    banks, perhaps
JOINS ARE
      A CRUTCH
 why split up your data, if all you’re going
to do is assemble it over and over again?
OBJECTS DON’T
 FIT IN TABLES
can you say “impedance mismatch”?
40 YEARS IS
       A LONG TIME
you didn’t have 256 gigabytes of RAM in 1970
THE RELATIONAL
 MODEL ISN’T A
GOLDEN HAMMER
   the existence of object relational
  mappers should be proof enough
WELCOME TO THE
POST RELATIONAL
  REVOLUTION
POST RELATIONAL
   STORAGE
KEY/VALUE
 STORES
the simplest possible database,
     not exactly a new idea
OPAQUE

      KEY       VALUE




 Riak, Voldemort, LevelDB,
Tokyo Cabinet, Berkeley DB
STRUCTURED
KEY/VALUE STORES
  sometimes you need just a little bit more
SORTED             + TIMESTAMP


                 COLUMN KEY         COLUMN KEY
 ROW KEY
                   VALUE              VALUE




    the Bigtable model, “column oriented”,
“sparse tables” found in Cassandra and HBase
LIST OR SET



KEY         VALUE           VALUE         VALUE


       SORTED SET OR HASH


             KEY            KEY           KEY
KEY
            VALUE           VALUE         VALUE

           INCREMENT APPEND, SLICE, CAS
                    ,


KEY       VALUE


“datastructure server”, e.g. Redis
DOCUMENT
DATABASES
object databases, but for hipsters
{
                 "firstName": "John",
                 "lastName": "Smith",
                 "age":         25,
                 "address":
                 {
                     "streetAddress": "21 2nd Street",
                     "city":             "New York",
                     "state":            "NY",
                     "postalCode":       "10021"
                 },
                 "phoneNumber":
                 [
                     {
                        "type":     "home",
                        "number": "212 555-1234"
                     },
                     {
                        "type":     "cell",
                        "number": "646 555-4567"
                     }
                 ]
             }



 complex objects with lists, numbers, strings
  secondary indexes* and partial updates,
MongoDB, CouchDB, RavenDB, Lotus Notes

                           * subject to availability
GRAPH
DATABASES
  relational, for real
NAME + PROPERTIES

               NODE
                            NODE

                                          NODE
     NODE


              NODE          NAME




traversal algorithms, extreme data complexity,
        Neo4j, AllegroGraph, FlockDB
DIVERSITY
 I haven’t even mentioned search & indexing systems
like Solr and Elastic Search, or distributed filesystems
SOMETIMES TABLES
 ARE GREAT, TOO
but mostly when you rely heavily on GROUP BY,
    SUM, AVG, etc. and can’t precompute
POST RELATIONAL
   SCALING
CAP
CONSISTENCY
    AVAILABILITY
PARTITION TOLERANCE
      (choose any two)
OK?
PARTITION
TOLERANCE ISN’T
   OPTIONAL
CONSISTENCY
VS. AVAILABILITY
(but in reality, it’s not even that simple)
CONSISTENCY
you can always read what you just wrote,
   but keys may become unavailable
AVAILABILITY
      you can always read and write,
but you may not always get the latest value
NOT EITHER OR
 most databases let you choose
  on a query-by-query basis
SHARDING
scaling writes in a consistent system
DIVIDED BY DA A SIZE
                                                      T

                      KEYSPACE

       SHARD          SHARD           SHARD
A                                                       Z
       REPLICA        REPLICA         REPLICA

       REPLICA        REPLICA         REPLICA

       REPLICA        REPLICA         REPLICA




    divide the keyspace into shards, or regions
         (and store each one redundantly)
KEYSPACE

        SHARD     SHARD      SHARD     SHARD
A                                                Z
        REPLICA   REPLICA    REPLICA   REPLICA

        REPLICA   REPLICA    REPLICA   REPLICA

        REPLICA   REPLICA    REPLICA   REPLICA


                              SPLIT

        split a shard when it grows too big,
    move one of the new shards onto a new node
KEYSPACE

      SHARD       SHARD      SHARD       SHARD
A                                                    Z
      REPLICA     REPLICA    REPLICA     REPLICA

      REPLICA     REPLICA    REPLICA     REPLICA

      REPLICA     REPLICA    REPLICA     REPLICA




in reality there’s chunks, tablets or “virtual shards”
     that are distributed over physical shards
HBASE, MONGODB
    sharding is easy in theory, hard in practice,
lots data needs to be moved when adding nodes
CONSISTENT
   HASHING
scaling writes in an available system
2n                        0



                   NODE

hash(key)
                                      replication




                               KEYSPACE
                                                        NODE




                NODE



                                     NODE


  each node is responsible for a range of the keyspace,
 keys are hashed and mapped to the first following node,
       (optionally) replicated to subsequent nodes
2n                0
                                             NEW NODE

         NODE


                                      NODE




                     KEYSPACE
                                        NODE




      NODE



                           NODE


when a new node is added, only part of
  the keyspace needs to be moved
2n                0



                  NODE


                                               NODE




                              KEYSPACE
                                                 NODE




               NODE



                                    NODE


 in practice, “virtual nodes” are evenly distributed over
the keyspace, and then mapped onto physical nodes
CASSANDRA, RIAK
      perfect balance, in theory,
 but rings may still need rebalancing
GOSSIP HINTED HANDOFF
      ,               ,
   LOG STRUCTURED
STORAGE, COMPACTION,
 VECTOR CLOCKS, READ
  REPAIR, JOURNALING,
  QUORUMS, EVENTUAL
CONSISTENCY, DYNAMO,
   MAP/REDUCE, 2PC
       a few of the things I haven’t mentioned, look them up
LESSONS LEARNED
EVERYTHING THEY
almost




        TAUGHT YOU
     ABOUT DATABASES
       AT UNIVERSITY
         IS WRONG
THINK ABOUT YOUR
  QUERIES FIRST
 don’t optimize for insertion, denormalize heavily,
           disk is cheap, this ain’t 1970
GIVE A LOT OF
THOUGHT TO YOUR
  PRIMARY KEYS
  range queries over cleverly designed
   primary keys can be very powerful,
 good keys required for efficient sharding
M04L7NOC5NQS
M04L7O05MIU2
M04NX42YFUCR
M04NYR7VWKJC
M04NZA8MJOOA
M04NZB88CT14
M04NZPOCE8DM
M04NZQ9G2T0S
M04NZQE7E5VX
M04NZSK4V3JN
M04NZTRG661R
M04NZTSUITJ7
M04NZUAILUS5
M04NZUG4DTXN
M04NZWB9VV0C
M04NZWW52T8N
M04NZX2JEVO9
M04NZX7WD77W
M04NZXGOLDEX
M04NZXKNQWB3
M04NZXLGJ3M6
M04NZY7GO39G
M04NZZ2SQF1I
M04O013HN9L9
M04O014DASE6
M04O02PE8AD3
M04O02PGJBR1
M04O03UPTRWG
M04O04833ZTL
M04O04GH21JF
M04O04JQ8B57
M04O04UHK3U4
M04O056QBNBH
M04O05E8XO8N
M04O069O8CDK
M04O06MG47WK
M04O07BHELVD
M04O07F30WYX
M04O0B39DGEA
M04NZW B9VV0C
  timestamp
   2012-02-28 23:59:56 UTC
                             random number
                             681 731 004
B9VV0C M04NZW
random number
         681 731 004
                       timestamp
                       2012-02-28 23:59:56 UTC
CONSISTENCY
IS OVERRATED
 when you need it you need it,
 but most of the time you don’t
DELETING DATA
     IS NOT TRIVIAL
sometimes delete operations can be more costly
 than inserts, design your cleaning process early
REDIS
 MONGODB
CASSANDRA
 our current toolbox
REDIS
swiss army knife, we use it for “virtual memory”,
        counters and even messaging
REDIS
not distributed (yet), no automatic failover
MONGODB
   a very good replacement for MySQL,
replication and automatic failover is fantastic
MONGODB
global write lock kills performance, easily fragmented,
   sharding is complex and (has been) very buggy
MONGODB
we use it for precomputing and storing
    metrics for our reporting app
MONGODB
 we’re currently pushing around 5K updates/s over three
replica sets, each update incrementing up to 20 numbers
CASSANDRA
low level building blocks, no single point of failure,
     great horizontal scalability, TTL on values
CASSANDRA
we use it to store data about website visits,
 indexing it to support complex queries
CASSANDRA
 millions of rows, some with millions of
columns, adding ~1K new every second
one million writes per second
LEARN SOMETHING
   NEW TODAY
   nosql.mypopescu.com
     highscalability.com
      nosqltapes.com
KTHXBAI
    twitter.com/iconara
speakerdeck.com/u/iconara
 architecturalatrocities.com
        burtcorp.com

More Related Content

Similar to A Guide to the Post Relational Revolution

Cassandra talk @JUG Lausanne, 2012.06.14
Cassandra talk @JUG Lausanne, 2012.06.14Cassandra talk @JUG Lausanne, 2012.06.14
Cassandra talk @JUG Lausanne, 2012.06.14Benoit Perroud
 
Spring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_dataSpring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_dataRoger Xia
 
第17回Cassandra勉強会: MyCassandra
第17回Cassandra勉強会: MyCassandra第17回Cassandra勉強会: MyCassandra
第17回Cassandra勉強会: MyCassandraShun Nakamura
 
Cassandra Overview
Cassandra OverviewCassandra Overview
Cassandra Overviewbtoddb
 
NoSQL, SQL, NewSQL - methods of structuring data.
NoSQL, SQL, NewSQL - methods of structuring data.NoSQL, SQL, NewSQL - methods of structuring data.
NoSQL, SQL, NewSQL - methods of structuring data.Tony Rogerson
 
201301 - Panorama NoSQL
201301 - Panorama NoSQL201301 - Panorama NoSQL
201301 - Panorama NoSQLlyonjug
 
Rise of the scientific database
Rise of the scientific databaseRise of the scientific database
Rise of the scientific databaseJohn De Goes
 
Cassandra for Sysadmins
Cassandra for SysadminsCassandra for Sysadmins
Cassandra for SysadminsNathan Milford
 
Apache Cassandra @Geneva JUG 2013.02.26
Apache Cassandra @Geneva JUG 2013.02.26Apache Cassandra @Geneva JUG 2013.02.26
Apache Cassandra @Geneva JUG 2013.02.26Benoit Perroud
 
Managing Cassandra at Scale by Al Tobey
Managing Cassandra at Scale by Al TobeyManaging Cassandra at Scale by Al Tobey
Managing Cassandra at Scale by Al TobeyDataStax Academy
 
Java one2011 brisk-and_high_order_bits_from_cassandra_and_hadoop
Java one2011 brisk-and_high_order_bits_from_cassandra_and_hadoopJava one2011 brisk-and_high_order_bits_from_cassandra_and_hadoop
Java one2011 brisk-and_high_order_bits_from_cassandra_and_hadoopsrisatish ambati
 
TriHUG January 2012 Talk by Chris Shain
TriHUG January 2012 Talk by Chris ShainTriHUG January 2012 Talk by Chris Shain
TriHUG January 2012 Talk by Chris Shaintrihug
 
NoSQL Intro with cassandra
NoSQL Intro with cassandraNoSQL Intro with cassandra
NoSQL Intro with cassandraBrian Enochson
 
20140614 introduction to spark-ben white
20140614 introduction to spark-ben white20140614 introduction to spark-ben white
20140614 introduction to spark-ben whiteData Con LA
 
Intro to Neo4j presentation
Intro to Neo4j presentationIntro to Neo4j presentation
Intro to Neo4j presentationjexp
 
MyCassandra (Full English Version)
MyCassandra (Full English Version)MyCassandra (Full English Version)
MyCassandra (Full English Version)Shun Nakamura
 

Similar to A Guide to the Post Relational Revolution (20)

Cassandra talk @JUG Lausanne, 2012.06.14
Cassandra talk @JUG Lausanne, 2012.06.14Cassandra talk @JUG Lausanne, 2012.06.14
Cassandra talk @JUG Lausanne, 2012.06.14
 
Spring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_dataSpring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_data
 
第17回Cassandra勉強会: MyCassandra
第17回Cassandra勉強会: MyCassandra第17回Cassandra勉強会: MyCassandra
第17回Cassandra勉強会: MyCassandra
 
Cassandra Overview
Cassandra OverviewCassandra Overview
Cassandra Overview
 
NoSQL, SQL, NewSQL - methods of structuring data.
NoSQL, SQL, NewSQL - methods of structuring data.NoSQL, SQL, NewSQL - methods of structuring data.
NoSQL, SQL, NewSQL - methods of structuring data.
 
Neo4 jv2 english
Neo4 jv2 englishNeo4 jv2 english
Neo4 jv2 english
 
201301 - Panorama NoSQL
201301 - Panorama NoSQL201301 - Panorama NoSQL
201301 - Panorama NoSQL
 
Rise of the scientific database
Rise of the scientific databaseRise of the scientific database
Rise of the scientific database
 
Cassandra for Sysadmins
Cassandra for SysadminsCassandra for Sysadmins
Cassandra for Sysadmins
 
Apache Cassandra @Geneva JUG 2013.02.26
Apache Cassandra @Geneva JUG 2013.02.26Apache Cassandra @Geneva JUG 2013.02.26
Apache Cassandra @Geneva JUG 2013.02.26
 
Managing Cassandra at Scale by Al Tobey
Managing Cassandra at Scale by Al TobeyManaging Cassandra at Scale by Al Tobey
Managing Cassandra at Scale by Al Tobey
 
Java one2011 brisk-and_high_order_bits_from_cassandra_and_hadoop
Java one2011 brisk-and_high_order_bits_from_cassandra_and_hadoopJava one2011 brisk-and_high_order_bits_from_cassandra_and_hadoop
Java one2011 brisk-and_high_order_bits_from_cassandra_and_hadoop
 
TriHUG January 2012 Talk by Chris Shain
TriHUG January 2012 Talk by Chris ShainTriHUG January 2012 Talk by Chris Shain
TriHUG January 2012 Talk by Chris Shain
 
NoSQL Intro with cassandra
NoSQL Intro with cassandraNoSQL Intro with cassandra
NoSQL Intro with cassandra
 
20140614 introduction to spark-ben white
20140614 introduction to spark-ben white20140614 introduction to spark-ben white
20140614 introduction to spark-ben white
 
Intro to Neo4j presentation
Intro to Neo4j presentationIntro to Neo4j presentation
Intro to Neo4j presentation
 
MyCassandra (Full English Version)
MyCassandra (Full English Version)MyCassandra (Full English Version)
MyCassandra (Full English Version)
 
NoSQL
NoSQLNoSQL
NoSQL
 
NoSQL Smackdown!
NoSQL Smackdown!NoSQL Smackdown!
NoSQL Smackdown!
 
NoSQL @ Qbranch -2010-04-15
NoSQL @ Qbranch -2010-04-15NoSQL @ Qbranch -2010-04-15
NoSQL @ Qbranch -2010-04-15
 

More from Theo Hultberg

AWS Cost Optimization
AWS Cost OptimizationAWS Cost Optimization
AWS Cost OptimizationTheo Hultberg
 
Cassandra for all the Things
Cassandra for all the ThingsCassandra for all the Things
Cassandra for all the ThingsTheo Hultberg
 
Building a CQL driver
Building a CQL driverBuilding a CQL driver
Building a CQL driverTheo Hultberg
 
Chasing the elephant
Chasing the elephantChasing the elephant
Chasing the elephantTheo Hultberg
 
Learning to build distributed systems the hard way
Learning to build distributed systems the hard wayLearning to build distributed systems the hard way
Learning to build distributed systems the hard wayTheo Hultberg
 
Learning to build distributed systems the hard way
Learning to build distributed systems the hard wayLearning to build distributed systems the hard way
Learning to build distributed systems the hard wayTheo Hultberg
 
Learning to Build Distributed Systems the Hard Way
Learning to Build Distributed Systems the Hard WayLearning to Build Distributed Systems the Hard Way
Learning to Build Distributed Systems the Hard WayTheo Hultberg
 
Concurrency and Distributed Systems Using JRuby
Concurrency and Distributed Systems Using JRubyConcurrency and Distributed Systems Using JRuby
Concurrency and Distributed Systems Using JRubyTheo Hultberg
 
Shortcuts around the mistakes I've made scaling MongoDB
Shortcuts around the mistakes I've made scaling MongoDB Shortcuts around the mistakes I've made scaling MongoDB
Shortcuts around the mistakes I've made scaling MongoDB Theo Hultberg
 
Standing on the shoulders of giants with JRuby
Standing on the shoulders of giants with JRubyStanding on the shoulders of giants with JRuby
Standing on the shoulders of giants with JRubyTheo Hultberg
 

More from Theo Hultberg (10)

AWS Cost Optimization
AWS Cost OptimizationAWS Cost Optimization
AWS Cost Optimization
 
Cassandra for all the Things
Cassandra for all the ThingsCassandra for all the Things
Cassandra for all the Things
 
Building a CQL driver
Building a CQL driverBuilding a CQL driver
Building a CQL driver
 
Chasing the elephant
Chasing the elephantChasing the elephant
Chasing the elephant
 
Learning to build distributed systems the hard way
Learning to build distributed systems the hard wayLearning to build distributed systems the hard way
Learning to build distributed systems the hard way
 
Learning to build distributed systems the hard way
Learning to build distributed systems the hard wayLearning to build distributed systems the hard way
Learning to build distributed systems the hard way
 
Learning to Build Distributed Systems the Hard Way
Learning to Build Distributed Systems the Hard WayLearning to Build Distributed Systems the Hard Way
Learning to Build Distributed Systems the Hard Way
 
Concurrency and Distributed Systems Using JRuby
Concurrency and Distributed Systems Using JRubyConcurrency and Distributed Systems Using JRuby
Concurrency and Distributed Systems Using JRuby
 
Shortcuts around the mistakes I've made scaling MongoDB
Shortcuts around the mistakes I've made scaling MongoDB Shortcuts around the mistakes I've made scaling MongoDB
Shortcuts around the mistakes I've made scaling MongoDB
 
Standing on the shoulders of giants with JRuby
Standing on the shoulders of giants with JRubyStanding on the shoulders of giants with JRuby
Standing on the shoulders of giants with JRuby
 

Recently uploaded

(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
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
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 

Recently uploaded (20)

(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
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
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 

A Guide to the Post Relational Revolution