The Value of Explicit Schema for Graph Use Cases


Published on

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, InfiniteGraph

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

The Value of Explicit Schema for Graph Use Cases

  1. 1. The Value of Explicit Schema For Graph Use Cases Nick Quinn, Principal Engineer, InfiniteGraph 2/21/2014 1
  2. 2. Why use a Graph Database?
  3. 3. 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
  4. 4. 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.
  5. 5. 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
  6. 6. 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’)”;
  7. 7. The Value of Schema: Custom Visualizers • Custom visualization settings and actions determined by type.
  8. 8. 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 “Steve Jobs” && f.where == “Facebook”;
  9. 9. 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
  10. 10. QUESTIONS?