SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
“A NoSQL Database for the Internet age”

                     www.OrienTechnologies.com


                                      Author of OrientDB and Roma
Luca Garulli
 Luca Garulli                         Framework Open Source projects,
CTO@AssetData.it
 CTO@AssetData.it                     CTO at Asset Data company,
http://zion-city.blogspot.com
 http://zion-city.blogspot.com        Technical Manager at Romulus
http://twitter.com/lgarulli
 http://twitter.com/lgarulli          consortium
NoSQL movement
“In recent years, a number of new systems, sometimes called
“NoSQL” systems, have been introduced to provide indexed data
storage that is much higher performance than existing relational
database products like MySQL, Oracle, DB2, and SQL Server.
These data storage systems have a number of features in common:

● A simple call level interface or protocol (in contrast to a SQL
binding)
● Ability to horizontally scale throughput over many servers,

● Efficient use of distributed indexes and RAM for data storage, and

● The ability to dynamically define new attributes or data schema“



                    from “High Performance Scalable Data Stores” by Rick Cattell
                For more information visit: http://www.orientechnologies.com
Products
 There are two main products released with commercial friendly
                Open Source Apache 2 license


  Deeply scalable Document based DBMS that uses the               The Key/Value Server based on the
 features of the Graph Databases to handle links. It's the        Document Database technology and
   basic engine of all the Orient products. It can work in         accessible as embedded repository
     schema-less mode, schema-full or a mix of both.               via Java APIs or via HTTP using a
                                                                  RESTful API. Orient K/V uses a new
Supports advanced features, such as indexing, fluent and           algorithm called RB+Tree, derived
  SQL-like queries. It handles natively JSON and XML             from the Red-Black Tree and from the
 documents. Developers can use Java native and HTTP                              B+Tree.
                      RESTful APIs
                                                                  Orient Key/Value server can run in
 Graphs of hundreads of linked objects can be retrieved all         high availability mode using a
in memory in less than 1ms without executing costly JOINs        cluster of multiple nodes partitioned.
            such as the Relational DBMSs do.
                       For more information visit: http://www.orientechnologies.com
Database structure
Cluster concept
             Class “Profile“ has
            records distributed on
              multiple clusters.         Class “Profile“
                                          Class “Profile“
                                                                           Cluster “FamousProfile“
                                                                            Cluster “FamousProfile“
 All the other                                                                  Type = physical
                                                                                 Type = physical
profiles will be
stored into the
                                                                           Jay Miner Bill Gates
“OtherProfile“
cluster of type
   “logical“                                The “FamousProfile“ cluster
                                        contains all the profile of the most
                                         famous people and it's supposed
                                        to being accessed frequently. This            Cluster “Twit“
Cluster “OtherProfile“                     is the reason why we selected                Cluster “Twit“
 Cluster “OtherProfile“                                                               Type = physical
    Type = logical                                “physical“ as type.                  Type = physical
      Type = logical




                       For more information visit: http://www.orientechnologies.com
APIs
 OrientDB is written 100% in Java® and can run on any
platform that supports the Java® Technology version 5 or
                          more.

  OrientDB supports native Java client API to work with
  embedded or remote databases using the fast binary
                       protocol

OrientDB Server comes with a HTTP RESTful interface to
 being used from any language, even from the Internet
       Browser. Uses JSON to represents records
             For more information visit: http://www.orientechnologies.com
Java example with records
// OPEN THE DATABASE
ODatabaseDocumentTx db = new ODatabaseDocumentTx("remote:localhost/demo").open("admin", "admin");

// CREATE A NEW DOCUMENT AND FILL IT
ODocument doc = new ODocument(db, "Person");
                                                                                                  This is a
doc.field( "name", "Luke" );                                                                    relationship
doc.field( "surname", "Skywalker" );                                                            Many-to-One
doc.field( "city", new ODocument("City" ).field("name","Rome").field("country", "Italy") );

// SAVE THE DOCUMENT
doc.save();

// QUERY THE DOCUMENT                                                                         Query using the
List<ODocument> result = database.query(                                                      SQL syntax with
  new OSQLSynchQuery("select * from person where city.name = 'Rome'")).execute();              extensions to
                                                                                               traverse links
