the graph revolution

21
The Graph revolution How to change the way you think about NSFs and achieve Nirvana Nathan T Freeman - #ChiefArchitect @RedPillDevelopment

Upload: peter-presnell

Post on 14-Jul-2015

737 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: The Graph Revolution

The GraphrevolutionHow to change the way you think about NSFs and achieve Nirvana

Nathan T Freeman - #ChiefArchitect @RedPillDevelopment

Page 2: The Graph Revolution

Mission

productive

problems

mind

Page 3: The Graph Revolution

The Numbers Problem

Thousands of data silos (NSFs)

Hundreds of indexes in each

Thousands of documents in each

Page 4: The Graph Revolution

The Logic Problem

Data schemas in the UI

Limited serialization

Relationships are a lot of work

Page 5: The Graph Revolution

What is a graph?

Elements (vertexes and edges)

Key/Value pairs

Index-free adjacency

Page 6: The Graph Revolution

Why use graphs?

Speed Scalability Intuitive

Page 7: The Graph Revolution

People graph

Nathan

knows

Mac

Page 8: The Graph Revolution

Movie graph

portrays

appearsIn

stars

The Matrix Keanu

Reeves

Neo

Page 9: The Graph Revolution

What is an nsf?

Documents

Item-value pairs Appalling bad indices

Page 10: The Graph Revolution

Graph & NSF

Page 11: The Graph Revolution

Openntf domino api

Documents with keys (Serializable -> MD5 -> UNID)

Auto-type coercion

Document implements Map<String, Object>

includes Document.get(“fname + \” \” lname”)

Page 12: The Graph Revolution

A Single nsf with…

Hundreds of thousands of vertices

Millions of edges

Page 13: The Graph Revolution

A question…If each Vertex is a Document, why can’t every Document be a Vertex?

Page 14: The Graph Revolution

The dream

Tens of millions of enterprise documents.

Decades of accumulated knowledge.

One big warehouse.

No migration required.

Page 15: The Graph Revolution

Implementation 2.0

Vertices need models; models are hard.

Graph must consume many NSFs

UniversalID not enough; need MetaversalID

Can’t modify some Vertices

Page 16: The Graph Revolution

Tinkerpop.frames@TypeField("form")

@TypeValue("Person")

public interface User extends VertexFrame {

• @TypedProperty("FirstName")

• public String getFirstName();

• @TypedProperty("FirstName")

• public void setFirstName(String firstName);

• @IncidenceUnique(label = “likes”)

• public Iterable<Edge> getLikes();

• @IncidenceUnique(label = “likes”)

• public Edge addLikes(Vertex vertex);

}

Page 17: The Graph Revolution

Graph sharding

One graph can have many element stores (NSFs)

Element stores based on Frame interfaces

Stores respect ACLs and can cross servers

Can store vertexes and/or edges

Proxy shards separate graph data from core properties

Page 18: The Graph Revolution

Metaversalids

ReplicaID + UniversalID

16 char hex + 32 char hex = bulky

16 char hex = 64-bit number AKA long

long[3] can hold same information

NoteCoordinate (x,y,z)

Stores as byte[24]

Page 19: The Graph Revolution

The Numbers Problem

Thousands of data silos (NSFs)

Hundreds of indexes in each

Thousands of documents in each

Millions of vertexes across the enterprise

No indexes needed

Page 20: The Graph Revolution

The Logic Problem

Schemas are defined with Java interfaces

Anything can be written to any key/value pair

Relationships are trivial

Page 21: The Graph Revolution

Mission

productive

problems

mind