SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
rev 1.1




                     Distributed architecture
                   with a Multi-Master approach

                            Available in version 1.0
                               (planned for December 2011)
www.orientechnologies.com       Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 1 of 41
Where is the previous
                   OrientDB
                       Master/Slave
                            architecture?

www.orientechnologies.com    Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 2 of 41
www.orientechnologies.com   Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 3 of 41
After first tests we decided to
             throw away the old Master-Slave
               architecture because it was
            against the OrientDB philosophy:

                            doesn't scale
                                              and

       it's hard to configure properly
www.orientechnologies.com   Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 4 of 41
So what's next?
  We've re-designed the entire distributed
      architecture to get it working as


                            Multi-Master*               *http://en.wikipedia.org/wiki/Multi-master_replication



                    to release in the version 1.0
                          (december 2011)
www.orientechnologies.com     Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 5 of 41
In the Multi-Master architecture

 any node can read/write to the database

                            this scale up horizontly

               adding nodes is straightforward

                                         Say wow!

www.orientechnologies.com       Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 6 of 41
www.orientechnologies.com   Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 7 of 41
...but

                            you have to fight
                                  with

                                      conflicts
www.orientechnologies.com   Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 8 of 41
Fortunately we found some
    smart ways to resolve conflicts without
                  falling in a



                     Blood Bath

www.orientechnologies.com   Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 9 of 41
The actors
                            Only 1 per Leader per cluster, checks other nodes and
    Leader Node             notify changes to other Peer Nodes. Can be any server
                            node in the cluster, usually the first to start
                            Any server node in the cluster. Has a permanent
      Peer Node             connection to the Leader Node
                            Clients are connected to Server Nodes no matter if Leader
          Client
                            or Peer


         Database           Database, where data are stored

                            Synchronous mode replication. Server node propagates
                            changes waiting for the response from the remote server,
                            then sends the ACK to the client
                            Asynchronous mode replication. Server node propagates
                            changes and sends the ACK to the client without waiting
                            for the response from the remote server

www.orientechnologies.com        Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 10 of 41
How the cluster
                 of nodes is
                 composed
                     and
                 managed?
www.orientechnologies.com   Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 11 of 41
Cluster auto-discovering
     At start up each Server Node sends a IP Multicast message in broadcast to
    discover if any Leader Node is available to join the cluster. If available, the
 Leader Node will connect to it and it becomes a Peer Node, otherwise it becomes
                                 the Leader node.



                                                 Server #1
                                                      (Leader)               DBDB
                                                                            DBDB
                                                                           DBDB




                            Server #2
                              (Peer)


                               DBDB
                              DBDB
                             DBDB




www.orientechnologies.com         Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 12 of 41
One Leader Multiple Peers
   The first node to start is always the Leader but in case of failure can be elected
  any other. Leader Node polls all the servers verifying the status and alerts all the
               Peer Nodes at every changes in the cluster composition.




                                                 Server #1
                                                      (Leader)               DBDB
                                                                            DBDB
                                                                           DBDB




                            Server #2                                       Server #3
                              (Peer)                                              (Peer)


                               DBDB
                              DBDB
                             DBDB                                               DBDB
                                                                               DBDB
                                                                                 DB




www.orientechnologies.com         Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 13 of 41
Asymmetric clustering
 Each database can be clustered in multiple server nodes. Databases can be moved
      across servers. Replication strategy has per database/server granularity.
   This means you could have Server #2 that replicates database B in asynch way
           to the Server #3 and database A in synch way to the Server #1.


                                                                                     A
                                                    Server #1
                                                         (Leader)
                                                                                     C




                            Server #2                                          Server #3
                                 (Peer)                                              (Peer)


                             A            B                                      C              B




www.orientechnologies.com            Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 14 of 41
Distributed configuration
 Cluster configuration is broadcasted from the Leader Node to all the Peer Nodes.
                Peer Nodes broadcast to all the connected clients.
                      Everybody knows who has the database



                            Client #1                  Server #1
                                                            (Leader)                                    Client #3




                             Server #2                                            Server #3
                                 (Peer)                                                 (Peer)




             Client #2


www.orientechnologies.com               Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 15 of 41
Security
  To join a cluster the Server Node has to configure the cluster name and password
                 Broadcast messages are encrypted using the password
        Password doesn't cross the network: it's stored in the configuration file




                                                 Server #1
                                                      (Leader)




                            Server #2                                            Join the cluster
                              (Peer)                                                  ONLY
                                                                              If knows the name
                               DBDB
                              DBDB
                             DBDB                                                and password


www.orientechnologies.com         Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 16 of 41
Leader election
        Each Peer Node continuously checks the connection with the Leader Node
                     If lost try to elect itself as a new Leader Node
                    Split Network resolved using a simple algorithm




                             Server #1                                    Server #2
                            192.168.0.10:2424                         192.168.10.27:2424
                                 (Leader)                                  (Leader)



                                                                   Server #1 takes the
                                                                        leadership
                                                                because has the lower ID
                                                                ID = <ip-address>:<port>

www.orientechnologies.com            Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 17 of 41
Multiple clusters
                   Multiple separate clusters can coexist in the same network
                      Clusters can't see each others. Are separated boxes
                           What identify a cluster is name + password

         Cluster 'A', password 'aaa'


                            Server #1                      Cluster 'B', password 'bbb'
                             (Leader)
                                Server #2                                     Server #1
                                     (Peer)
                 Server #3                                                        (Leader)
                       (Peer)                                                           Server #2
                                                                                              (Peer)
                                                                    Server #3
                                                                          (Peer)




www.orientechnologies.com          Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 18 of 41
Fail-over
        Clients knows about other nodes, so transparently switch
            to good servers. No error is sent to the client app.
       Running transactions will be repeated transparently too (v1.2)


                 Client #1           Client #2                          Client #3              Client #4



                            Server #1                                            Server #2


                              DB-1                                                      DB-2




www.orientechnologies.com            Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 19 of 41
How the replication works?
www.orientechnologies.com   Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 20 of 41
Synchronous Replication
       Guarantees two databases are always consistent
  More expensive than asynchronous because the First Server
   waits for the Second Server's answer before to send back
     the ACK to the client. After ACK the Client is secure
    the data is placed in multiple nodes at the same time


                            Server #1                                            Server #2


                              DB-1                                                      DB-2