// PRINT THE RESULT SET
for( ODocument d : result ){                                                                   without costly
  System.out.println("Person: " + d.field( "name" ) + d.field( "surname" ));                       JOINs
}

db.close();

                             For more information visit: http://www.orientechnologies.com
Object Database interface
Even if OrientDB is not an ODBMS (but is a Document DBMS), it
 offers the ODatabaseObject interface to works with POJOs in
  transparent way removing the Impedence Mismatch problem

Fields not present in the real Java class will be not mapped but
                 saved with the original record

       Queries convert automatically records to POJOs

   References between POJO can be stored as links (aka
    relationships) or by including the referenced object as
                          embedded.
              For more information visit: http://www.orientechnologies.com
Java example with POJOs
// OPEN THE DATABASE
ODatabaseObjectTx db = new ODatabaseObjectTx("remote:localhost/demo").open("admin", "admin");

// CREATE A NEW OBJECT AND FILL IT
Person person = new Person();                                  Automatic
person.setName( "Luke" );                                     binding from
person.setSurname( "Skywalker" );
person.setCity( new City( "Rome", "Italy") );                POJO to record

// SAVE THE OBJECT
db.save( person );                                                         Query returns directly List
                                                                           of POJO. Queries use the
// QUERY THE OBJECT                                                        cache before to load the
List<Person> result = database.query(                                      records from the storage
  new OSQLSynchQuery("select from person where city.name = 'Rome'"));

// PRINT THE RESULT SET
for( Person p : result ){
  System.out.println("Person: " + p.getName() + “ “ + p.getSurname() );                The POJOs
}                                                                                     are usable as
                                                                                         usually
db.close();

                            For more information visit: http://www.orientechnologies.com
HTTP RESTful API
       select from Profile where project = 'Amiga'


   HTTP RESTful protocol
         (JSON)                                                  OrientDB
                                                                 OrientDB
{ result :
  { _rec: 3:4,
                                                                  Server
                                                                  Server
     _ver: 2,
     name: “Jay”,
     surname: “Miner”
  },                                                                 Fast
  { _rec: 4:343,
     _ver: 0,                                                   binary protocol
     name: “Tim”,
     surname: “King”
  }
}
                                                                  Java
                                                                   Java
                                                               application
                                                                application
        For more information visit: http://www.orientechnologies.com
Security
   Encrypted
 password using                                                         “Reader“ Role
SHA-256 algorithm                                                       Mode = Deny all but

                                                                        Rules:
2 modes: “allow                                                         database = Read
all but” and “deny                                                      database.cluster.* = Read
                                                                        database.cluster.metadata = None
      all but”                                                          database.class.* = Read

Each user has one
  or more roles
                                                                        “Publisher“ Role
Default roles are:
reader, writer and                                                      Mode = Deny all but
     admin                  “Admin“ Role                                Rules:
                                                                        Database.Cluster.cars = All
                            Mode = Allow all but

                     For more information visit: http://www.orientechnologies.com
OrientDB Studio




For more information visit: http://www.orientechnologies.com
Orient Key/Value – Partitions in the Ring

                                                                                   Backup=1 in
                                                                                configuration means
                                                                              that each node backup
                        Keys range: S .. Z                                    data synchronously on
                                                                                   the next one.


                                                      Back
                                Node #1                    up                 Keys range: 0 .. F
 Each node is owner
