ArangoDB PDF Submission Handling Billions of Edges in A Graph Database
ArangoDB PDF Submission Handling Billions of Edges in A Graph Database
a Graph Database
+ +
You are
here
Typical Graph Queries: Pattern Matching
Alice Friend
Hobby1 Hobby2
Typical Graph Queries: Pattern Matching
‣ Give me all products that at least one of my friends has bought together with the
products I already own, ordered by how many friends have bought it and the
products rating, but only 20 of them.
is_friend has_bought
Alice Friend Product
ha
ht
ug
s_
bo
bo
s_
ug
ha
ht
Product
Non-Typical Graph Queries
‣ Give me all users which have an age attribute between 21 and 35.
‣ Give me the age distribution of all users
‣ Group all users by their name
‣ MULTI-MODEL database
‣ Stores Key Value, Documents, and Graphs
‣ All in one core
‣ Query language AQL
‣ Document Queries
‣ Graph Queries
‣ Joins
‣ All can be combined in the same statement
‣ ACID support including Multi Collection Transactions
AQL
Alice
AQL
has_bought
Alice TV
AQL
‣ Once: 1
‣ Find the start vertex Depends on indexes: Hash:
‣ For every depth: 1
‣ Find all connected edges Edge-Index or Index-Free: n
‣ Filter non-matching edges Linear in edges: n*1
‣ Find connected vertices Depends on indexes: Hash: n
‣ Filter non-matching vertices Linear in vertices: 3n
Only one pass:
O(3n)
Traversal - Complexity
Bob Alice
First Boost - Vertex Centric Indices
‣ Index all edges based on their vertices and arbitrary other attributes
‣ Find initial set of edges in identical time
‣ Less / No post-filtering required
‣ This decreases the n significantly
Alice
Challenge 2: Big Data
????
Foxx Foxx
Coordinator Coordinator