SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
—The	
  universal	
  mul$	
  model	
  database	
  —	
  	
  




       mar$n	
  Schoenert,	
  triAGENS	
  
                       2012/10/06	
  
Approaching	
  ArangoDB	
  

               •  Universal	
  mul$	
  model	
  
                  database	
  
               •  Mostly	
  memory	
  




               Open	
  source	
  
                                    –  Free	
  as	
  in	
  beer	
  
                                    –  Lives	
  on	
  GitHub	
  
                                    –  Apache	
  License	
  V2	
  


               •  Started	
  in	
  Sep	
  2011	
  
               •  Version	
  1	
  in	
  Sep	
  2012	
  
Why	
  did	
  we	
  start	
  with	
  ArangoDB?	
  
•  Ini$al	
  ques$ons:	
  	
  
     –  “How	
  should	
  an	
  ideal	
  universal	
  database	
  look	
  like?”	
  
     –  “Is	
  it	
  already	
  out	
  there?”	
  
•  ArangoDB	
  
     –    unique	
  feature	
  set	
  	
  
     –    solves	
  some	
  problems	
  of	
  other	
  nosql	
  DBs	
  
     –    greenfield	
  project	
  
     –    led	
  by	
  experience	
  	
  
Projects	
  benefit	
  from	
  a	
  universal	
  DB	
  

Requirements	
  evolve:	
  


           “We	
  need	
  some	
  loca$on	
  based	
  services.”	
  



           “Please	
  add	
  a	
  recommenda$on	
  system.”	
  



           “We	
  have	
  many	
  users	
  now.	
  It	
  must	
  s$ll	
  be	
  fast.”	
  
A	
  growing	
  community	
  

                   ..	
  working	
  on	
  the	
  	
  geo	
  index,	
  
                   the	
  full	
  text	
  search	
  and	
  
                   many	
  APIs:	
  	
  Ruby,	
  Python,	
  
                   PHP,	
  JAVA,	
  D,	
  ...	
  
Voices	
  from	
  the	
  audience	
  




                                                             Recommenda$on	
  from	
  Mr.	
  
                                                             Ruby	
  himself	
  	
  J	
  




“Because	
  AvocadoDB	
  (aka	
  ArangoDB)	
  
came	
  out,	
  energy	
  to	
  write	
  D	
  language	
  
client	
  of	
  [AnotherDB]	
  has	
  faded	
  away	
  
completely”.	
  
ArangoDB	
  –	
  a	
  mul$-­‐model	
  database	
  




Key/Value	
  Store	
     Graph	
  Database	
              Document	
  Store	
  
                         Source:	
  Andrew	
  Carol	
  
Accessing	
  data	
  
               REST	
  interface	
  

                GET     /_api/document/document-handle
                PUT     /_api/document/document-handle