of part of keys (Node


                                                 up
                                               ck
#1 the range S-Z) and
                                                              Ba


                                             Ba
                                                                 ck
  is responsable to                                       p         u
                                                                        Node #2
 synchronize them to
       the disk
                                                                                    The last node in
                                                                                  the Ring is the last
                                               Node #3                                one started
                                                         Keys range: G .. R



                   For more information visit: http://www.orientechnologies.com
Orient Key/Value – Update an entry

                                                                           The client (application or
                                                                           web-browser) connects to
          upd                                                               the owner node of the
             a   te b     Keys range: S .. Z                                   entry to update
                     and
                         :Co
                             ld p
                                 lay
                                                         Back
                                      Node #1                 up                     Keys range: 0 .. F
                          to   disk
                      e
                  sav



                                                     p
                                                   ku
                                                                 Ba



                                                  c
                                                Ba
                                                                    ck
                                                             p         u
                                                                              Node #2


  Node #1 is the owner of the
  updated entry: propagates
changes to the local disk and to                  Node #3
 backup node synchronously                                  Keys range: G .. R



                    For more information visit: http://www.orientechnologies.com
Orient Key/Value – Fail Over Management

                                                                               The Backup of Node #1
                                                                                 is the Node #2. The
                                                                                Node #2 becames the
                    Keys range: S .. Z                                          owner and assures to
                                                                                write all the entries to
                                                                                        the Disk

                                                  Back
                            Node #1                    up                 Keys range: S .. F


                                             up
                                           ck
                                                          Ba

                                         Ba
                                                             ck
                                                                              save to d
                                                                                       isk
                                                      p         u
Other Nodes envolved                                                Node #2
  change the backup
policies themselves. In
  this case Node #3
 backups on Node #2
     and viceversa                         Node #3
                                                     Keys range: G .. R


                    For more information visit: http://www.orientechnologies.com

Weitere ähnliche Inhalte

Was ist angesagt?

NOSQL Databases types and Uses
NOSQL Databases types and UsesNOSQL Databases types and Uses
NOSQL Databases types and UsesSuvradeep Rudra
 
Mongodb basics and architecture
Mongodb basics and architectureMongodb basics and architecture
Mongodb basics and architectureBishal Khanal
 
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
 
9. Document Oriented Databases
9. Document Oriented Databases9. Document Oriented Databases
9. Document Oriented DatabasesFabio Fumarola
 
Introduction to PostgreSQL
Introduction to PostgreSQLIntroduction to PostgreSQL
Introduction to PostgreSQLJim Mlodgenski
 
PostgreSQL- An Introduction
PostgreSQL- An IntroductionPostgreSQL- An Introduction
PostgreSQL- An IntroductionSmita Prasad
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databasesJames Serra
 
Parquet performance tuning: the missing guide
Parquet performance tuning: the missing guideParquet performance tuning: the missing guide
Parquet performance tuning: the missing guideRyan Blue
 
Change Data Feed in Delta
Change Data Feed in DeltaChange Data Feed in Delta
Change Data Feed in DeltaDatabricks
 
NoSQL databases - An introduction
NoSQL databases - An introductionNoSQL databases - An introduction
NoSQL databases - An introductionPooyan Mehrparvar
 
SQL vs MongoDB
SQL vs MongoDBSQL vs MongoDB
SQL vs MongoDBcalltutors
 
Apache sqoop with an use case
Apache sqoop with an use caseApache sqoop with an use case
Apache sqoop with an use caseDavin Abraham
 
Webinar: Working with Graph Data in MongoDB
Webinar: Working with Graph Data in MongoDBWebinar: Working with Graph Data in MongoDB
Webinar: Working with Graph Data in MongoDBMongoDB
 

Was ist angesagt? (20)

Postgresql
PostgresqlPostgresql
Postgresql
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
NOSQL Databases types and Uses
NOSQL Databases types and UsesNOSQL Databases types and Uses
NOSQL Databases types and Uses
 
NOSQL vs SQL
NOSQL vs SQLNOSQL vs SQL
NOSQL vs SQL
 
Mongodb basics and architecture
Mongodb basics and architectureMongodb basics and architecture
Mongodb basics and architecture
 
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
 
9. Document Oriented Databases
9. Document Oriented Databases9. Document Oriented Databases
9. Document Oriented Databases
 
Introduction to PostgreSQL
Introduction to PostgreSQLIntroduction to PostgreSQL
Introduction to PostgreSQL
 
PostgreSQL- An Introduction
PostgreSQL- An IntroductionPostgreSQL- An Introduction
PostgreSQL- An Introduction
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databases
 
Parquet performance tuning: the missing guide
Parquet performance tuning: the missing guideParquet performance tuning: the missing guide
Parquet performance tuning: the missing guide
 
Mongo DB
Mongo DBMongo DB
Mongo DB
 
SQOOP PPT
SQOOP PPTSQOOP PPT
SQOOP PPT
 
Change Data Feed in Delta
Change Data Feed in DeltaChange Data Feed in Delta
Change Data Feed in Delta
 
NoSQL databases - An introduction
NoSQL databases - An introductionNoSQL databases - An introduction
NoSQL databases - An introduction
 
SQL vs MongoDB
SQL vs MongoDBSQL vs MongoDB
SQL vs MongoDB
 
MongoDB
MongoDBMongoDB
MongoDB
 
Apache sqoop with an use case
Apache sqoop with an use caseApache sqoop with an use case
Apache sqoop with an use case
 
Webinar: Working with Graph Data in MongoDB
Webinar: Working with Graph Data in MongoDBWebinar: Working with Graph Data in MongoDB
Webinar: Working with Graph Data in MongoDB
 

Andere mochten auch

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 - 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
 
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
 
Presentation of OrientDB v2.2 - Webinar
Presentation of OrientDB v2.2 - WebinarPresentation of OrientDB v2.2 - Webinar
Presentation of OrientDB v2.2 - WebinarOrient Technologies
 
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
 
OrientDB distributed architecture 1.1
OrientDB distributed architecture 1.1OrientDB distributed architecture 1.1
OrientDB distributed architecture 1.1Luca 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
 
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
 
Graph Databases & OrientDB
Graph Databases & OrientDBGraph Databases & OrientDB
Graph Databases & OrientDBArpit Poladia
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - J On The Beach 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL  - J On The Beach 2016OrientDB - the 2nd generation of (Multi-Model) NoSQL  - J On The Beach 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - J On The Beach 2016Luigi Dell'Aquila
 
Austin Data Geeks - Why relationships are cool but join sucks
Austin Data Geeks - Why relationships are cool but join sucksAustin Data Geeks - Why relationships are cool but join sucks
Austin Data Geeks - Why relationships are cool but join sucksOrient Technologies
 
OrientDB & Hazelcast: In-Memory Distributed Graph Database
 OrientDB & Hazelcast: In-Memory Distributed Graph Database OrientDB & Hazelcast: In-Memory Distributed Graph Database
OrientDB & Hazelcast: In-Memory Distributed Graph DatabaseHazelcast
 
Geospatial Graphs made easy with OrientDB - Codemotion Spain
Geospatial Graphs made easy with OrientDB - Codemotion SpainGeospatial Graphs made easy with OrientDB - Codemotion Spain
Geospatial Graphs made easy with OrientDB - Codemotion SpainLuigi Dell'Aquila
 
Orient power point
Orient power pointOrient power point
Orient power pointmuneeb777
 
Optimizing Cypher Queries in Neo4j
Optimizing Cypher Queries in Neo4jOptimizing Cypher Queries in Neo4j
Optimizing Cypher Queries in Neo4jNeo4j
 
An overview of InfiniteGraph, the distributed graph database
An overview of InfiniteGraph, the distributed graph databaseAn overview of InfiniteGraph, the distributed graph database
An overview of InfiniteGraph, the distributed graph databaseInfiniteGraph
 
Dynamic Application Development by NodeJS ,AngularJS with OrientDB
Dynamic Application Development by NodeJS ,AngularJS with OrientDBDynamic Application Development by NodeJS ,AngularJS with OrientDB
Dynamic Application Development by NodeJS ,AngularJS with OrientDBApaichon Punopas
 
OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal...
OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal...OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal...
OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal...Alessandro Nadalin
 

Andere mochten auch (20)

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 - 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
 
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
 
Presentation of OrientDB v2.2 - Webinar
Presentation of OrientDB v2.2 - WebinarPresentation of OrientDB v2.2 - Webinar
Presentation of OrientDB v2.2 - Webinar
 
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
 
OrientDB distributed architecture 1.1
OrientDB distributed architecture 1.1OrientDB distributed architecture 1.1
OrientDB distributed architecture 1.1
 
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
 
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)
 