www.orientechnologies.com            Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 21 of 41
Synchronous Replication
                                                      steps


                             Client #1
                                      6) Sends back OK to Client #1
 1) Update record request
                                              3) Propagates the update

                            Server #1                                             Server #2
    2) Update record to DB-1               5) Sends back OK to Server #1                       4) update record to DB-2


                               DB-1                                                      DB-2




www.orientechnologies.com             Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 22 of 41
Asynchronous Replication
  Changes are propagated without waiting for the answer
Two databases could be not consistent in the range of few ms
      For this reason it's called “Eventually Consistent”
   It's much less expensive than synchronous replication.



                            Server #1                                            Server #2


                              DB-1                                                      DB-2




www.orientechnologies.com            Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 23 of 41
Asynchronous Replication
                                                      steps
                       (4a and 4b are executed in parallel)


                             Client #1
                                      4a) Sends back OK to Client #1
 1) Update record request
                                              3) Propagates the update

                            Server #1                                             Server #2
    2) Update record to DB-1                                                                   4b) update record to DB-2


                               DB-1                                                      DB-2




www.orientechnologies.com             Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 24 of 41
Error Management
             During replication the Second Server could get an error due to a
      conflict (the record was modified in the same moment from another client)
      or a I/O problem. In this case the error is logged to disk to being fixed later.


                             Client #1
                                      4) Sends back OK to Client #1
 1) Update record request
                                              3) Propagates the update

                            Server #1                                             Server #2
    2) Update record to DB-1                                 6) log the error                  5) update record to DB-2


                               DB-1                                Synch Log             DB-2




www.orientechnologies.com             Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 25 of 41
Conflict Management
 During replication conflicts could happen if two clients are
         updating the same record at the same time
The conflicts resolution strategy can be plugged by providing
    implementations of the OConflictResolver interface


                                                  Server #2


                                Conflict Strategy                  DB-2




www.orientechnologies.com      Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 26 of 41
Conflict Management
                               Default strategy

         Default implementation                                                        Server #2
          merges the records:
        in case same fields are
           changed the oldest
                                                                        Default                         DB-2
         document wins and the
                                                                    Conflict Strategy
        newest is written into the
              Synch Log
                                                                               Synch Log




www.orientechnologies.com      Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 27 of 41
Manual control of conflicts
      like SVN/GIT tools




www.orientechnologies.com   Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 28 of 41
Display the diff of 2 databases
                        > compare database db1 db2


                Copy a record across databases
      > copy record #10:20@db1 to #10:20@db2


         Copy entire cluster across databases
           > copy cluster city@db1 to city@db2


        Merges two records across databases
        > merge records #10:20@db1 #10:20@db2
                           to #10:20@db1

www.orientechnologies.com    Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 29 of 41
How nodes are re-aligned




       once up again after a fail,
     shutdown or network problem?
www.orientechnologies.com   Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 30 of 41
During replication all operations
                       are logged using

   unique op-id with the format <node>#<serial>

                              Client
            Update a record



                            Server #1                                              Server #2

     Op-id: 192.168.0.10:2424#123232                                             Op-id: 192.168.0.10:2424#123232


       Operation Log           DB-1                                                       DB-2        Operation Log




www.orientechnologies.com              Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 31 of 41
On restart the node asks to the Leader
       which are the servers to synchronize

    op-ids are used to know the operation missed




                            Server #1                                            Server #2

     Op-id: 192.168.1.11:2424#9569                                             Op-id: 192.168.0.10:2424#123232


       Operation Log          DB-1                                                      DB-2        Operation Log




www.orientechnologies.com            Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 32 of 41
To be
     consistent
     or not be,
       that is
    the question

www.orientechnologies.com   Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 33 of 41
Always consistent
                            use it as a Master-Slave
                                                               Read only, consistent. Leave it as
          Read/Write. All                                      replica. Since it's always aligned it's
       changes on this server                                  the best candidate as new master if
         avoiding conflicts                                          Server #1 is unavailable



          Client             Server #1                              Server #2
                                 Master                              Synch Slave
          Client              read + write                            read only



                                                                                    Perfect for Analysis,
                                          One-way only
                                                                                   Business Intelligence
                                                                                        and Reports



www.orientechnologies.com        Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 34 of 41
Read-only scaling
             using many asynchronous replicas

          Read/Write. All
       changes on this server
         avoiding conflicts

                                                                         Server #2
                                                                          Synch Slave
          Client                 Server #1                                 read only
                                    Master
          Client                 read + write                            Server #N
                                                                          Server #3
                                                                         Asynch Slave#3
                                                                           Server
                                                                          Asynch Slave#3
                                                                             Server
                                                                          read only
                                                                            Asynch Slave
                                                                               read only
                                                                                Asynch Slave
                            Read only, eventually                               read only
                                                                                  read only
                            consistent. Replication
                              cost close to zero


www.orientechnologies.com             Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 35 of 41
Read/Write scaling
              Multi master + handling conflicts
                             Client            Server #1
                                                   Master
                             Client             read + write


                                                                        Server #2                       Client
                                                                           Master
                                                                        read + write                    Client

                             Client            Server #3
                                                   Master
                             Client             read + write




www.orientechnologies.com       Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 36 of 41
Read/Write scaling + sharding
                    Multi master, no conflict! :-)
                            Server USA
          Client               Master                                 customers_usa

              Writes on     read + write
           customers_usa




             Writes on
         customers_china
                            Server CHI
           Client              Master                                 customers_china
                            read + write




www.orientechnologies.com    Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 37 of 41
Multi-Master + Sharding
                            =
     big scale in high-availability and no conflicts
www.orientechnologies.com   Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 38 of 41
www.orientechnologies.com   Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 39 of 41
NuvolaBase.com                                        (beta)




                                                   The first
                                                Graph Database
                                                 on the Cloud
                                                     always available
                                                 few seconds to setup it
                                                use it from Web & Mobile
                                                           apps