Query	
  by	
  example	
  
 db.users.byExample({ "age" : 42 }).toArray();
 db.cities.near( "latitude" : 50, "longitude“ :7).
 limit(5).toArray();


 ArangoDB	
  query	
  language	
  (AQL)	
  
 FOR u in Users
   FILTER u.address.country == "USA"
   SORT u.address.city
   RETURN { name : u.name, city : u.address.city }
Extend	
  ArangoDB	
  via	
  “ac$ons”	
  
                 •  Pimp	
  ArangoDB	
  using	
  ac$ons	
  with	
  
                    extra	
  features	
  in	
  
                       –  Ruby	
  (mruby	
  =	
  embedded	
  Ruby)	
  
                       –  Javascript	
  (V8)	
  
                 •  Do	
  it	
  in	
  a	
  performing	
  way	
  (close	
  to	
  
                    the	
  data)	
  
                       	
  

                 Ac$ons	
  enrich	
  ArangoDB	
  
                 •  Transac$ons	
  
                 •  Cascading	
  deletes/updates	
  
                 •  Assign	
  permissions	
  to	
  ac$ons	
  
                 •  Wrap	
  everything	
  in	
  a	
  protocol	
  (e.g.	
  
                    LDAP)	
  
Replica$on	
  &	
  sharding	
  
Replica$on:	
  	
  
• 	
  Coming	
  in	
  V2	
  	
  
• 	
  Master/master	
  	
  or	
  master/slave	
  	
  
• 	
  Sync	
  or	
  async	
  	
  
	
  
                                                        Sharding:	
  	
  
                                                        • 	
  Sharding	
  is	
  for	
  LARGE	
  data	
  sets	
  
                                                        • 	
  How	
  many	
  tera	
  bytes	
  of	
  data	
  do	
  you	
  have?	
  	
  	
  
                                                        • 	
  Let’s	
  discuss	
  this	
  feature!	
  
Technology	
  

       •  Indices	
  
           –  Skip	
  lists,	
  geo	
  index,	
  FTS	
  


       •  Shapes	
  
           –  schema	
  free/schemes	
  


       •  Mul$version	
  
          Concurrency	
  
           –  memory-­‐mapped-­‐files	
  
           –  garbage	
  collec$on	
  
Performance	
  

Inser$ng	
  1	
  million	
  documents	
  =>	
  24,3	
  seconds	
  	
  
41.200	
  inserts/second	
  



 Reading	
  1	
  million	
  documents	
  =>	
  93,6	
  seconds	
  
 10.600	
  requests/second	
  


  Primary	
  index	
  lookup	
  &	
  return	
  of	
  the	
  document	
  
  using	
  AQL:	
  
  	
  
  	
  	
  	
  	
  	
  	
  FOR	
  u	
  IN	
  users	
  FILTER	
  u._id	
  ==	
  ”<docId>"	
  RETURN	
  u	
  
  	
  
  1	
  million	
  HTTP	
  requests	
  =>	
  94,1	
  seconds	
  	
  
  10.600	
  requests/second	
  
Get	
  in	
  touch	
  ::	
  join	
  the	
  team	
  




hrp://www.arangodb.org	
  
hrps://github.com/triAGENS/ArangoDB/	
  
Google	
  Group:	
  ArangoDB	
  
Twirer:	
  @ArangoDB	
  
	
  

Más contenido relacionado

La actualidad más candente

Introduction to Foxx by our community member Iskandar Soesman @ikandars
Introduction to Foxx by our community member Iskandar Soesman @ikandarsIntroduction to Foxx by our community member Iskandar Soesman @ikandars
Introduction to Foxx by our community member Iskandar Soesman @ikandarsArangoDB Database
 
Performance comparison: Multi-Model vs. MongoDB and Neo4j
Performance comparison: Multi-Model vs. MongoDB and Neo4jPerformance comparison: Multi-Model vs. MongoDB and Neo4j
Performance comparison: Multi-Model vs. MongoDB and Neo4jArangoDB Database
 
Extensible Database APIs and their role in Software Architecture
Extensible Database APIs and their role in Software ArchitectureExtensible Database APIs and their role in Software Architecture
Extensible Database APIs and their role in Software ArchitectureMax Neunhöffer
 
Webinar: How native multi model works in ArangoDB
Webinar: How native multi model works in ArangoDBWebinar: How native multi model works in ArangoDB
Webinar: How native multi model works in ArangoDBArangoDB Database
 
Overhauling a database engine in 2 months
Overhauling a database engine in 2 monthsOverhauling a database engine in 2 months
Overhauling a database engine in 2 monthsMax Neunhöffer
 
Deep dive into the native multi model database ArangoDB
Deep dive into the native multi model database ArangoDBDeep dive into the native multi model database ArangoDB
Deep dive into the native multi model database ArangoDBArangoDB Database
 
Visualize your graph database
Visualize your graph databaseVisualize your graph database
Visualize your graph databaseMichael Hackstein
 
Rapid API Development ArangoDB Foxx
Rapid API Development ArangoDB FoxxRapid API Development ArangoDB Foxx
Rapid API Development ArangoDB FoxxMichael Hackstein
 
Backbone using Extensible Database APIs over HTTP
Backbone using Extensible Database APIs over HTTPBackbone using Extensible Database APIs over HTTP
Backbone using Extensible Database APIs over HTTPMax Neunhöffer
 
NoSQL and MapReduce
NoSQL and MapReduceNoSQL and MapReduce
NoSQL and MapReduceJ Singh
 
NoSQL: Why, When, and How
NoSQL: Why, When, and HowNoSQL: Why, When, and How
NoSQL: Why, When, and HowBigBlueHat
 
01 nosql and multi model database
01   nosql and multi model database01   nosql and multi model database
01 nosql and multi model databaseMahdi Atawneh
 
Nosql databases for the .net developer
Nosql databases for the .net developerNosql databases for the .net developer
Nosql databases for the .net developerJesus Rodriguez
 

La actualidad más candente (20)

Introduction to Foxx by our community member Iskandar Soesman @ikandars
Introduction to Foxx by our community member Iskandar Soesman @ikandarsIntroduction to Foxx by our community member Iskandar Soesman @ikandars
Introduction to Foxx by our community member Iskandar Soesman @ikandars
 
Performance comparison: Multi-Model vs. MongoDB and Neo4j
Performance comparison: Multi-Model vs. MongoDB and Neo4jPerformance comparison: Multi-Model vs. MongoDB and Neo4j
Performance comparison: Multi-Model vs. MongoDB and Neo4j
 
Extensible Database APIs and their role in Software Architecture
Extensible Database APIs and their role in Software ArchitectureExtensible Database APIs and their role in Software Architecture
Extensible Database APIs and their role in Software Architecture
 
Webinar: How native multi model works in ArangoDB
Webinar: How native multi model works in ArangoDBWebinar: How native multi model works in ArangoDB
Webinar: How native multi model works in ArangoDB
 
Overhauling a database engine in 2 months
Overhauling a database engine in 2 monthsOverhauling a database engine in 2 months
Overhauling a database engine in 2 months
 
Deep dive into the native multi model database ArangoDB
Deep dive into the native multi model database ArangoDBDeep dive into the native multi model database ArangoDB
Deep dive into the native multi model database ArangoDB
 
Visualize your graph database
Visualize your graph databaseVisualize your graph database
Visualize your graph database
 
CouchDB
CouchDBCouchDB
CouchDB
 
Rapid API Development ArangoDB Foxx
Rapid API Development ArangoDB FoxxRapid API Development ArangoDB Foxx
Rapid API Development ArangoDB Foxx
 
Backbone using Extensible Database APIs over HTTP
Backbone using Extensible Database APIs over HTTPBackbone using Extensible Database APIs over HTTP
Backbone using Extensible Database APIs over HTTP
 
Practical Use of a NoSQL
Practical Use of a NoSQLPractical Use of a NoSQL
Practical Use of a NoSQL
 
NoSQL and MapReduce
NoSQL and MapReduceNoSQL and MapReduce
NoSQL and MapReduce
 
NoSQL: Why, When, and How
NoSQL: Why, When, and HowNoSQL: Why, When, and How
NoSQL: Why, When, and How
 
Multi model-databases
Multi model-databasesMulti model-databases
Multi model-databases
 
01 nosql and multi model database
01   nosql and multi model database01   nosql and multi model database
01 nosql and multi model database
 
NoSQL
NoSQLNoSQL
NoSQL
 
Oslo bekk2014
Oslo bekk2014Oslo bekk2014
Oslo bekk2014
 
Nosql databases for the .net developer
Nosql databases for the .net developerNosql databases for the .net developer
Nosql databases for the .net developer
 
NoSQL for SQL Users
NoSQL for SQL UsersNoSQL for SQL Users
NoSQL for SQL Users
 
Couch db
Couch dbCouch db
Couch db
 

Similar a Introduction to ArangoDB (nosql matters Barcelona 2012)

Global Big Data Conference Sept 2014 AWS Kinesis Spark Streaming Approximatio...
Global Big Data Conference Sept 2014 AWS Kinesis Spark Streaming Approximatio...Global Big Data Conference Sept 2014 AWS Kinesis Spark Streaming Approximatio...
Global Big Data Conference Sept 2014 AWS Kinesis Spark Streaming Approximatio...Chris Fregly
 
Michael stack -the state of apache h base
Michael stack -the state of apache h baseMichael stack -the state of apache h base
Michael stack -the state of apache h basehdhappy001
 
2014-10-20 Large-Scale Machine Learning with Apache Spark at Internet of Thin...
2014-10-20 Large-Scale Machine Learning with Apache Spark at Internet of Thin...2014-10-20 Large-Scale Machine Learning with Apache Spark at Internet of Thin...
2014-10-20 Large-Scale Machine Learning with Apache Spark at Internet of Thin...DB Tsai
 
Scaling Spark Workloads on YARN - Boulder/Denver July 2015
Scaling Spark Workloads on YARN - Boulder/Denver July 2015Scaling Spark Workloads on YARN - Boulder/Denver July 2015
Scaling Spark Workloads on YARN - Boulder/Denver July 2015Mac Moore
 
Spring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_dataSpring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_dataRoger Xia
 
East Bay Java User Group Oct 2014 Spark Streaming Kinesis Machine Learning
 East Bay Java User Group Oct 2014 Spark Streaming Kinesis Machine Learning East Bay Java User Group Oct 2014 Spark Streaming Kinesis Machine Learning
East Bay Java User Group Oct 2014 Spark Streaming Kinesis Machine LearningChris Fregly
 
Introduction to Apache Spark Ecosystem
Introduction to Apache Spark EcosystemIntroduction to Apache Spark Ecosystem
Introduction to Apache Spark EcosystemBojan Babic
 
From R Script to Production Using rsparkling with Navdeep Gill
From R Script to Production Using rsparkling with Navdeep GillFrom R Script to Production Using rsparkling with Navdeep Gill
From R Script to Production Using rsparkling with Navdeep GillDatabricks
 
H2O Rains with Databricks Cloud - NY 02.16.16
H2O Rains with Databricks Cloud - NY 02.16.16H2O Rains with Databricks Cloud - NY 02.16.16
H2O Rains with Databricks Cloud - NY 02.16.16Sri Ambati
 
Introduction to Cassandra and CQL for Java developers
Introduction to Cassandra and CQL for Java developersIntroduction to Cassandra and CQL for Java developers
Introduction to Cassandra and CQL for Java developersJulien Anguenot
 
Lessons learned from running Spark on Docker
Lessons learned from running Spark on DockerLessons learned from running Spark on Docker
Lessons learned from running Spark on DockerDataWorks Summit
 
Real time Analytics with Apache Kafka and Apache Spark
Real time Analytics with Apache Kafka and Apache SparkReal time Analytics with Apache Kafka and Apache Spark
Real time Analytics with Apache Kafka and Apache SparkRahul Jain
 
H2O Rains with Databricks Cloud - Parisoma SF
H2O Rains with Databricks Cloud - Parisoma SFH2O Rains with Databricks Cloud - Parisoma SF
H2O Rains with Databricks Cloud - Parisoma SFSri Ambati
 
Non Relational Databases
Non Relational DatabasesNon Relational Databases
Non Relational DatabasesChris Baglieri
 
Scala and Spark are Ideal for Big Data - Data Science Pop-up Seattle
Scala and Spark are Ideal for Big Data - Data Science Pop-up SeattleScala and Spark are Ideal for Big Data - Data Science Pop-up Seattle
Scala and Spark are Ideal for Big Data - Data Science Pop-up SeattleDomino Data Lab
 
New Analytics Toolbox DevNexus 2015
New Analytics Toolbox DevNexus 2015New Analytics Toolbox DevNexus 2015
New Analytics Toolbox DevNexus 2015Robbie Strickland
 
Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...
Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...
Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...Uwe Korn
 

Similar a Introduction to ArangoDB (nosql matters Barcelona 2012) (20)

Global Big Data Conference Sept 2014 AWS Kinesis Spark Streaming Approximatio...
Global Big Data Conference Sept 2014 AWS Kinesis Spark Streaming Approximatio...Global Big Data Conference Sept 2014 AWS Kinesis Spark Streaming Approximatio...
Global Big Data Conference Sept 2014 AWS Kinesis Spark Streaming Approximatio...
 
Michael stack -the state of apache h base
Michael stack -the state of apache h baseMichael stack -the state of apache h base
Michael stack -the state of apache h base
 
2014-10-20 Large-Scale Machine Learning with Apache Spark at Internet of Thin...
2014-10-20 Large-Scale Machine Learning with Apache Spark at Internet of Thin...2014-10-20 Large-Scale Machine Learning with Apache Spark at Internet of Thin...
2014-10-20 Large-Scale Machine Learning with Apache Spark at Internet of Thin...
 
Scaling Spark Workloads on YARN - Boulder/Denver July 2015
Scaling Spark Workloads on YARN - Boulder/Denver July 2015Scaling Spark Workloads on YARN - Boulder/Denver July 2015
Scaling Spark Workloads on YARN - Boulder/Denver July 2015
 
Spring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_dataSpring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_data
 
East Bay Java User Group Oct 2014 Spark Streaming Kinesis Machine Learning
 East Bay Java User Group Oct 2014 Spark Streaming Kinesis Machine Learning East Bay Java User Group Oct 2014 Spark Streaming Kinesis Machine Learning
East Bay Java User Group Oct 2014 Spark Streaming Kinesis Machine Learning
 
Apache Drill
Apache DrillApache Drill
Apache Drill
 
Introduction to Apache Spark Ecosystem
Introduction to Apache Spark EcosystemIntroduction to Apache Spark Ecosystem
Introduction to Apache Spark Ecosystem
 
From R Script to Production Using rsparkling with Navdeep Gill
From R Script to Production Using rsparkling with Navdeep GillFrom R Script to Production Using rsparkling with Navdeep Gill
From R Script to Production Using rsparkling with Navdeep Gill
 
H2O Rains with Databricks Cloud - NY 02.16.16
H2O Rains with Databricks Cloud - NY 02.16.16H2O Rains with Databricks Cloud - NY 02.16.16
H2O Rains with Databricks Cloud - NY 02.16.16
 
Introduction to Cassandra and CQL for Java developers
Introduction to Cassandra and CQL for Java developersIntroduction to Cassandra and CQL for Java developers
Introduction to Cassandra and CQL for Java developers
 
Lessons learned from running Spark on Docker
Lessons learned from running Spark on DockerLessons learned from running Spark on Docker
Lessons learned from running Spark on Docker
 
Real time Analytics with Apache Kafka and Apache Spark
Real time Analytics with Apache Kafka and Apache SparkReal time Analytics with Apache Kafka and Apache Spark
Real time Analytics with Apache Kafka and Apache Spark
 
H2O Rains with Databricks Cloud - Parisoma SF
H2O Rains with Databricks Cloud - Parisoma SFH2O Rains with Databricks Cloud - Parisoma SF
H2O Rains with Databricks Cloud - Parisoma SF
 
Intro to Apache Spark
Intro to Apache SparkIntro to Apache Spark
Intro to Apache Spark
 
Non Relational Databases
Non Relational DatabasesNon Relational Databases
Non Relational Databases
 
Scala and Spark are Ideal for Big Data - Data Science Pop-up Seattle
Scala and Spark are Ideal for Big Data - Data Science Pop-up SeattleScala and Spark are Ideal for Big Data - Data Science Pop-up Seattle
Scala and Spark are Ideal for Big Data - Data Science Pop-up Seattle
 
New Analytics Toolbox DevNexus 2015
New Analytics Toolbox DevNexus 2015New Analytics Toolbox DevNexus 2015
New Analytics Toolbox DevNexus 2015
 
Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...
Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...
Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...
 
Drill dchug-29 nov2012
Drill dchug-29 nov2012Drill dchug-29 nov2012
Drill dchug-29 nov2012
 

Más de ArangoDB Database

ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....
ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....
ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....ArangoDB Database
 
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022ArangoDB Database
 
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022ArangoDB Database
 
ArangoDB 3.9 - Further Powering Graphs at Scale
ArangoDB 3.9 - Further Powering Graphs at ScaleArangoDB 3.9 - Further Powering Graphs at Scale
ArangoDB 3.9 - Further Powering Graphs at ScaleArangoDB Database
 
GraphSage vs Pinsage #InsideArangoDB
GraphSage vs Pinsage #InsideArangoDBGraphSage vs Pinsage #InsideArangoDB
GraphSage vs Pinsage #InsideArangoDBArangoDB Database
 
Webinar: ArangoDB 3.8 Preview - Analytics at Scale
Webinar: ArangoDB 3.8 Preview - Analytics at Scale Webinar: ArangoDB 3.8 Preview - Analytics at Scale
Webinar: ArangoDB 3.8 Preview - Analytics at Scale ArangoDB Database
 
Graph Analytics with ArangoDB
Graph Analytics with ArangoDBGraph Analytics with ArangoDB
Graph Analytics with ArangoDBArangoDB Database
 
Getting Started with ArangoDB Oasis
Getting Started with ArangoDB OasisGetting Started with ArangoDB Oasis
Getting Started with ArangoDB OasisArangoDB Database
 
Custom Pregel Algorithms in ArangoDB
Custom Pregel Algorithms in ArangoDBCustom Pregel Algorithms in ArangoDB
Custom Pregel Algorithms in ArangoDBArangoDB Database
 
Hacktoberfest 2020 - Intro to Knowledge Graphs
Hacktoberfest 2020 - Intro to Knowledge GraphsHacktoberfest 2020 - Intro to Knowledge Graphs
Hacktoberfest 2020 - Intro to Knowledge GraphsArangoDB Database
 
A Graph Database That Scales - ArangoDB 3.7 Release Webinar
A Graph Database That Scales - ArangoDB 3.7 Release WebinarA Graph Database That Scales - ArangoDB 3.7 Release Webinar
A Graph Database That Scales - ArangoDB 3.7 Release WebinarArangoDB Database
 
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
 
ArangoML Pipeline Cloud - Managed Machine Learning Metadata
ArangoML Pipeline Cloud - Managed Machine Learning MetadataArangoML Pipeline Cloud - Managed Machine Learning Metadata
ArangoML Pipeline Cloud - Managed Machine Learning MetadataArangoDB Database
 
ArangoDB 3.7 Roadmap: Performance at Scale
ArangoDB 3.7 Roadmap: Performance at ScaleArangoDB 3.7 Roadmap: Performance at Scale
ArangoDB 3.7 Roadmap: Performance at ScaleArangoDB Database
 
Webinar: What to expect from ArangoDB Oasis
Webinar: What to expect from ArangoDB OasisWebinar: What to expect from ArangoDB Oasis
Webinar: What to expect from ArangoDB OasisArangoDB Database
 
ArangoDB 3.5 Feature Overview Webinar - Sept 12, 2019
ArangoDB 3.5 Feature Overview Webinar - Sept 12, 2019ArangoDB 3.5 Feature Overview Webinar - Sept 12, 2019
ArangoDB 3.5 Feature Overview Webinar - Sept 12, 2019ArangoDB Database
 
An introduction to multi-model databases
An introduction to multi-model databasesAn introduction to multi-model databases
An introduction to multi-model databasesArangoDB Database
 
Running complex data queries in a distributed system
Running complex data queries in a distributed systemRunning complex data queries in a distributed system
Running complex data queries in a distributed systemArangoDB Database
 
Guacamole Fiesta: What do avocados and databases have in common?
Guacamole Fiesta: What do avocados and databases have in common?Guacamole Fiesta: What do avocados and databases have in common?
Guacamole Fiesta: What do avocados and databases have in common?ArangoDB Database
 

Más de ArangoDB Database (20)

ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....
ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....
ATO 2022 - Machine Learning + Graph Databases for Better Recommendations (3)....
 
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022
Machine Learning + Graph Databases for Better Recommendations V2 08/20/2022
 
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022
Machine Learning + Graph Databases for Better Recommendations V1 08/06/2022
 
ArangoDB 3.9 - Further Powering Graphs at Scale
ArangoDB 3.9 - Further Powering Graphs at ScaleArangoDB 3.9 - Further Powering Graphs at Scale
ArangoDB 3.9 - Further Powering Graphs at Scale
 
GraphSage vs Pinsage #InsideArangoDB
GraphSage vs Pinsage #InsideArangoDBGraphSage vs Pinsage #InsideArangoDB
GraphSage vs Pinsage #InsideArangoDB
 
Webinar: ArangoDB 3.8 Preview - Analytics at Scale
Webinar: ArangoDB 3.8 Preview - Analytics at Scale Webinar: ArangoDB 3.8 Preview - Analytics at Scale
Webinar: ArangoDB 3.8 Preview - Analytics at Scale
 
Graph Analytics with ArangoDB
Graph Analytics with ArangoDBGraph Analytics with ArangoDB
Graph Analytics with ArangoDB
 
Getting Started with ArangoDB Oasis
Getting Started with ArangoDB OasisGetting Started with ArangoDB Oasis
Getting Started with ArangoDB Oasis
 
Custom Pregel Algorithms in ArangoDB
Custom Pregel Algorithms in ArangoDBCustom Pregel Algorithms in ArangoDB
Custom Pregel Algorithms in ArangoDB
 
Hacktoberfest 2020 - Intro to Knowledge Graphs
Hacktoberfest 2020 - Intro to Knowledge GraphsHacktoberfest 2020 - Intro to Knowledge Graphs
Hacktoberfest 2020 - Intro to Knowledge Graphs
 
A Graph Database That Scales - ArangoDB 3.7 Release Webinar
A Graph Database That Scales - ArangoDB 3.7 Release WebinarA Graph Database That Scales - ArangoDB 3.7 Release Webinar
A Graph Database That Scales - ArangoDB 3.7 Release Webinar
 
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?
 
ArangoML Pipeline Cloud - Managed Machine Learning Metadata
ArangoML Pipeline Cloud - Managed Machine Learning MetadataArangoML Pipeline Cloud - Managed Machine Learning Metadata
ArangoML Pipeline Cloud - Managed Machine Learning Metadata
 
ArangoDB 3.7 Roadmap: Performance at Scale
ArangoDB 3.7 Roadmap: Performance at ScaleArangoDB 3.7 Roadmap: Performance at Scale
ArangoDB 3.7 Roadmap: Performance at Scale
 
Webinar: What to expect from ArangoDB Oasis
Webinar: What to expect from ArangoDB OasisWebinar: What to expect from ArangoDB Oasis
Webinar: What to expect from ArangoDB Oasis
 
ArangoDB 3.5 Feature Overview Webinar - Sept 12, 2019
ArangoDB 3.5 Feature Overview Webinar - Sept 12, 2019ArangoDB 3.5 Feature Overview Webinar - Sept 12, 2019
ArangoDB 3.5 Feature Overview Webinar - Sept 12, 2019
 
3.5 webinar
3.5 webinar 3.5 webinar
3.5 webinar
 
An introduction to multi-model databases
An introduction to multi-model databasesAn introduction to multi-model databases
An introduction to multi-model databases
 
Running complex data queries in a distributed system
Running complex data queries in a distributed systemRunning complex data queries in a distributed system
Running complex data queries in a distributed system
 
Guacamole Fiesta: What do avocados and databases have in common?
Guacamole Fiesta: What do avocados and databases have in common?Guacamole Fiesta: What do avocados and databases have in common?
Guacamole Fiesta: What do avocados and databases have in common?
 

Introduction to ArangoDB (nosql matters Barcelona 2012)

  • 1. —The  universal  mul$  model  database  —     mar$n  Schoenert,  triAGENS   2012/10/06  
  • 2. Approaching  ArangoDB   •  Universal  mul$  model   database   •  Mostly  memory   Open  source   –  Free  as  in  beer   –  Lives  on  GitHub   –  Apache  License  V2   •  Started  in  Sep  2011   •  Version  1  in  Sep  2012  
  • 3. Why  did  we  start  with  ArangoDB?   •  Ini$al  ques$ons:     –  “How  should  an  ideal  universal  database  look  like?”   –  “Is  it  already  out  there?”   •  ArangoDB   –  unique  feature  set     –  solves  some  problems  of  other  nosql  DBs   –  greenfield  project   –  led  by  experience    
  • 4. Projects  benefit  from  a  universal  DB   Requirements  evolve:   “We  need  some  loca$on  based  services.”   “Please  add  a  recommenda$on  system.”   “We  have  many  users  now.  It  must  s$ll  be  fast.”  
  • 5. A  growing  community   ..  working  on  the    geo  index,   the  full  text  search  and   many  APIs:    Ruby,  Python,   PHP,  JAVA,  D,  ...  
  • 6. Voices  from  the  audience   Recommenda$on  from  Mr.   Ruby  himself    J   “Because  AvocadoDB  (aka  ArangoDB)   came  out,  energy  to  write  D  language   client  of  [AnotherDB]  has  faded  away   completely”.  
  • 7. ArangoDB  –  a  mul$-­‐model  database   Key/Value  Store   Graph  Database   Document  Store   Source:  Andrew  Carol  
  • 8. Accessing  data   REST  interface   GET /_api/document/document-handle PUT /_api/document/document-handle Query  by  example   db.users.byExample({ "age" : 42 }).toArray(); db.cities.near( "latitude" : 50, "longitude“ :7). limit(5).toArray(); ArangoDB  query  language  (AQL)   FOR u in Users FILTER u.address.country == "USA" SORT u.address.city RETURN { name : u.name, city : u.address.city }
  • 9. Extend  ArangoDB  via  “ac$ons”   •  Pimp  ArangoDB  using  ac$ons  with   extra  features  in   –  Ruby  (mruby  =  embedded  Ruby)   –  Javascript  (V8)   •  Do  it  in  a  performing  way  (close  to   the  data)     Ac$ons  enrich  ArangoDB   •  Transac$ons   •  Cascading  deletes/updates   •  Assign  permissions  to  ac$ons   •  Wrap  everything  in  a  protocol  (e.g.   LDAP)  
  • 10. Replica$on  &  sharding   Replica$on:     •   Coming  in  V2     •   Master/master    or  master/slave     •   Sync  or  async       Sharding:     •   Sharding  is  for  LARGE  data  sets   •   How  many  tera  bytes  of  data  do  you  have?       •   Let’s  discuss  this  feature!  
  • 11. Technology   •  Indices   –  Skip  lists,  geo  index,  FTS   •  Shapes   –  schema  free/schemes   •  Mul$version   Concurrency   –  memory-­‐mapped-­‐files   –  garbage  collec$on  
  • 12. Performance   Inser$ng  1  million  documents  =>  24,3  seconds     41.200  inserts/second   Reading  1  million  documents  =>  93,6  seconds   10.600  requests/second   Primary  index  lookup  &  return  of  the  document   using  AQL:                FOR  u  IN  users  FILTER  u._id  ==  ”<docId>"  RETURN  u     1  million  HTTP  requests  =>  94,1  seconds     10.600  requests/second  
  • 13. Get  in  touch  ::  join  the  team   hrp://www.arangodb.org   hrps://github.com/triAGENS/ArangoDB/   Google  Group:  ArangoDB   Twirer:  @ArangoDB