Graph Databases & OrientDB
Graph Databases & OrientDBGraph Databases & OrientDB
Graph Databases & OrientDB
 
OrientDB - the 2nd generation of (Multi-Model) NoSQL - J On The Beach 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL  - J On The Beach 2016OrientDB - the 2nd generation of (Multi-Model) NoSQL  - J On The Beach 2016
OrientDB - the 2nd generation of (Multi-Model) NoSQL - J On The Beach 2016
 
Austin Data Geeks - Why relationships are cool but join sucks
Austin Data Geeks - Why relationships are cool but join sucksAustin Data Geeks - Why relationships are cool but join sucks
Austin Data Geeks - Why relationships are cool but join sucks
 
OrientDB & Hazelcast: In-Memory Distributed Graph Database
 OrientDB & Hazelcast: In-Memory Distributed Graph Database OrientDB & Hazelcast: In-Memory Distributed Graph Database
OrientDB & Hazelcast: In-Memory Distributed Graph Database
 
Geospatial Graphs made easy with OrientDB - Codemotion Spain
Geospatial Graphs made easy with OrientDB - Codemotion SpainGeospatial Graphs made easy with OrientDB - Codemotion Spain
Geospatial Graphs made easy with OrientDB - Codemotion Spain
 
Orient power point
Orient power pointOrient power point
Orient power point
 