www.orientechnologies.com     Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 40 of 41
Luca Garulli
                                                         Author of OrientDB and
                                                        Roma <Meta> Framework
                                                          Open Source projects,

                                                       Member of JSR#12 (jdo 1.0)
                                                         and JSR#243 (jdo 2.0)
   www.twitter.com/lgarulli
                   @London, UK                             CEO at Nuvola Base Ltd
                      and
                   @Rome, Italy



www.orientechnologies.com         Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License   Page 41 of 41

Más contenido relacionado

La actualidad más candente

SQL+GPU+SSD=∞ (English)
SQL+GPU+SSD=∞ (English)SQL+GPU+SSD=∞ (English)
SQL+GPU+SSD=∞ (English)Kohei KaiGai
 
20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_Index20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_IndexKohei KaiGai
 
PG-Strom - GPGPU meets PostgreSQL, PGcon2015
PG-Strom - GPGPU meets PostgreSQL, PGcon2015PG-Strom - GPGPU meets PostgreSQL, PGcon2015
PG-Strom - GPGPU meets PostgreSQL, PGcon2015Kohei KaiGai
 
Cluster Computing with Dryad
Cluster Computing with DryadCluster Computing with Dryad
Cluster Computing with Dryadbutest
 
Using GPUs to handle Big Data with Java by Adam Roberts.
Using GPUs to handle Big Data with Java by Adam Roberts.Using GPUs to handle Big Data with Java by Adam Roberts.
Using GPUs to handle Big Data with Java by Adam Roberts.J On The Beach
 
Let's turn your PostgreSQL into columnar store with cstore_fdw
Let's turn your PostgreSQL into columnar store with cstore_fdwLet's turn your PostgreSQL into columnar store with cstore_fdw
Let's turn your PostgreSQL into columnar store with cstore_fdwJan Holčapek
 
Kernel Recipes 2018 - XDP: a new fast and programmable network layer - Jesper...
Kernel Recipes 2018 - XDP: a new fast and programmable network layer - Jesper...Kernel Recipes 2018 - XDP: a new fast and programmable network layer - Jesper...
Kernel Recipes 2018 - XDP: a new fast and programmable network layer - Jesper...Anne Nicolas
 
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?ArangoDB Database
 
GS-4152, AMD’s Radeon R9-290X, One Big dGPU, by Michael Mantor
GS-4152, AMD’s Radeon R9-290X, One Big dGPU, by Michael MantorGS-4152, AMD’s Radeon R9-290X, One Big dGPU, by Michael Mantor
GS-4152, AMD’s Radeon R9-290X, One Big dGPU, by Michael MantorAMD Developer Central
 
An evaluation of LLVM compiler for SVE with fairly complicated loops
An evaluation of LLVM compiler for SVE with fairly complicated loopsAn evaluation of LLVM compiler for SVE with fairly complicated loops
An evaluation of LLVM compiler for SVE with fairly complicated loopsLinaro
 
PT-4054, "OpenCL™ Accelerated Compute Libraries" by John Melonakos
PT-4054, "OpenCL™ Accelerated Compute Libraries" by John MelonakosPT-4054, "OpenCL™ Accelerated Compute Libraries" by John Melonakos
PT-4054, "OpenCL™ Accelerated Compute Libraries" by John MelonakosAMD Developer Central
 
CC-4010, Bringing Spatial Love to your Java Application, by Steven Citron-Pousty
CC-4010, Bringing Spatial Love to your Java Application, by Steven Citron-PoustyCC-4010, Bringing Spatial Love to your Java Application, by Steven Citron-Pousty
CC-4010, Bringing Spatial Love to your Java Application, by Steven Citron-PoustyAMD Developer Central
 
Demystifying DataFrame and Dataset
Demystifying DataFrame and DatasetDemystifying DataFrame and Dataset
Demystifying DataFrame and DatasetKazuaki Ishizaki
 
A CGRA-based Approach for Accelerating Convolutional Neural Networks
A CGRA-based Approachfor Accelerating Convolutional Neural NetworksA CGRA-based Approachfor Accelerating Convolutional Neural Networks
A CGRA-based Approach for Accelerating Convolutional Neural NetworksShinya Takamaeda-Y
 
20180920_DBTS_PGStrom_EN
20180920_DBTS_PGStrom_EN20180920_DBTS_PGStrom_EN
20180920_DBTS_PGStrom_ENKohei KaiGai
 

La actualidad más candente (19)

SQL+GPU+SSD=∞ (English)
SQL+GPU+SSD=∞ (English)SQL+GPU+SSD=∞ (English)
SQL+GPU+SSD=∞ (English)
 
20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_Index20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_Index
 
Manycores for the Masses
Manycores for the MassesManycores for the Masses
Manycores for the Masses
 
PG-Strom - GPGPU meets PostgreSQL, PGcon2015
PG-Strom - GPGPU meets PostgreSQL, PGcon2015PG-Strom - GPGPU meets PostgreSQL, PGcon2015
PG-Strom - GPGPU meets PostgreSQL, PGcon2015
 
Cluster Computing with Dryad
Cluster Computing with DryadCluster Computing with Dryad
Cluster Computing with Dryad
 
Using GPUs to handle Big Data with Java by Adam Roberts.
Using GPUs to handle Big Data with Java by Adam Roberts.Using GPUs to handle Big Data with Java by Adam Roberts.
Using GPUs to handle Big Data with Java by Adam Roberts.
 
Let's turn your PostgreSQL into columnar store with cstore_fdw
Let's turn your PostgreSQL into columnar store with cstore_fdwLet's turn your PostgreSQL into columnar store with cstore_fdw
Let's turn your PostgreSQL into columnar store with cstore_fdw
 
Kernel Recipes 2018 - XDP: a new fast and programmable network layer - Jesper...
Kernel Recipes 2018 - XDP: a new fast and programmable network layer - Jesper...Kernel Recipes 2018 - XDP: a new fast and programmable network layer - Jesper...
Kernel Recipes 2018 - XDP: a new fast and programmable network layer - Jesper...
 
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
gVisor, Kata Containers, Firecracker, Docker: Who is Who in the Container Space?
 
