graphday noble/coolio

37
Time Travel with Neo4j Aleksa Vukotic Noble Group

Upload: neo4j-the-fastest-and-most-scalable-native-graph-database

Post on 30-Jun-2015

625 views

Category:

Technology


1 download

DESCRIPTION

GraphDay London 2014 Graphs in the Real World: Top Use Cases for Graph Databases With Aleksa Vukotic of Noble Energy and Paul Gilligan of Coolio Labs

TRANSCRIPT

Page 1: GraphDay Noble/Coolio

Time Travel with Neo4jAleksa Vukotic Noble Group

Page 2: GraphDay Noble/Coolio

Noble Group

• Commodity trading

• Supply chain management

• 70 locations

• $100 B revenue

Page 3: GraphDay Noble/Coolio

The Vision

• Data consolidation strategy

• Polyglot persistence (time series, objects, reference data)

• Selecting reference data master store

Page 4: GraphDay Noble/Coolio

Requirements• Diverse data/schemas

• Multi-source data flows

• Complex Hierarchy Trees

• Search

• All or nothing updates

• Versioning and time travel

Page 5: GraphDay Noble/Coolio

Other Options

• Relational DB

• Index Store (Elastic Search/Lucene)

Page 6: GraphDay Noble/Coolio

Problem

• Being able to travel in time

• Two use cases to manage:

1. How entities change over time

2. How relationships change over time

Page 7: GraphDay Noble/Coolio

1. Entity Versioning

id: 1name: VATrate: 20%

TAX

id: 1name: VATrate: 15%

TAX

13/11/2014 00:00

Page 8: GraphDay Noble/Coolio

Entity Versioningid: 1

TAX

13/11/2014 00:00

name:VATrate: 20%

versionSince:-1versionClose:

1415836800000

name:VATrate: 15%

versionSince: 1415836800000versionClose:

9223372036854775807

HAS_VERSION HAS_VERSION

TAX_STATE

TAX_STATE

Page 9: GraphDay Noble/Coolio
Page 10: GraphDay Noble/Coolio
Page 11: GraphDay Noble/Coolio
Page 12: GraphDay Noble/Coolio

2. Relationship Versioning

• Credit risk & counter-party tree

• Who owns who affects the credit risk

• Legal entities change ownership

• Need to keep history of all changes

Page 13: GraphDay Noble/Coolio

Relationship Versioningid: 1

name: Money uLTD

id: 2name: ACME

IS_PARENT_OF

COUNTERPARTY

COUNTERPARTY

13/11/2014 00:00

id: 3name:

Pear Inc

IS_PARENT_OF

id: 2name: ACME

COUNTERPARTY

COUNTERPARTY

Page 14: GraphDay Noble/Coolio

Relationship Versioning

id: 1name:

Money uLTD

COUNTERPARTY

id: 2name: ACME

COUNTERPARTY

13/11/2014 00:00

id: 2name:

Pear Inc

IS_PARENT_OF IS_PARENT_OFversionSince: -1

versionClose: 1415836800000

versionSince: 1415836800000versionClose: 9223372036854775807

Page 15: GraphDay Noble/Coolio
Page 16: GraphDay Noble/Coolio
Page 17: GraphDay Noble/Coolio
Page 18: GraphDay Noble/Coolio

Results

• Ref Data Platform launched recently

• 3 nodes (1 per region)

• >5 M nodes, >100 M relationships and growing

• Query times <300ms

• Data Clarity and Agility

Page 19: GraphDay Noble/Coolio

Thank you

Page 20: GraphDay Noble/Coolio
Page 21: GraphDay Noble/Coolio

Paul%Gilligan%Coolio%Ltd%

@brothergilligan%%%#graphday%

•  Overview%

•  Future%plans%

•  Descrip>on%of%problem%

•  Solu>on%of%problem%using%Neo4j%

Page 22: GraphDay Noble/Coolio

Paul%Gilligan%Coolio%Ltd%

@brothergilligan%%%#graphday%

•  Overview%

•  Future%plans%

•  Descrip>on%of%problem%