Optimizing Cypher Queries in Neo4j
Optimizing Cypher Queries in Neo4jOptimizing Cypher Queries in Neo4j
Optimizing Cypher Queries in Neo4j
 
An overview of InfiniteGraph, the distributed graph database
An overview of InfiniteGraph, the distributed graph databaseAn overview of InfiniteGraph, the distributed graph database
An overview of InfiniteGraph, the distributed graph database
 
Dynamic Application Development by NodeJS ,AngularJS with OrientDB
Dynamic Application Development by NodeJS ,AngularJS with OrientDBDynamic Application Development by NodeJS ,AngularJS with OrientDB
Dynamic Application Development by NodeJS ,AngularJS with OrientDB
 
OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal...
OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal...OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal...
OrientDB, the fastest document-based graph database @ Confoo 2014 in Montreal...
 
Jogo dos Substantivos
Jogo dos SubstantivosJogo dos Substantivos
Jogo dos Substantivos
 

Ähnlich wie NoSQL Database for the Internet Age

Terrastore - A document database for developers
Terrastore - A document database for developersTerrastore - A document database for developers
Terrastore - A document database for developersSergio Bossa
 
Big Data, Data Lake, Fast Data - Dataserialiation-Formats
Big Data, Data Lake, Fast Data - Dataserialiation-FormatsBig Data, Data Lake, Fast Data - Dataserialiation-Formats
Big Data, Data Lake, Fast Data - Dataserialiation-FormatsGuido Schmutz
 
Berlin Buzz Words - Apache Drill by Ted Dunning & Michael Hausenblas
Berlin Buzz Words - Apache Drill by Ted Dunning & Michael HausenblasBerlin Buzz Words - Apache Drill by Ted Dunning & Michael Hausenblas
Berlin Buzz Words - Apache Drill by Ted Dunning & Michael HausenblasMapR Technologies
 
Document Databases & RavenDB
Document Databases & RavenDBDocument Databases & RavenDB
Document Databases & RavenDBBrian Ritchie
 
Virtuoso Sponger - RDFizer Middleware for creating RDF from non RDF Data Sources
Virtuoso Sponger - RDFizer Middleware for creating RDF from non RDF Data SourcesVirtuoso Sponger - RDFizer Middleware for creating RDF from non RDF Data Sources
Virtuoso Sponger - RDFizer Middleware for creating RDF from non RDF Data Sourcesrumito
 
Guillotina: The Asyncio REST Resource API
Guillotina: The Asyncio REST Resource APIGuillotina: The Asyncio REST Resource API
Guillotina: The Asyncio REST Resource APINathan Van Gheem
 
Realm of the Mobile Database: an introduction to Realm
Realm of the Mobile Database: an introduction to RealmRealm of the Mobile Database: an introduction to Realm
Realm of the Mobile Database: an introduction to RealmMartin Grider
 
NoSQL: Why, When, and How
NoSQL: Why, When, and HowNoSQL: Why, When, and How
NoSQL: Why, When, and HowBigBlueHat
 
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...NoSQLmatters
 
node.js: Javascript's in your backend
node.js: Javascript's in your backendnode.js: Javascript's in your backend
node.js: Javascript's in your backendDavid Padbury
 
Workshop: Learning Elasticsearch
Workshop: Learning ElasticsearchWorkshop: Learning Elasticsearch
Workshop: Learning ElasticsearchAnurag Patel
 