GS-4152, AMD’s Radeon R9-290X, One Big dGPU, by Michael Mantor
GS-4152, AMD’s Radeon R9-290X, One Big dGPU, by Michael MantorGS-4152, AMD’s Radeon R9-290X, One Big dGPU, by Michael Mantor
GS-4152, AMD’s Radeon R9-290X, One Big dGPU, by Michael Mantor
 
An evaluation of LLVM compiler for SVE with fairly complicated loops
An evaluation of LLVM compiler for SVE with fairly complicated loopsAn evaluation of LLVM compiler for SVE with fairly complicated loops
An evaluation of LLVM compiler for SVE with fairly complicated loops
 
Next generation 4k video codec experience - Ultra HD
Next generation 4k video codec experience  - Ultra HDNext generation 4k video codec experience  - Ultra HD
Next generation 4k video codec experience - Ultra HD
 
PT-4054, "OpenCL™ Accelerated Compute Libraries" by John Melonakos
PT-4054, "OpenCL™ Accelerated Compute Libraries" by John MelonakosPT-4054, "OpenCL™ Accelerated Compute Libraries" by John Melonakos
PT-4054, "OpenCL™ Accelerated Compute Libraries" by John Melonakos
 
CC-4010, Bringing Spatial Love to your Java Application, by Steven Citron-Pousty
CC-4010, Bringing Spatial Love to your Java Application, by Steven Citron-PoustyCC-4010, Bringing Spatial Love to your Java Application, by Steven Citron-Pousty
CC-4010, Bringing Spatial Love to your Java Application, by Steven Citron-Pousty
 
Demystifying DataFrame and Dataset
Demystifying DataFrame and DatasetDemystifying DataFrame and Dataset
Demystifying DataFrame and Dataset
 
Kyotoproducts
KyotoproductsKyotoproducts
Kyotoproducts
 
A CGRA-based Approach for Accelerating Convolutional Neural Networks
A CGRA-based Approachfor Accelerating Convolutional Neural NetworksA CGRA-based Approachfor Accelerating Convolutional Neural Networks
A CGRA-based Approach for Accelerating Convolutional Neural Networks
 
Introduction to OpenCL
Introduction to OpenCLIntroduction to OpenCL
Introduction to OpenCL
 
20180920_DBTS_PGStrom_EN
20180920_DBTS_PGStrom_EN20180920_DBTS_PGStrom_EN
20180920_DBTS_PGStrom_EN
 

Destacado

OrientDB Distributed Architecture v2.0
OrientDB Distributed Architecture v2.0OrientDB Distributed Architecture v2.0
OrientDB Distributed Architecture v2.0Orient Technologies
 
OrientDB introduction - NoSQL
OrientDB introduction - NoSQLOrientDB introduction - NoSQL
OrientDB introduction - NoSQLLuca Garulli
 
OrientDB for real & Web App development
OrientDB for real & Web App developmentOrientDB for real & Web App development
OrientDB for real & Web App developmentLuca Garulli
 
OrientDB vs Neo4j - and an introduction to NoSQL databases
OrientDB vs Neo4j - and an introduction to NoSQL databasesOrientDB vs Neo4j - and an introduction to NoSQL databases
OrientDB vs Neo4j - and an introduction to NoSQL databasesCurtis Mosters
 
Titan: The Rise of Big Graph Data
Titan: The Rise of Big Graph DataTitan: The Rise of Big Graph Data
Titan: The Rise of Big Graph DataMarko Rodriguez
 
OrientDB vs Neo4j - Comparison of query/speed/functionality
OrientDB vs Neo4j - Comparison of query/speed/functionalityOrientDB vs Neo4j - Comparison of query/speed/functionality
OrientDB vs Neo4j - Comparison of query/speed/functionalityCurtis Mosters
 
User Expertise Characterization across Multiple Social Networks
User Expertise Characterization across Multiple Social NetworksUser Expertise Characterization across Multiple Social Networks
User Expertise Characterization across Multiple Social NetworksTU Delft
 
OrientDB the database for the web 1.1
OrientDB the database for the web 1.1OrientDB the database for the web 1.1
OrientDB the database for the web 1.1Luca Garulli
 
Bitsy graph database
Bitsy graph databaseBitsy graph database
Bitsy graph databaseLambdaZen LLC
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016Luigi Dell'Aquila
 
OrientDB the graph database
OrientDB the graph databaseOrientDB the graph database
OrientDB the graph databaseartem_orobets
 
OrientDB document or graph? Select the right model (old presentation)
OrientDB document or graph? Select the right model (old presentation)OrientDB document or graph? Select the right model (old presentation)
OrientDB document or graph? Select the right model (old presentation)Luca Garulli
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL
OrientDB - the 2nd generation  of  (Multi-Model) NoSQLOrientDB - the 2nd generation  of  (Multi-Model) NoSQL
OrientDB - the 2nd generation of (Multi-Model) NoSQLLuigi Dell'Aquila
 
Design your application using Persistent Graphs and OrientDB
Design your application using Persistent Graphs and OrientDBDesign your application using Persistent Graphs and OrientDB
Design your application using Persistent Graphs and OrientDBLuca Garulli
 
Multi-tenant, Multi-cluster and Multi-container Apache HBase Deployments
Multi-tenant, Multi-cluster and Multi-container Apache HBase DeploymentsMulti-tenant, Multi-cluster and Multi-container Apache HBase Deployments
Multi-tenant, Multi-cluster and Multi-container Apache HBase DeploymentsDataWorks Summit
 
Intro to Graph Databases Using Tinkerpop, TitanDB, and Gremlin
Intro to Graph Databases Using Tinkerpop, TitanDB, and GremlinIntro to Graph Databases Using Tinkerpop, TitanDB, and Gremlin
Intro to Graph Databases Using Tinkerpop, TitanDB, and GremlinCaleb Jones
 
Big Data in Real-Time at Twitter
Big Data in Real-Time at TwitterBig Data in Real-Time at Twitter
Big Data in Real-Time at Twitternkallen
 