•  Solu>on%of%problem%using%Neo4j%

Page 23: GraphDay Noble/Coolio

Overview%

@brothergilligan%%%#graphday%

Page 24: GraphDay Noble/Coolio

Overview%

@brothergilligan%%%#graphday%

Page 25: GraphDay Noble/Coolio

Overview%

@brothergilligan%%%#graphday%

Page 26: GraphDay Noble/Coolio

Overview%

@brothergilligan%%%#graphday%

•  Simple%buEon%press%to%place%a%Coolio%

•  En>rely%binary,%en>rely%subjec>ve%

•  Algorithm%ascribes%a%value%to%each%Coolio%%%

•  Coolios%drive%the%Coolth%of%Places%and%People%

•  Each%Coolio%is%born,%degrades%then%dies%

•  Dispropor>onate%power%of%the%nega>ve%

•  Everyone’s%‘Cool’%is%different%

Highly%social%and%highly%

personalised,%up%to%the%minute%

ra>ngs%and%recommenda>ons,%

with%no%pollu>on%from%the%

dispropor>onate%power%of%the%

nega>ve.%

Page 27: GraphDay Noble/Coolio

The%Problem%

@brothergilligan%%%#graphday%

•  Many%users%placing%many%Coolios%could%get%too%big%too%quickly.%

•  Degrading%Coolios%would%need%to%use%update%queries%

•  Each%new%Coolio%needs%many%Coolio%values%to%be%retrieved%from%many%users%and%many%places.%

•  Ins>nc>vely%knew%that%this%was%too%messy%and%too%cumbersome%

Page 28: GraphDay Noble/Coolio

The%Problem%

@brothergilligan%%%#graphday%

Page 29: GraphDay Noble/Coolio

The%Problem%

@brothergilligan%%%#graphday%

Page 30: GraphDay Noble/Coolio

The%Problem%

@brothergilligan%%%#graphday%

Page 31: GraphDay Noble/Coolio

The%Solu>on%

@brothergilligan%%%#graphday%

Page 32: GraphDay Noble/Coolio

The%Solu>on%

@brothergilligan%%%#graphday%

Coolio •  Hit%index%once%and%find%user%•  Retrieve%all%User’s%Coolio’s%

values%by%going%straight%to%them%•  Don’t%have%to%search%every%

record%of%a%single%table%

CoolioCoolio

•  Immediately%simpler%and%easier%than%original%SQL%schema%

•  Update%values%every%>me%we%hit%a%Coolio%

Coolio

Coolio

Coolio

Page 33: GraphDay Noble/Coolio

The%Solu>on%

@brothergilligan%%%#graphday%

Coolio

Coolio

User yCoolio

gcpvj6bPlace c

gcpvj6c

gcpvj6f

Place d

Place e

gcpvj4zPlace f gcpvj4

Page 34: GraphDay Noble/Coolio

The%Solu>on%

@brothergilligan%%%#graphday%

GeoTree%

The%Friend%Zone%

The%EcoYSystem%

Page 35: GraphDay Noble/Coolio

The%Solu>on%

@brothergilligan%%%#graphday%

Page 36: GraphDay Noble/Coolio

The%Future%

@brothergilligan%%%#graphday%

Coolio

Mon Tue Wed Thu Fri Sat Sun

17.0016.0015.0014.0013.00

May

Jun

Jul

Spr

Sum

Aut

Page 37: GraphDay Noble/Coolio

The%Future%

@brothergilligan%%%#graphday%

Technical) Cypher)–)quick,)easy,)powerful,)expressive)Flexibility)–)server)instance)or)embedded)in)Java)applica?on)Languages)–)Python,)NodeJS,)PHP,)Java,)Ruby))API)–)own)powerful)RESTful)API)

Support) Provide)training)and)facilitate)a)growing)developer)community)Generate)opportuni?es)for)discussion)and)access)to)their)developer)with)conferences,)meetups)and)events)like)this)

Commercial) Suppor?ve)and)understand)commercial)pressures)My)success)equals)their)success)