NoSQL Endgame DevoxxUA Conference 2020
NoSQL Endgame DevoxxUA Conference 2020NoSQL Endgame DevoxxUA Conference 2020
NoSQL Endgame DevoxxUA Conference 2020Thodoris Bais
 
Hands On Spring Data
Hands On Spring DataHands On Spring Data
Hands On Spring DataEric Bottard
 
Boost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
Boost Your Environment With XMLDB - UKOUG 2008 - Marco GralikeBoost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
Boost Your Environment With XMLDB - UKOUG 2008 - Marco GralikeMarco Gralike
 
JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011Shreedhar Ganapathy
 
Import web resources using R Studio
Import web resources using R StudioImport web resources using R Studio
Import web resources using R StudioRupak Roy
 

Ähnlich wie NoSQL Database for the Internet Age (20)

Guillotina
GuillotinaGuillotina
Guillotina
 
Terrastore - A document database for developers
Terrastore - A document database for developersTerrastore - A document database for developers
Terrastore - A document database for developers
 
Big Data, Data Lake, Fast Data - Dataserialiation-Formats
Big Data, Data Lake, Fast Data - Dataserialiation-FormatsBig Data, Data Lake, Fast Data - Dataserialiation-Formats
Big Data, Data Lake, Fast Data - Dataserialiation-Formats
 
Berlin Buzz Words - Apache Drill by Ted Dunning & Michael Hausenblas
Berlin Buzz Words - Apache Drill by Ted Dunning & Michael HausenblasBerlin Buzz Words - Apache Drill by Ted Dunning & Michael Hausenblas
Berlin Buzz Words - Apache Drill by Ted Dunning & Michael Hausenblas
 
Document Databases & RavenDB
Document Databases & RavenDBDocument Databases & RavenDB
Document Databases & RavenDB
 
Virtuoso Sponger - RDFizer Middleware for creating RDF from non RDF Data Sources
Virtuoso Sponger - RDFizer Middleware for creating RDF from non RDF Data SourcesVirtuoso Sponger - RDFizer Middleware for creating RDF from non RDF Data Sources
Virtuoso Sponger - RDFizer Middleware for creating RDF from non RDF Data Sources
 
Guillotina: The Asyncio REST Resource API
Guillotina: The Asyncio REST Resource APIGuillotina: The Asyncio REST Resource API
Guillotina: The Asyncio REST Resource API
 
Realm of the Mobile Database: an introduction to Realm
Realm of the Mobile Database: an introduction to RealmRealm of the Mobile Database: an introduction to Realm
Realm of the Mobile Database: an introduction to Realm
 
REST easy with API Platform
REST easy with API PlatformREST easy with API Platform
REST easy with API Platform
 
The Glory of Rest
The Glory of RestThe Glory of Rest
The Glory of Rest
 
NoSQL: Why, When, and How
NoSQL: Why, When, and HowNoSQL: Why, When, and How
NoSQL: Why, When, and How
 
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
Benjamin Guinebertière - Microsoft Azure: Document DB and other noSQL databas...
 
node.js: Javascript's in your backend
node.js: Javascript's in your backendnode.js: Javascript's in your backend
node.js: Javascript's in your backend
 
Workshop: Learning Elasticsearch
Workshop: Learning ElasticsearchWorkshop: Learning Elasticsearch
Workshop: Learning Elasticsearch
 
Play framework
Play frameworkPlay framework
Play framework
 
NoSQL Endgame DevoxxUA Conference 2020
NoSQL Endgame DevoxxUA Conference 2020NoSQL Endgame DevoxxUA Conference 2020
NoSQL Endgame DevoxxUA Conference 2020
 
Hands On Spring Data
Hands On Spring DataHands On Spring Data
Hands On Spring Data
 
Boost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
Boost Your Environment With XMLDB - UKOUG 2008 - Marco GralikeBoost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
Boost Your Environment With XMLDB - UKOUG 2008 - Marco Gralike
 
JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011
 
Import web resources using R Studio
Import web resources using R StudioImport web resources using R Studio
Import web resources using R Studio
 

Mehr von Luca Garulli

Scale Out Your Graph Across Servers and Clouds with OrientDB
Scale Out Your Graph Across Servers and Clouds  with OrientDBScale Out Your Graph Across Servers and Clouds  with OrientDB
Scale Out Your Graph Across Servers and Clouds with OrientDBLuca 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
 