Titan: Big Graph Data with Cassandra
Titan: Big Graph Data with CassandraTitan: Big Graph Data with Cassandra
Titan: Big Graph Data with CassandraMatthias Broecheler
 

Destacado (19)

OrientDB Distributed Architecture v2.0
OrientDB Distributed Architecture v2.0OrientDB Distributed Architecture v2.0
OrientDB Distributed Architecture v2.0
 
OrientDB introduction - NoSQL
OrientDB introduction - NoSQLOrientDB introduction - NoSQL
OrientDB introduction - NoSQL
 
OrientDB for real & Web App development
OrientDB for real & Web App developmentOrientDB for real & Web App development
OrientDB for real & Web App development
 
OrientDB vs Neo4j - and an introduction to NoSQL databases
OrientDB vs Neo4j - and an introduction to NoSQL databasesOrientDB vs Neo4j - and an introduction to NoSQL databases
OrientDB vs Neo4j - and an introduction to NoSQL databases
 
Titan: The Rise of Big Graph Data
Titan: The Rise of Big Graph DataTitan: The Rise of Big Graph Data
Titan: The Rise of Big Graph Data
 
OrientDB vs Neo4j - Comparison of query/speed/functionality
OrientDB vs Neo4j - Comparison of query/speed/functionalityOrientDB vs Neo4j - Comparison of query/speed/functionality
OrientDB vs Neo4j - Comparison of query/speed/functionality
 
User Expertise Characterization across Multiple Social Networks
User Expertise Characterization across Multiple Social NetworksUser Expertise Characterization across Multiple Social Networks
User Expertise Characterization across Multiple Social Networks
 
OrientDB the database for the web 1.1
OrientDB the database for the web 1.1OrientDB the database for the web 1.1
OrientDB the database for the web 1.1
 
Bitsy graph database
Bitsy graph databaseBitsy graph database
Bitsy graph database
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - Codemotion Warsaw 2016
 
OrientDB the graph database
OrientDB the graph databaseOrientDB the graph database
OrientDB the graph database
 
OrientDB document or graph? Select the right model (old presentation)
OrientDB document or graph? Select the right model (old presentation)OrientDB document or graph? Select the right model (old presentation)
OrientDB document or graph? Select the right model (old presentation)
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL
OrientDB - the 2nd generation  of  (Multi-Model) NoSQLOrientDB - the 2nd generation  of  (Multi-Model) NoSQL
OrientDB - the 2nd generation of (Multi-Model) NoSQL
 
Sparksee Technology overview
Sparksee Technology overviewSparksee Technology overview
Sparksee Technology overview
 
Design your application using Persistent Graphs and OrientDB
Design your application using Persistent Graphs and OrientDBDesign your application using Persistent Graphs and OrientDB
Design your application using Persistent Graphs and OrientDB
 
Multi-tenant, Multi-cluster and Multi-container Apache HBase Deployments
Multi-tenant, Multi-cluster and Multi-container Apache HBase DeploymentsMulti-tenant, Multi-cluster and Multi-container Apache HBase Deployments
Multi-tenant, Multi-cluster and Multi-container Apache HBase Deployments
 
Intro to Graph Databases Using Tinkerpop, TitanDB, and Gremlin
Intro to Graph Databases Using Tinkerpop, TitanDB, and GremlinIntro to Graph Databases Using Tinkerpop, TitanDB, and Gremlin
Intro to Graph Databases Using Tinkerpop, TitanDB, and Gremlin
 
Big Data in Real-Time at Twitter
Big Data in Real-Time at TwitterBig Data in Real-Time at Twitter
Big Data in Real-Time at Twitter
 
Titan: Big Graph Data with Cassandra
Titan: Big Graph Data with CassandraTitan: Big Graph Data with Cassandra
Titan: Big Graph Data with Cassandra
 

Similar a OrientDB distributed architecture 1.1

OrientDB the graph database
OrientDB the graph databaseOrientDB the graph database
OrientDB the graph databaseArtem Orobets
 
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services Ambassador Labs
 
Modular Layer 2 In OpenStack Neutron
Modular Layer 2 In OpenStack NeutronModular Layer 2 In OpenStack Neutron
Modular Layer 2 In OpenStack Neutronmestery
 
OpenStack and OpenFlow Demos
OpenStack and OpenFlow DemosOpenStack and OpenFlow Demos
OpenStack and OpenFlow DemosBrent Salisbury
 
Multithreading in Android
Multithreading in AndroidMultithreading in Android
Multithreading in Androidcoolmirza143
 
OpenStack Scale-out Networking Architecture
OpenStack Scale-out Networking ArchitectureOpenStack Scale-out Networking Architecture
OpenStack Scale-out Networking ArchitectureRandy Bias
 
Lets build-ruby-app-server: Vineet tyagi
Lets build-ruby-app-server: Vineet tyagiLets build-ruby-app-server: Vineet tyagi
Lets build-ruby-app-server: Vineet tyagiThoughtWorks
 
Architectures with Windows Azure
Architectures with Windows AzureArchitectures with Windows Azure
Architectures with Windows AzureDamir Dobric
 
Preventing multi master conflicts with tungsten
Preventing multi master conflicts with tungstenPreventing multi master conflicts with tungsten
Preventing multi master conflicts with tungstenGiuseppe Maxia
 
.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011Fabio Akita
 
09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do railsDNAD
 
Openflow勉強会 「OpenFlowコントローラを取り巻く状況とその実装」
Openflow勉強会 「OpenFlowコントローラを取り巻く状況とその実装」Openflow勉強会 「OpenFlowコントローラを取り巻く状況とその実装」
Openflow勉強会 「OpenFlowコントローラを取り巻く状況とその実装」Sho Shimizu
 
OpenStack Dragonflow shenzhen and Hangzhou meetups
OpenStack Dragonflow shenzhen and Hangzhou  meetupsOpenStack Dragonflow shenzhen and Hangzhou  meetups
OpenStack Dragonflow shenzhen and Hangzhou meetupsEran Gampel
 
