Introduction to ArangoDB (nosql matters Barcelona 2012)

1,763 views

Published on

ArangoDB is a universal open-source database with a flexible data model for documents, graphs, and key-values. Build high performance applications using a convenient sql-like query language or JavaScript/Ruby extensions.

The video is also available online:
http://2012.nosql-matters.org/bcn/speakers/

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,763
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
31
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introduction to ArangoDB (nosql matters Barcelona 2012)

  1. 1. —The  universal  mul$  model  database  —     mar$n  Schoenert,  triAGENS   2012/10/06  
  2. 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. 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. 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. 5. A  growing  community   ..  working  on  the    geo  index,   the  full  text  search  and   many  APIs:    Ruby,  Python,   PHP,  JAVA,  D,  ...  
  6. 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. 7. ArangoDB  –  a  mul$-­‐model  database  Key/Value  Store   Graph  Database   Document  Store   Source:  Andrew  Carol  
  8. 8. Accessing  data   REST  interface   GET /_api/document/document-handle PUT /_api/document/document-handleQuery  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. 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. 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. 11. Technology   •  Indices   –  Skip  lists,  geo  index,  FTS   •  Shapes   –  schema  free/schemes   •  Mul$version   Concurrency   –  memory-­‐mapped-­‐files   –  garbage  collec$on  
  12. 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. 13. Get  in  touch  ::  join  the  team  hrp://www.arangodb.org  hrps://github.com/triAGENS/ArangoDB/  Google  Group:  ArangoDB  Twirer:  @ArangoDB    

×