the value of explicit schema for graph use cases
DESCRIPTION
A look at the many facets of schema-less approaches vs a rich schema approach, ranging from performance and query support to heterogeneity and code/data migration issues. Presented by Nick Quinn, Principal Engineer, InfiniteGraphTRANSCRIPT
www.Objectivity.com
2/21/2014 1
The Value of Explicit Schema For Graph
Use CasesNick Quinn, Principal
Engineer, InfiniteGraph
Why use a Graph Database?
The Value of Schema :Custom Placement
• Mitigate bottlenecks and optimize performance by using the following strategies:– Custom Placement: data isolation/localization of
logically related information (to achieve close to subgraph partitioning) in order to minimize the number of network calls
The Value of Schema:Custom Placement
• Consider the case where you are placing medical data for hospitals and patients. Using a custom placement model you can achieve fairly high isolation of the subgraphs.– Doctor ↔ Hospitals, Patients ↔ Visits.
The Value of Schema: GraphViews
• A GraphView is a schema view used in the context of navigational query.
• With GraphViews, we can use schema to perform path qualification to achieve real-time navigational query results. – Use GraphViews to filter out vertex or edge types
The Value of Schema: GraphViews
• Consider calculating number of links to interesting companies on LinkedIn.– If you are connected to recruiters, the navigation result
set can be slowed down and possibly polluted if traversing through these recruiters.
GraphView myView = myGraph.createGraphView();myView.excludeClass(Person.class,
“CONTAINS(profession, ‘recruiter’)”;
The Value of Schema:Custom Visualizers
• Custom visualization settings and actions determined by type.
The Value of Schema:Other Topics
• Life is like a box of chocolates– Class metadata is preserved in the database (Relationships and Hierarchies)
• Query Language Simplicity– Using types and filters on types is more intuitive than using labels– MATCH [Person(name==“Steve Jobs”)] –[Friend(where ==
“Facebook”)]->[Person];– MATCH [p:Person] –[f:Friend]->[:Person] WHERE p.name==
“Steve Jobs” && f.where == “Facebook”;
Why InfiniteGraph™?
• Objectivity/DB is a proven foundation– Building distributed databases since 1993– A complete database management system
• Concurrency, transactions, cache, schema, query, indexing
• It’s a Graph Specialist !– Simple but powerful API tailored for data navigation.– Easy to configure distribution and placement model
QUESTIONS?