Running Neutron at Scale - Gal Sagie & Eran Gampel - OpenStack Day Israel 2016
Running Neutron at Scale - Gal Sagie & Eran Gampel - OpenStack Day Israel 2016Running Neutron at Scale - Gal Sagie & Eran Gampel - OpenStack Day Israel 2016
Running Neutron at Scale - Gal Sagie & Eran Gampel - OpenStack Day Israel 2016Cloud Native Day Tel Aviv
 

Similar a OrientDB distributed architecture 1.1 (20)

OrientDB the graph database
OrientDB the graph databaseOrientDB the graph database
OrientDB the graph database
 
Build Programming Language Runtime with LLVM
Build Programming Language Runtime with LLVMBuild Programming Language Runtime with LLVM
Build Programming Language Runtime with LLVM
 
olibc: Another C Library optimized for Embedded Linux
olibc: Another C Library optimized for Embedded Linuxolibc: Another C Library optimized for Embedded Linux
olibc: Another C Library optimized for Embedded Linux
 
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
 
Modular Layer 2 In OpenStack Neutron
Modular Layer 2 In OpenStack NeutronModular Layer 2 In OpenStack Neutron
Modular Layer 2 In OpenStack Neutron
 
Android Optimization: Myth and Reality
Android Optimization: Myth and RealityAndroid Optimization: Myth and Reality
Android Optimization: Myth and Reality
 
OpenStack and OpenFlow Demos
OpenStack and OpenFlow DemosOpenStack and OpenFlow Demos
OpenStack and OpenFlow Demos
 
Multithreading in Android
Multithreading in AndroidMultithreading in Android
Multithreading in Android
 
OpenStack Scale-out Networking Architecture
OpenStack Scale-out Networking ArchitectureOpenStack Scale-out Networking Architecture
OpenStack Scale-out Networking Architecture
 
BlobSeer in NoSQL world
BlobSeer in NoSQL worldBlobSeer in NoSQL world
BlobSeer in NoSQL world
 
Demystfying container-networking
Demystfying container-networkingDemystfying container-networking
Demystfying container-networking
 
Lets build-ruby-app-server: Vineet tyagi
Lets build-ruby-app-server: Vineet tyagiLets build-ruby-app-server: Vineet tyagi
Lets build-ruby-app-server: Vineet tyagi
 
Architectures with Windows Azure
Architectures with Windows AzureArchitectures with Windows Azure
Architectures with Windows Azure
 
Kubernetes 1001
Kubernetes 1001Kubernetes 1001
Kubernetes 1001
 
Preventing multi master conflicts with tungsten
Preventing multi master conflicts with tungstenPreventing multi master conflicts with tungsten
Preventing multi master conflicts with tungsten
 
.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011
 
09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails
 
Openflow勉強会 「OpenFlowコントローラを取り巻く状況とその実装」
Openflow勉強会 「OpenFlowコントローラを取り巻く状況とその実装」Openflow勉強会 「OpenFlowコントローラを取り巻く状況とその実装」
Openflow勉強会 「OpenFlowコントローラを取り巻く状況とその実装」
 
OpenStack Dragonflow shenzhen and Hangzhou meetups
OpenStack Dragonflow shenzhen and Hangzhou  meetupsOpenStack Dragonflow shenzhen and Hangzhou  meetups
OpenStack Dragonflow shenzhen and Hangzhou meetups
 
Running Neutron at Scale - Gal Sagie & Eran Gampel - OpenStack Day Israel 2016
Running Neutron at Scale - Gal Sagie & Eran Gampel - OpenStack Day Israel 2016Running Neutron at Scale - Gal Sagie & Eran Gampel - OpenStack Day Israel 2016
Running Neutron at Scale - Gal Sagie & Eran Gampel - OpenStack Day Israel 2016
 

Más de Luca Garulli

Polyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model DatabasesPolyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model DatabasesLuca Garulli
 
How Graph Databases started the Multi Model revolution
How Graph Databases started the Multi Model revolutionHow Graph Databases started the Multi Model revolution
How Graph Databases started the Multi Model revolutionLuca Garulli
 
Why relationships are cool but join sucks - Big Data & Graphs in Rome
Why relationships are cool but join sucks - Big Data & Graphs in RomeWhy relationships are cool but join sucks - Big Data & Graphs in Rome
Why relationships are cool but join sucks - Big Data & Graphs in RomeLuca Garulli
 
Why relationships are cool but "join" sucks
Why relationships are cool but "join" sucksWhy relationships are cool but "join" sucks
Why relationships are cool but "join" sucksLuca Garulli
 
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...Luca Garulli
 
Switching from Relational 2 Graph - CloudConf.it
Switching from Relational 2 Graph - CloudConf.itSwitching from Relational 2 Graph - CloudConf.it
Switching from Relational 2 Graph - CloudConf.itLuca Garulli
 
Switching from Relational to the Graph model v1.3
Switching from Relational to the Graph model v1.3Switching from Relational to the Graph model v1.3
Switching from Relational to the Graph model v1.3Luca Garulli
 
Switching from relational to the graph model
Switching from relational to the graph modelSwitching from relational to the graph model
Switching from relational to the graph modelLuca Garulli
 
Internet Apps powered by NoSQL and JavaScript
Internet Apps powered by NoSQL and JavaScriptInternet Apps powered by NoSQL and JavaScript
Internet Apps powered by NoSQL and JavaScriptLuca Garulli
 
Switching from the Relational to the Graph model
Switching from the Relational to the Graph modelSwitching from the Relational to the Graph model
Switching from the Relational to the Graph modelLuca Garulli
 
No sql matters_2012_keynote
No sql matters_2012_keynoteNo sql matters_2012_keynote
No sql matters_2012_keynoteLuca Garulli
 
Roma introduction and concepts
Roma introduction and conceptsRoma introduction and concepts
Roma introduction and conceptsLuca Garulli
 
RomaFramework Tutorial Basics
RomaFramework Tutorial BasicsRomaFramework Tutorial Basics
RomaFramework Tutorial BasicsLuca Garulli
 
