www.Objectivity.com

The Value of Explicit
Schema For Graph
Use Cases
Nick Quinn, Principal
Engineer, InfiniteGraph
2/21/2014

1
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?

The Value of Explicit Schema for Graph Use Cases

  • 1.
    www.Objectivity.com The Value ofExplicit Schema For Graph Use Cases Nick Quinn, Principal Engineer, InfiniteGraph 2/21/2014 1
  • 2.
    Why use aGraph Database?
  • 3.
    The Value ofSchema : 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
  • 4.
    The Value ofSchema: 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.
  • 5.
    The Value ofSchema: 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
  • 6.
    The Value ofSchema: 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’)”;
  • 7.
    The Value ofSchema: Custom Visualizers • Custom visualization settings and actions determined by type.
  • 8.
    The Value ofSchema: 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”;
  • 9.
    Why InfiniteGraph™? • Objectivity/DBis 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
  • 10.