Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Adventures with Graphs

Adventures with Graphs

A presentation about our first adventures with Graph Database technology. The stuff we ran into, learned and are still curious about!

Avatar for Rubin Simons

Rubin Simons

May 16, 2014
Tweet

Other Decks in Programming

Transcript

  1. who we are • a young software company • founded

    september 2008 • 7 talented individuals • and growing adventures with graphs
  2. adventures with graphs what we do • creating a next-gen

    datacenter app • an open source community for dc's • tools that make smarter dc's easy
  3. adventures with graphs some background • we understand relational databases

    • strong oo background in java, javascript • extensive hands-on experience within large-scale datacenters
  4. adventures with graphs our domain • managing stuff in a

    datacenter • very complex component hierarchies • hierarchical and recursive
  5. adventures with graphs quick example • a computer: • embedded

    mgmt: AREF GND RESET 3V3 L TX RX USB EXT PWR SEL PWR ICSP TX RX 3 1 2 1 1 1 0 1 9 8 DIGITAL 7 6 5 4 3 2 1 0 1 5V Gnd POWER www.adruino.cc ANALOG IN Vin 0 1 2 3 4 5 d0 47 25V d0 47 25V ADRUINO
  6. adventures with graphs quick example • a computer: • operating

    system: AREF GND RESET 3V3 L TX RX USB EXT PWR SEL PWR ICSP TX RX 3 1 2 1 1 1 0 1 9 8 DIGITAL 7 6 5 4 3 2 1 0 1 5V Gnd POWER www.adruino.cc ANALOG IN Vin 0 1 2 3 4 5 d0 47 25V d0 47 25V ADRUINO
  7. adventures with graphs quick example • a computer: • operating

    system: • with interpreters like bash or cmd: >_ >_ >_ >_ AREF GND RESET 3V3 L TX RX USB EXT PWR SEL PWR ICSP TX RX 3 1 2 1 1 1 0 1 9 8 DIGITAL 7 6 5 4 3 2 1 0 1 5V Gnd POWER www.adruino.cc ANALOG IN Vin 0 1 2 3 4 5 d0 47 25V d0 47 25V ADRUINO
  8. adventures with graphs quick example • a computer: • operating

    system: • with users: >_ >_ >_ >_ AREF GND RESET 3V3 L TX RX USB EXT PWR SEL PWR ICSP TX RX 3 1 2 1 1 1 0 1 9 8 DIGITAL 7 6 5 4 3 2 1 0 1 5V Gnd POWER www.adruino.cc ANALOG IN Vin 0 1 2 3 4 5 d0 47 25V d0 47 25V ADRUINO
  9. adventures with graphs quick example • a computer: • operating

    system: • with services like sshd, bind, etc: >_ >_ >_ >_ AREF GND RESET 3V3 L TX RX USB EXT PWR SEL PWR ICSP TX RX 3 1 2 1 1 1 0 1 9 8 DIGITAL 7 6 5 4 3 2 1 0 1 5V Gnd POWER www.adruino.cc ANALOG IN Vin 0 1 2 3 4 5 d0 47 25V d0 47 25V ADRUINO
  10. adventures with graphs quick example • a computer: • operating

    system: • with services which might be hypervisors: >_ >_ >_ >_ AREF G N D RESET 3V3 L TX RX U SB EX T PWR SEL PWR I CSP TX RX 3 1 2 1 1 1 0 1 9 8 D I G I T AL 7 6 5 4 3 2 1 0 1 5V G nd PO WER w w w . adrui no . cc AN AL O G I N V i n 0 1 2 3 4 5 d0 47 25V d0 47 25V A DR UI N O >_ >_ >_ >_ AREF G N D RESET 3V3 L TX RX U SB EX T PWR SEL PWR I CSP TX RX 3 1 2 1 1 1 0 1 9 8 D I G I T AL 7 6 5 4 3 2 1 0 1 5V G nd PO WER w w w . adrui no . cc AN AL O G I N V i n 0 1 2 3 4 5 d0 47 25V d0 47 25V AD R UI N O >_ >_ >_ >_ AREF GND RESET 3V3 L TX RX USB EXT PWR SEL PWR ICSP TX RX 3 1 2 1 1 1 0 1 9 8 DIGITAL 7 6 5 4 3 2 1 0 1 5V Gnd POWER www.adruino.cc ANALOG IN Vin 0 1 2 3 4 5 d0 47 25V d0 47 25V ADRUINO
  11. adventures with graphs quick example • a computer: • operating

    system: • with services: • in a datacenter:
  12. adventures with graphs typical characteristics • highly recursive • arbitrary

    collections • runtime hierarchy changes • needs to perform really well
  13. adventures with graphs mmmh graphs.. • graphs are easy to

    understand • both recursive and hierarchical • very good performance
  14. adventures with graphs graphs explained • graphs have nodes (vertexes)

    • and lines connecting them (edges) • vertexes and edges can have name/value pairs
  15. adventures with graphs graphs explained • like: person language carmen

    italian english alice bob isa isa isa isa isa speaks speaks speaks speaks speaks
  16. adventures with graphs first encounters: orientdb • has a lot

    of features • easy and logical to get started with • graph, document and relational concepts • traditional and modern at once
  17. adventures with graphs first question marks • graphs! ..but what

    about classes/types? (oh boy) • are there standardized dsl's for graphs? (no but yes sort of not really) person language carmen italian english alice bob
  18. adventures with graphs first trials and opinions • tested extensively

    with orientdb and titandb • gremlin scripts are too low-level • tinkerpop is great but api changes
  19. adventures with graphs further realizations • matching properties within nodes

    = slow • traversals are cheap, but - supernodes • things are something by their relations
  20. adventures with graphs requirements refined • what if types could

    be isa edges from type nodes to instances? types as instances? (and not something external to the graph)
  21. adventures with graphs type hierarchies • almost everything is an

    instance in a graph • prototypal programming is very graph-friendly • javascript is prototypal! who knew!
  22. adventures with graphs type hierarchies object somesystem os software hardware

    app disk linux windows fedora fedora 21 isa isa isa isa isa isa isa isa isa has has • nodes are types are instances • what you search for is usually higher up the chain • what you interact with is usually at the end of the chain
  23. adventures with graphs our current setup • node.js + neo4j

    • neo4j is simple and super finished • nice tools, scripting! documentation! • amazingly easy to get going with