Roma Meta Framework Concepts @JavaDay Rome 2007
Roma Meta Framework Concepts @JavaDay Rome 2007Roma Meta Framework Concepts @JavaDay Rome 2007
Roma Meta Framework Concepts @JavaDay Rome 2007Luca Garulli
 

Más de Luca Garulli (14)

Polyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model DatabasesPolyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model Databases
 
How Graph Databases started the Multi Model revolution
How Graph Databases started the Multi Model revolutionHow Graph Databases started the Multi Model revolution
How Graph Databases started the Multi Model revolution
 
Why relationships are cool but join sucks - Big Data & Graphs in Rome
Why relationships are cool but join sucks - Big Data & Graphs in RomeWhy relationships are cool but join sucks - Big Data & Graphs in Rome
Why relationships are cool but join sucks - Big Data & Graphs in Rome
 
Why relationships are cool but "join" sucks
Why relationships are cool but "join" sucksWhy relationships are cool but "join" sucks
Why relationships are cool but "join" sucks
 
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...
Soffri di patologie da "domini complessi con tante relazioni"? C'è una nuova ...
 
Switching from Relational 2 Graph - CloudConf.it
Switching from Relational 2 Graph - CloudConf.itSwitching from Relational 2 Graph - CloudConf.it
Switching from Relational 2 Graph - CloudConf.it
 
Switching from Relational to the Graph model v1.3
Switching from Relational to the Graph model v1.3Switching from Relational to the Graph model v1.3
Switching from Relational to the Graph model v1.3
 
Switching from relational to the graph model
Switching from relational to the graph modelSwitching from relational to the graph model
Switching from relational to the graph model
 
Internet Apps powered by NoSQL and JavaScript
Internet Apps powered by NoSQL and JavaScriptInternet Apps powered by NoSQL and JavaScript
Internet Apps powered by NoSQL and JavaScript
 
Switching from the Relational to the Graph model
Switching from the Relational to the Graph modelSwitching from the Relational to the Graph model
Switching from the Relational to the Graph model
 
No sql matters_2012_keynote
No sql matters_2012_keynoteNo sql matters_2012_keynote
No sql matters_2012_keynote
 
Roma introduction and concepts
Roma introduction and conceptsRoma introduction and concepts
Roma introduction and concepts
 
RomaFramework Tutorial Basics
RomaFramework Tutorial BasicsRomaFramework Tutorial Basics
RomaFramework Tutorial Basics
 
Roma Meta Framework Concepts @JavaDay Rome 2007
Roma Meta Framework Concepts @JavaDay Rome 2007Roma Meta Framework Concepts @JavaDay Rome 2007
Roma Meta Framework Concepts @JavaDay Rome 2007
 

Último

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
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
 
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
 
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
 