OrientDB and Hazelcast
OrientDB and HazelcastOrientDB and Hazelcast
OrientDB and HazelcastLuca 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
 
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
 
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
 
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
 

Mehr von Luca Garulli (16)

Scale Out Your Graph Across Servers and Clouds with OrientDB
Scale Out Your Graph Across Servers and Clouds  with OrientDBScale Out Your Graph Across Servers and Clouds  with OrientDB
Scale Out Your Graph Across Servers and Clouds with OrientDB
 
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
 
OrientDB and Hazelcast
OrientDB and HazelcastOrientDB and Hazelcast
OrientDB and Hazelcast
 
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
 
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
 
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
 
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
 

Kürzlich hochgeladen

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
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
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 

Kürzlich hochgeladen (20)

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 

NoSQL Database for the Internet Age

  • 1. “A NoSQL Database for the Internet age” www.OrienTechnologies.com Author of OrientDB and Roma Luca Garulli Luca Garulli Framework Open Source projects, CTO@AssetData.it CTO@AssetData.it CTO at Asset Data company, http://zion-city.blogspot.com http://zion-city.blogspot.com Technical Manager at Romulus http://twitter.com/lgarulli http://twitter.com/lgarulli consortium
  • 2. NoSQL movement “In recent years, a number of new systems, sometimes called “NoSQL” systems, have been introduced to provide indexed data storage that is much higher performance than existing relational database products like MySQL, Oracle, DB2, and SQL Server. These data storage systems have a number of features in common: ● A simple call level interface or protocol (in contrast to a SQL binding) ● Ability to horizontally scale throughput over many servers, ● Efficient use of distributed indexes and RAM for data storage, and ● The ability to dynamically define new attributes or data schema“ from “High Performance Scalable Data Stores” by Rick Cattell For more information visit: http://www.orientechnologies.com
  • 3. Products There are two main products released with commercial friendly Open Source Apache 2 license Deeply scalable Document based DBMS that uses the The Key/Value Server based on the features of the Graph Databases to handle links. It's the Document Database technology and basic engine of all the Orient products. It can work in accessible as embedded repository schema-less mode, schema-full or a mix of both. via Java APIs or via HTTP using a RESTful API. Orient K/V uses a new Supports advanced features, such as indexing, fluent and algorithm called RB+Tree, derived SQL-like queries. It handles natively JSON and XML from the Red-Black Tree and from the documents. Developers can use Java native and HTTP B+Tree. RESTful APIs Orient Key/Value server can run in Graphs of hundreads of linked objects can be retrieved all high availability mode using a in memory in less than 1ms without executing costly JOINs cluster of multiple nodes partitioned. such as the Relational DBMSs do. For more information visit: http://www.orientechnologies.com
  • 5. Cluster concept Class “Profile“ has records distributed on multiple clusters. Class “Profile“ Class “Profile“ Cluster “FamousProfile“ Cluster “FamousProfile“ All the other Type = physical Type = physical profiles will be stored into the Jay Miner Bill Gates “OtherProfile“ cluster of type “logical“ The “FamousProfile“ cluster contains all the profile of the most famous people and it's supposed to being accessed frequently. This Cluster “Twit“ Cluster “OtherProfile“ is the reason why we selected Cluster “Twit“ Cluster “OtherProfile“ Type = physical Type = logical “physical“ as type. Type = physical Type = logical For more information visit: http://www.orientechnologies.com
  • 6. APIs OrientDB is written 100% in Java® and can run on any platform that supports the Java® Technology version 5 or more. OrientDB supports native Java client API to work with embedded or remote databases using the fast binary protocol OrientDB Server comes with a HTTP RESTful interface to being used from any language, even from the Internet Browser. Uses JSON to represents records For more information visit: http://www.orientechnologies.com
  • 7. Java example with records // OPEN THE DATABASE ODatabaseDocumentTx db = new ODatabaseDocumentTx("remote:localhost/demo").open("admin", "admin"); // CREATE A NEW DOCUMENT AND FILL IT ODocument doc = new ODocument(db, "Person"); This is a doc.field( "name", "Luke" ); relationship doc.field( "surname", "Skywalker" ); Many-to-One doc.field( "city", new ODocument("City" ).field("name","Rome").field("country", "Italy") ); // SAVE THE DOCUMENT doc.save(); // QUERY THE DOCUMENT Query using the List<ODocument> result = database.query( SQL syntax with new OSQLSynchQuery("select * from person where city.name = 'Rome'")).execute(); extensions to traverse links // PRINT THE RESULT SET for( ODocument d : result ){ without costly System.out.println("Person: " + d.field( "name" ) + d.field( "surname" )); JOINs } db.close(); For more information visit: http://www.orientechnologies.com
  • 8. Object Database interface Even if OrientDB is not an ODBMS (but is a Document DBMS), it offers the ODatabaseObject interface to works with POJOs in transparent way removing the Impedence Mismatch problem Fields not present in the real Java class will be not mapped but saved with the original record Queries convert automatically records to POJOs References between POJO can be stored as links (aka relationships) or by including the referenced object as embedded. For more information visit: http://www.orientechnologies.com
  • 9. Java example with POJOs // OPEN THE DATABASE ODatabaseObjectTx db = new ODatabaseObjectTx("remote:localhost/demo").open("admin", "admin"); // CREATE A NEW OBJECT AND FILL IT Person person = new Person(); Automatic person.setName( "Luke" ); binding from person.setSurname( "Skywalker" ); person.setCity( new City( "Rome", "Italy") ); POJO to record // SAVE THE OBJECT db.save( person ); Query returns directly List of POJO. Queries use the // QUERY THE OBJECT cache before to load the List<Person> result = database.query( records from the storage new OSQLSynchQuery("select from person where city.name = 'Rome'")); // PRINT THE RESULT SET for( Person p : result ){ System.out.println("Person: " + p.getName() + “ “ + p.getSurname() ); The POJOs } are usable as usually db.close(); For more information visit: http://www.orientechnologies.com
  • 10. HTTP RESTful API select from Profile where project = 'Amiga' HTTP RESTful protocol (JSON) OrientDB OrientDB { result : { _rec: 3:4, Server Server _ver: 2, name: “Jay”, surname: “Miner” }, Fast { _rec: 4:343, _ver: 0, binary protocol name: “Tim”, surname: “King” } } Java Java application application For more information visit: http://www.orientechnologies.com
  • 11. Security Encrypted password using “Reader“ Role SHA-256 algorithm Mode = Deny all but Rules: 2 modes: “allow database = Read all but” and “deny database.cluster.* = Read database.cluster.metadata = None all but” database.class.* = Read Each user has one or more roles “Publisher“ Role Default roles are: reader, writer and Mode = Deny all but admin “Admin“ Role Rules: Database.Cluster.cars = All Mode = Allow all but For more information visit: http://www.orientechnologies.com
  • 12. OrientDB Studio For more information visit: http://www.orientechnologies.com
  • 13. Orient Key/Value – Partitions in the Ring Backup=1 in configuration means that each node backup Keys range: S .. Z data synchronously on the next one. Back Node #1 up Keys range: 0 .. F Each node is owner of part of keys (Node up ck #1 the range S-Z) and Ba Ba ck is responsable to p u Node #2 synchronize them to the disk The last node in the Ring is the last Node #3 one started Keys range: G .. R For more information visit: http://www.orientechnologies.com
  • 14. Orient Key/Value – Update an entry The client (application or web-browser) connects to upd the owner node of the a te b Keys range: S .. Z entry to update and :Co ld p lay Back Node #1 up Keys range: 0 .. F to disk e sav p ku Ba c Ba ck p u Node #2 Node #1 is the owner of the updated entry: propagates changes to the local disk and to Node #3 backup node synchronously Keys range: G .. R For more information visit: http://www.orientechnologies.com
  • 15. Orient Key/Value – Fail Over Management The Backup of Node #1 is the Node #2. The Node #2 becames the Keys range: S .. Z owner and assures to write all the entries to the Disk Back Node #1 up Keys range: S .. F up ck Ba Ba ck save to d isk p u Other Nodes envolved Node #2 change the backup policies themselves. In this case Node #3 backups on Node #2 and viceversa Node #3 Keys range: G .. R For more information visit: http://www.orientechnologies.com