Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

GraphDay Noble/Coolio

1,055 views

Published on

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

Published in: Technology
  • Be the first to comment

GraphDay Noble/Coolio

  1. 1. Time Travel with Neo4j Aleksa Vukotic Noble Group
  2. 2. Noble Group • Commodity trading • Supply chain management • 70 locations • $100 B revenue
  3. 3. The Vision • Data consolidation strategy • Polyglot persistence (time series, objects, reference data) • Selecting reference data master store
  4. 4. Requirements • Diverse data/schemas • Multi-source data flows • Complex Hierarchy Trees • Search • All or nothing updates • Versioning and time travel
  5. 5. Other Options • Relational DB • Index Store (Elastic Search/Lucene)
  6. 6. Problem • Being able to travel in time • Two use cases to manage: 1. How entities change over time 2. How relationships change over time
  7. 7. 1. Entity Versioning TAX id: 1 name: VAT rate: 20% TAX id: 1 name: VAT rate: 15% 13/11/2014 00:00
  8. 8. Entity Versioning id: 1 TAX HAS_VERSION HAS_VERSION 13/11/2014 00:00 name:VAT rate: 20% versionSince:-1 versionClose: 1415836800000 name:VAT rate: 15% versionSince: 1415836800000 versionClose: 9223372036854775807 TAX_STATE TAX_STATE
  9. 9. 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
  10. 10. Relationship Versioning COUNTERPARTY id: 1 name: Money uLTD IS_PARENT_OF id: 2 name: ACME COUNTERPARTY COUNTERPARTY 13/11/2014 00:00 id: 3 name: Pear Inc IS_PARENT_OF id: 2 name: ACME COUNTERPARTY
  11. 11. Relationship Versioning COUNTERPARTY id: 1 name: Money uLTD id: 2 name: ACME COUNTERPARTY 13/11/2014 00:00 id: 2 name: Pear Inc IS_PARENT_OF IS_PARENT_OF versionSince: -1 versionClose: 1415836800000 versionSince: 1415836800000 versionClose: 9223372036854775807
  12. 12. 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
  13. 13. Thank you
  14. 14. Paul%Gilligan% Coolio%Ltd% • Overview% • Descrip>on%of%problem% • Solu>on%of%problem%using%Neo4j% • Future%plans% @brothergilligan%%%#graphday%
  15. 15. Paul%Gilligan% Coolio%Ltd% • Overview% • Descrip>on%of%problem% • Solu>on%of%problem%using%Neo4j% • Future%plans% @brothergilligan%%%#graphday%
  16. 16. Overview% @brothergilligan%%%#graphday%
  17. 17. Overview% @brothergilligan%%%#graphday%
  18. 18. Overview% @brothergilligan%%%#graphday%
  19. 19. Overview% Highly%• Simple%social%buEon%press%and%to%highly% place%a%Coolio% personalised,%• En>rely%binary,%en>up%rely%to%subjec>the%minute% ve% ra>• Dispropor>ngs%and%onate%recommenda>power%of%the%nega>ons,% ve% with%no%pollu>on%from%the% dispropor>onate%power%of%the% nega>ve.% • Algorithm%ascribes%a%value%to%each%Coolio%%% • Coolios%drive%the%Coolth%of%Places%and%People% • Each%Coolio%is%born,%degrades%then%dies% • Everyone’s%‘Cool’%is%different% @brothergilligan%%%#graphday%
  20. 20. The%Problem% @brothergilligan%%%#graphday% • Many%users%placing%many% Coolios%could%get%too%big% too%quickly.% • Each%new%Coolio%needs% many%Coolio%values%to%be% retrieved%from%many% users%and%many%places.% • Degrading%Coolios%would% need%to%use%update%queries% • Ins>nc>vely%knew%that%this% was%too%messy%and%too% cumbersome%
  21. 21. The%Problem% @brothergilligan%%%#graphday%
  22. 22. The%Problem% @brothergilligan%%%#graphday%
  23. 23. The%Problem% @brothergilligan%%%#graphday%
  24. 24. The%Solu>on% @brothergilligan%%%#graphday%
  25. 25. The%Solu>on% • 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% @brothergilligan%%%#graphday% Coolio Coolio Coolio • Immediately%simpler%and%easier% than%original%SQL%schema% • Update%values%every%>me%we%hit% a%Coolio% Coolio
  26. 26. The%Solu>on% @brothergilligan%%%#graphday% Coolio Coolio Coolio User y Place c gcpvj6b gcpvj6c gcpvj6f Place d Place e Place f gcpvj4z gcpvj4
  27. 27. The%Solu>on% @brothergilligan%%%#graphday% GeoTree% The%Friend%Zone% The%EcoYSystem%
  28. 28. The%Solu>on% @brothergilligan%%%#graphday%
  29. 29. The%Future% Mon Tue Wed Thu Fri Sat Sun Coolio 13.00 14.00 15.00 16.00 17.00 @brothergilligan%%%#graphday% May Jun Jul Spr Sum Aut
  30. 30. The%Future% 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) @brothergilligan%%%#graphday%

×