🐬 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
 
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
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
[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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
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
 

Último (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
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...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
[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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
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
 

OrientDB distributed architecture 1.1

  • 1. rev 1.1 Distributed architecture with a Multi-Master approach Available in version 1.0 (planned for December 2011) www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 1 of 41
  • 2. Where is the previous OrientDB Master/Slave architecture? www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 2 of 41
  • 3. www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 3 of 41
  • 4. After first tests we decided to throw away the old Master-Slave architecture because it was against the OrientDB philosophy: doesn't scale and it's hard to configure properly www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 4 of 41
  • 5. So what's next? We've re-designed the entire distributed architecture to get it working as Multi-Master* *http://en.wikipedia.org/wiki/Multi-master_replication to release in the version 1.0 (december 2011) www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 5 of 41
  • 6. In the Multi-Master architecture any node can read/write to the database this scale up horizontly adding nodes is straightforward Say wow! www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 6 of 41
  • 7. www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 7 of 41
  • 8. ...but you have to fight with conflicts www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 8 of 41
  • 9. Fortunately we found some smart ways to resolve conflicts without falling in a Blood Bath www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 9 of 41
  • 10. The actors Only 1 per Leader per cluster, checks other nodes and Leader Node notify changes to other Peer Nodes. Can be any server node in the cluster, usually the first to start Any server node in the cluster. Has a permanent Peer Node connection to the Leader Node Clients are connected to Server Nodes no matter if Leader Client or Peer Database Database, where data are stored Synchronous mode replication. Server node propagates changes waiting for the response from the remote server, then sends the ACK to the client Asynchronous mode replication. Server node propagates changes and sends the ACK to the client without waiting for the response from the remote server www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 10 of 41
  • 11. How the cluster of nodes is composed and managed? www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 11 of 41
  • 12. Cluster auto-discovering At start up each Server Node sends a IP Multicast message in broadcast to discover if any Leader Node is available to join the cluster. If available, the Leader Node will connect to it and it becomes a Peer Node, otherwise it becomes the Leader node. Server #1 (Leader) DBDB DBDB DBDB Server #2 (Peer) DBDB DBDB DBDB www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 12 of 41
  • 13. One Leader Multiple Peers The first node to start is always the Leader but in case of failure can be elected any other. Leader Node polls all the servers verifying the status and alerts all the Peer Nodes at every changes in the cluster composition. Server #1 (Leader) DBDB DBDB DBDB Server #2 Server #3 (Peer) (Peer) DBDB DBDB DBDB DBDB DBDB DB www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 13 of 41
  • 14. Asymmetric clustering Each database can be clustered in multiple server nodes. Databases can be moved across servers. Replication strategy has per database/server granularity. This means you could have Server #2 that replicates database B in asynch way to the Server #3 and database A in synch way to the Server #1. A Server #1 (Leader) C Server #2 Server #3 (Peer) (Peer) A B C B www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 14 of 41
  • 15. Distributed configuration Cluster configuration is broadcasted from the Leader Node to all the Peer Nodes. Peer Nodes broadcast to all the connected clients. Everybody knows who has the database Client #1 Server #1 (Leader) Client #3 Server #2 Server #3 (Peer) (Peer) Client #2 www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 15 of 41
  • 16. Security To join a cluster the Server Node has to configure the cluster name and password Broadcast messages are encrypted using the password Password doesn't cross the network: it's stored in the configuration file Server #1 (Leader) Server #2 Join the cluster (Peer) ONLY If knows the name DBDB DBDB DBDB and password www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 16 of 41
  • 17. Leader election Each Peer Node continuously checks the connection with the Leader Node If lost try to elect itself as a new Leader Node Split Network resolved using a simple algorithm Server #1 Server #2 192.168.0.10:2424 192.168.10.27:2424 (Leader) (Leader) Server #1 takes the leadership because has the lower ID ID = <ip-address>:<port> www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 17 of 41
  • 18. Multiple clusters Multiple separate clusters can coexist in the same network Clusters can't see each others. Are separated boxes What identify a cluster is name + password Cluster 'A', password 'aaa' Server #1 Cluster 'B', password 'bbb' (Leader) Server #2 Server #1 (Peer) Server #3 (Leader) (Peer) Server #2 (Peer) Server #3 (Peer) www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 18 of 41
  • 19. Fail-over Clients knows about other nodes, so transparently switch to good servers. No error is sent to the client app. Running transactions will be repeated transparently too (v1.2) Client #1 Client #2 Client #3 Client #4 Server #1 Server #2 DB-1 DB-2 www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 19 of 41
  • 20. How the replication works? www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 20 of 41
  • 21. Synchronous Replication Guarantees two databases are always consistent More expensive than asynchronous because the First Server waits for the Second Server's answer before to send back the ACK to the client. After ACK the Client is secure the data is placed in multiple nodes at the same time Server #1 Server #2 DB-1 DB-2 www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 21 of 41
  • 22. Synchronous Replication steps Client #1 6) Sends back OK to Client #1 1) Update record request 3) Propagates the update Server #1 Server #2 2) Update record to DB-1 5) Sends back OK to Server #1 4) update record to DB-2 DB-1 DB-2 www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 22 of 41
  • 23. Asynchronous Replication Changes are propagated without waiting for the answer Two databases could be not consistent in the range of few ms For this reason it's called “Eventually Consistent” It's much less expensive than synchronous replication. Server #1 Server #2 DB-1 DB-2 www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 23 of 41
  • 24. Asynchronous Replication steps (4a and 4b are executed in parallel) Client #1 4a) Sends back OK to Client #1 1) Update record request 3) Propagates the update Server #1 Server #2 2) Update record to DB-1 4b) update record to DB-2 DB-1 DB-2 www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 24 of 41
  • 25. Error Management During replication the Second Server could get an error due to a conflict (the record was modified in the same moment from another client) or a I/O problem. In this case the error is logged to disk to being fixed later. Client #1 4) Sends back OK to Client #1 1) Update record request 3) Propagates the update Server #1 Server #2 2) Update record to DB-1 6) log the error 5) update record to DB-2 DB-1 Synch Log DB-2 www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 25 of 41
  • 26. Conflict Management During replication conflicts could happen if two clients are updating the same record at the same time The conflicts resolution strategy can be plugged by providing implementations of the OConflictResolver interface Server #2 Conflict Strategy DB-2 www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 26 of 41
  • 27. Conflict Management Default strategy Default implementation Server #2 merges the records: in case same fields are changed the oldest Default DB-2 document wins and the Conflict Strategy newest is written into the Synch Log Synch Log www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 27 of 41
  • 28. Manual control of conflicts like SVN/GIT tools www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 28 of 41
  • 29. Display the diff of 2 databases > compare database db1 db2 Copy a record across databases > copy record #10:20@db1 to #10:20@db2 Copy entire cluster across databases > copy cluster city@db1 to city@db2 Merges two records across databases > merge records #10:20@db1 #10:20@db2 to #10:20@db1 www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 29 of 41
  • 30. How nodes are re-aligned once up again after a fail, shutdown or network problem? www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 30 of 41
  • 31. During replication all operations are logged using unique op-id with the format <node>#<serial> Client Update a record Server #1 Server #2 Op-id: 192.168.0.10:2424#123232 Op-id: 192.168.0.10:2424#123232 Operation Log DB-1 DB-2 Operation Log www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 31 of 41
  • 32. On restart the node asks to the Leader which are the servers to synchronize op-ids are used to know the operation missed Server #1 Server #2 Op-id: 192.168.1.11:2424#9569 Op-id: 192.168.0.10:2424#123232 Operation Log DB-1 DB-2 Operation Log www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 32 of 41
  • 33. To be consistent or not be, that is the question www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 33 of 41
  • 34. Always consistent use it as a Master-Slave Read only, consistent. Leave it as Read/Write. All replica. Since it's always aligned it's changes on this server the best candidate as new master if avoiding conflicts Server #1 is unavailable Client Server #1 Server #2 Master Synch Slave Client read + write read only Perfect for Analysis, One-way only Business Intelligence and Reports www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 34 of 41
  • 35. Read-only scaling using many asynchronous replicas Read/Write. All changes on this server avoiding conflicts Server #2 Synch Slave Client Server #1 read only Master Client read + write Server #N Server #3 Asynch Slave#3 Server Asynch Slave#3 Server read only Asynch Slave read only Asynch Slave Read only, eventually read only read only consistent. Replication cost close to zero www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 35 of 41
  • 36. Read/Write scaling Multi master + handling conflicts Client Server #1 Master Client read + write Server #2 Client Master read + write Client Client Server #3 Master Client read + write www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 36 of 41
  • 37. Read/Write scaling + sharding Multi master, no conflict! :-) Server USA Client Master customers_usa Writes on read + write customers_usa Writes on customers_china Server CHI Client Master customers_china read + write www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 37 of 41
  • 38. Multi-Master + Sharding = big scale in high-availability and no conflicts www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 38 of 41
  • 39. www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 39 of 41
  • 40. NuvolaBase.com (beta) The first Graph Database on the Cloud always available few seconds to setup it use it from Web & Mobile apps www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 40 of 41
  • 41. Luca Garulli Author of OrientDB and Roma <Meta> Framework Open Source projects, Member of JSR#12 (jdo 1.0) and JSR#243 (jdo 2.0) www.twitter.com/lgarulli @London, UK CEO at Nuvola Base Ltd and @Rome, Italy www.orientechnologies.com Licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License Page 41 of 41