Upcoming SlideShare
×

# Intro to graph world

509 views
418 views

Published on

1 Like
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

Views
Total views
509
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
13
0
Likes
1
Embeds 0
No embeds

No notes for slide

### Intro to graph world

1. 1. Introduction to Neo4j Andreas Kollegger @akollegger #neo4j 1Thursday, January 24, 13
2. 2. Introduction to Neo4j Andreas Kollegger @akollegger #neo4j 1Thursday, January 24, 13
3. 3. 1Thursday, January 24, 13
4. 4. 2Thursday, January 24, 13
5. 5. The Path Forward 2Thursday, January 24, 13
6. 6. The Path Forward 1.Why graphs? 2Thursday, January 24, 13
7. 7. The Path Forward 1.Why graphs? 2.Whats a graph database? 2Thursday, January 24, 13
8. 8. The Path Forward 1.Why graphs? 2.Whats a graph database? 3.How do people use Neo4j? 2Thursday, January 24, 13
9. 9. 3Thursday, January 24, 13
10. 10. Why graphs, why now? D \$ ; * , ☕⛵ ) ⛽. 7 4B N % 8 1 = +O @ 5% < J - ☕ 9: ( ⚾ ! ? E F\$ P 2 ✈ 3 * - ), L C ( ⚽ IQ H 6 3 >G KMThursday, January 24, 13
11. 11. Why graphs, why now? 1.Big Data is the trend 8 /! ⛽C & :D A ⛵0 , # G 7 <7 J\$ O " ⚾ ! T⚽ % + 3 X. E C M S D@ A; B * 9N ✈ P 10 4 # Q K D 5 Y EI @ ⛽ , 4 J4 Z &R "☕> G % 5 3+9 =% 8 @F ? \$ +7 ; [W . \$ B L⚾. ⛵ * ,< ⛵ U )☕ ⛽ XO F> 5 \$=1 H = BN ☕✈ ! 1⚽ P - ☕ 8 2⚾: LE H % < J /9 V ( ? F? ( ] ✈ 3 * - ), ; : C O *6 ⚽ IQ H 3 > G KMThursday, January 24, 13
12. 12. Why graphs, why now? 1.Big Data is the trend 2.NOSQL is the answer P L 97 N W Y T 5 K 0 S @! ; Q 8 /B . ⛽C& & ⛽ : D !2\$% A ⛵0 , # ? G # O- 3⛵ ! T⚽ C " ⚾ X 7\$ 7JR+ O J %< ! 3 8 [ * X. E ⚾] " N , ⚽9 C > S D@ A; B D 1 P9 O > E M 10 4 # M UJ I + D 7 ✈ #: Q K & WA ⛽ ✈ R34 S 5 Y EI @ , 5 \$ 4 < R T ⛵☕> G Z 9 K %. " @F ? X \$ 4& J ⛽[) % 0 7 XOL⚾ - =☕ ;" WI 5A 3B N = . 8 1 H H V * ⛵ ☕. U L + \$ B5 + ⛽ N ⛵ U 9 = , > B\$1 ✈ G☕ , < M P Z ☕ - ☕ ⚾8 2⚾:[FE H % < J P <: ! F / ]8 V; % FQ ⚽ ? ✈ 4 H Z GV ), 2L E? *6 ⚽ 1 F ✈ 3 ( ( - ] ; : CO ? * @ ⚽ C D Y M Q I H 3 + > G KThursday, January 24, 13
13. 13. Why graphs, why now? 1.Big Data is the trend 2.NOSQL is the answer 3.Large in volume, and in variety P L 97 N W Y P L 97 N W Y T5K 0 S @ . ; T 5 K 0 S @! ; ⛽ . & Q & B & ⛽ Q 8 /B O-G⛵ ⛽ C # !2R C : D !2\$% A " # ⛵X 3 0, ? # O- 3⛵ ! T⚽ ? 8 " J 3%\$[ ! > X 7\$ 7JR+ 1 ] X⚾ A;⚽9 E J % < M DJO C⚾ , 8 9 [ C >✈S * 7✈ O > . ⚾] " N , ⚽9 ! U M IR D@ + E B WA D 1 P + O >E # : 0 4 S M UJ I 1 3 45 T 7 S D X I@ WA " # & ✈ Q K , 4 J & Y EG T ⛽ \$ +7 < Z= ⛵R UG # :R34 5 \$ 54HZV ☕" I >0 L < \$K% . ⛽ ⛵☕ FN? [ : - X ;" WI 5A 3B 9 K %.8 1⚾P [ % 0 L + N ⚾. H V * ⛵ )☕. U ⛽ G☕ , < M PU& N XO ☕ = L B- ☕ 1@ A ]8 ; MH F , < BQ ⛽ ⛵ [F> 4 Q J ;✈ 5 \$= GV 1 F / 98 V, ⚽F ? < ✈ ( : F Z ☕ - ☕ ⚾8 2⚾: \$ E H % 1⚽ P @ < %B Z ! ?H 2? E ✈ 4 H Z GV ]] 2L + *6 D Y F ✈ 3( - ), ; : C O ⚽ ⚽ * @Y IQ E ? H C + >C D K M G 3Thursday, January 24, 13
14. 14. P L0 7 N W T 5 K Q S @ . ; L9 Y W & ⛽ BP 07 N9 Y O- 3⛵ !2 ? K T5 S @B ;. 7 N W P L 97 N " # Y X 8 WJ %\$ & R 9 Y Q ⛽C7 L >⛵ N W !2 ? 01 [ ! S @ B ; T 5 KDJ ⚾] @ . , ⚽# O- 3 X . P> 0 9Q !2 ? ⛽ M UQ IS Why graphs, why now? 7 + O 58 Q WA @ \$[ !R C BS T K ; E J S %. 9 " B⚽ > & R C - 3⛵ O XJ # :R34 5& ⛽ J ⚾] T , ; E > ✈ !I ?M U <I K 7 ! O ? 2RU LD 1 %\$[ ! # 8 H"V ☕" ⚽9 X G %\$⛽ 0O C AN ✈\$ % . S ⛵ [ ! #& - 3⛵:R34 + 2R C - WA , + O M UJ W ⚾] , F >X #"< I [U L < K T > E >1 A Z ☕ ⚽9 M P8]8 [J %\$5 & X: BQ , 1E H⚾V ; , ⚽9 ! > ⚾ . D I ✈ 4 H > GV 1 AG☕" E 0 E F Z DJ W] 2 ⛵ ⛽ N - S 5U LL < # :. P& 0[ K - N 1.Big Data is the trend R3 7 S 9 9 Y ✈T 4 + O M U @IR ☕7 + 1⚾P ⚽ + D Y < YNT ✈ 4 5 ✈ M A Z ? S O > ]8 [A % B Q X \$ N W I 50 LL XC # :.34 H Z GV9 Y 2. E K - ⚽F F W< ;\$ , : 0 7: " A H ,G ⛵ M P K8 ; % ⛽ Q M U T V @ . & N P A 0[ 7: " W I P& L < K T @Y ? ⚾ 5 ] Q Z ☕B ;⚾P F < T H \$ %⛽ S ☕ B 1 F 5 K8 ; G☕⛵ Q+M A V , @B < . 0 LC0[ :%W UN D7 N - G⛽ @ V FE 2 ✈ !2 Z GV ] Q Z F ? ⚽4 H ? ⛽ E 1F 5 ] Q \$ S ☕ B ;⚾P K8 ; @B Q T ,< S . 3 Y 9 Y & O-D⛵ C PJ L + R C C 3⛵ X %\$7 N # 2.NOSQL is the answer @Y 2 ✈ !2 Z G⛽ @ O-D X 9 ? ⚽4 H ? V & 2 E ; B ? !2 ? 8 " W ⚾] T , ⚽9 ! > ⚾ NJ %\$[ ! # R C C D⛵ O- 3 Y 1 0 [> 5 K Q S E B1; 8 @ J WA Y L 8 + . W " 7 , ⚽9 P > X %\$ J RCJ I 7+ O M U . ] 7+ O5T D I@ 0 > E 1 A " , ⚽9 ! > ⚾] [# :R34 ⛵ ✈& ⛽ S O-I 5 & 3 XN !# :.34 S K M UJ W 7 + O > E ; ✈T S Q ? BR 2R C <? - D I K ! I 5 & ⛽ & ✈T 34 S R WA G# 8V ☕" ⚾ M" A %\$[V % " ⛽ ⛵ 1⚾ U P J X :3.Large in volume, and in variety 0 L H \$!2 ⛽ [ < ☕⛵ Q F , ⚽9R! > \$%M J , CG B 8 ;E [ XA HOV N < K - U L X # :. 0 ⛵3 -[ # % " I 50 L < K T \$ G☕⛵ Q YU & N ☕4 1 ] 7 + O Z ☕ E⚽ 1⚾PM UJ I GV ✈D HZ F ] > 9 > E 4 WAGV F " ]8 8; < ⚾ ZP : ⛽ , 9M P ⚽ # :R34 @9 2 ✈ > H Z+ 7 ]9 2D ☕F L0 7 N W8 ; ? ⚽F O , I JU ME 1⚾ B F A \$ ,: - [< % ✈ YS W W NI 5 & P K TS 1 Y✈ 4 ] Y9 AL X + . " C 0N Y < + - P43R: # N 7 D UL .CD @Y ✈ ? ⚽ K Z GV @ . 2 L0 7 T 5 H W S @Y ;? E H V ☕⛵ P S 0 K 5N W % 5 I K ⛽ G B@ MQ.T K < :& A [< N BQ @B Q L0 7 T \$ L U T 5 "Q & ⛽ +. ; C D B ? SX ;☕ ,.A Z F T 5⚾P :8 @! ;F⛽ ⛽☕#Z -!⛵ J F 1 K- ] ⛽ ; 0 M \$[ & &⚾ ? ⚽4 H Z GV% < /? P 1 ⛵0 ☕C ⛵⛽G& H V 3 O !2 ✈2! ⛵Y, 8 S-O 8 Q B Q 3D2B # O- 3⛵ F ✈ 8 ; E 2R C %\$[ !R C X "? & ⛽ ED ? 8 ] \$%8 Z " ⚽ %\$ ! , ⚽9 C R + % CX :2 !# ? G A HX, # ] J@ O- 3⛵ " ⚾ Y⚽ V ⚾G M UJ ⚾9 7 + O > E > A [\$ J 7 ! T@ CO " 4 3 1[ ! 9⚽ 2R JD ⚽ # > E >8 , " X ]\$ JD D J I X⚾ A;IR3 > 1 7J MC S % <9UC + 1 ] + , O > E SWA I[ M U * . EB 4 ✈ @ +# : W O S 9N R ⚽ ⚾] 7 , ✈ > + !D 7 D 1 5 43 : # E # A H # M UJ I P + O 7 S D X I@ >✈ 10DX S M :R34 ✈ I 50 L < K T 45 G☕" < KU . ⛽ ⛵ & T [ : - N . K < # N R34 K 5 V Y E W" I Z & ? "☕ X L 0 I ⛽ G HZV T ⛽ >0 L ✈U Q & & "☕ V A G A M, 5+ 4 < RG☕⛵ ⛵ M F F [ ⚾ % ]8 ; % B N U☕ MP F A \$ , ,X : ⛵J : [ 8 ;"⚾ I 5N 3 = Z= . \$ \$7 % 0☕ + N ⚾. H \$ 4 & Z 9 K %⛽ 8 @P \$ V B Q 2< E 1: - ; V * P W . U L XOL B - < F ⛽U ⛽ 1M 4 G VG< P , Z⚾ A ☕4 \$1☕ ✈ ] H ; H ] ☕⛵ )☕⛵ F ✈ B \$✈ 5 =1 H⚽48 Z< @ [ [F % B < J1⚾ ; > F Q GV F , :⚽ F Z ✈ + 2 C D Y , E H% ⚽ P ! G E ? ? Z @F ☕ H8 ⚽98 V L 2 F 2⚾: ☕4 ✈1 / ]] < E - ? Y D C Z GV ), 2 : + ? *6 D Y ✈ ( H @ ? ( + ⚽ H ⚽3 * - Y ; ? CO C @ I H + >C D K M Q G 3 Thursday, January 24, 13
15. 15. 3Thursday, January 24, 13
16. 16. 4Thursday, January 24, 13
17. 17. Everyone is talking about graphs... 4Thursday, January 24, 13
18. 18. Everyone is talking about graphs... Facebook Open Graph 4Thursday, January 24, 13
19. 19. Everyone is talking about graphs... Facebook Open Graph 4Thursday, January 24, 13
20. 20. Text 5Thursday, January 24, 13
21. 21. Graphs are everywhere! I even have one... Text 5Thursday, January 24, 13
22. 22. A graph... 6Thursday, January 24, 13
23. 23. A graph... ๏ you know the common data structures 6Thursday, January 24, 13
24. 24. A graph... ๏ you know the common data structures •linked lists, trees, object "graphs" 6Thursday, January 24, 13
25. 25. A graph... ๏ you know the common data structures •linked lists, trees, object "graphs" ๏ a graph is the general purpose data structure 6Thursday, January 24, 13
26. 26. A graph... ๏ you know the common data structures •linked lists, trees, object "graphs" ๏ a graph is the general purpose data structure •suitable for any data that is related 6Thursday, January 24, 13
27. 27. A graph... ๏ you know the common data structures •linked lists, trees, object "graphs" ๏ a graph is the general purpose data structure •suitable for any data that is related ๏ well-understood patterns and algorithms 6Thursday, January 24, 13
28. 28. A graph... ๏ you know the common data structures •linked lists, trees, object "graphs" ๏ a graph is the general purpose data structure •suitable for any data that is related ๏ well-understood patterns and algorithms •studied since Leonard Eulers 7 Bridges (1736) 6Thursday, January 24, 13
29. 29. A graph... ๏ you know the common data structures •linked lists, trees, object "graphs" ๏ a graph is the general purpose data structure •suitable for any data that is related ๏ well-understood patterns and algorithms •studied since Leonard Eulers 7 Bridges (1736) •Codds Relational Model (1970) 6Thursday, January 24, 13
30. 30. A graph... ๏ you know the common data structures •linked lists, trees, object "graphs" ๏ a graph is the general purpose data structure •suitable for any data that is related ๏ well-understood patterns and algorithms •studied since Leonard Eulers 7 Bridges (1736) •Codds Relational Model (1970) •not a new idea, just an idea whos time is now 6Thursday, January 24, 13
31. 31. A graph database... 7Thursday, January 24, 13
32. 32. A graph database... ๏ optimized for the connections between records 7Thursday, January 24, 13
33. 33. A graph database... ๏ optimized for the connections between records ๏ really, really fast at querying across records 7Thursday, January 24, 13
34. 34. A graph database... ๏ optimized for the connections between records ๏ really, really fast at querying across records ๏ a database: transactional with the usual operations 7Thursday, January 24, 13
35. 35. A graph database... ๏ optimized for the connections between records ๏ really, really fast at querying across records ๏ a database: transactional with the usual operations ๏ “A relational database may tell you the average age of everyone in this webinar, but a graph database will tell you how to drive from Baltimore to San Francisco.” 7Thursday, January 24, 13
36. 36. That last bullet is the key insight... 8Thursday, January 24, 13
37. 37. 9Thursday, January 24, 13
38. 38. You know relational 9Thursday, January 24, 13
39. 39. You know relational 9Thursday, January 24, 13
40. 40. You know relational foo 9Thursday, January 24, 13
41. 41. You know relational foo bar 9Thursday, January 24, 13
42. 42. You know relational foo foo_bar bar 9Thursday, January 24, 13
43. 43. You know relational foo foo_bar bar 9Thursday, January 24, 13
44. 44. You know relational foo foo_bar bar 9Thursday, January 24, 13
45. 45. You know relational foo foo_bar bar 9Thursday, January 24, 13
46. 46. You know relational now consider relationships... 9Thursday, January 24, 13
47. 47. You know relational now consider relationships... 9Thursday, January 24, 13
48. 48. You know relational now consider relationships... 9Thursday, January 24, 13
49. 49. You know relational now consider relationships... 9Thursday, January 24, 13
50. 50. You know relational now consider relationships... 9Thursday, January 24, 13
51. 51. You know relational now consider relationships... 9Thursday, January 24, 13
52. 52. 9Thursday, January 24, 13
53. 53. 10Thursday, January 24, 13
54. 54. Were talking about a Property Graph 10Thursday, January 24, 13
55. 55. Were talking about a Property Graph Nodes 10Thursday, January 24, 13
56. 56. Were talking about a Property Graph Nodes Relationships 10Thursday, January 24, 13
57. 57. Were talking about a Property Graph Em Joh il a n knows knows Alli Tob Lar Nodes son ias knows s knows And And knows knows rea rés s knows knows knows Pet Miic Mc knows Ian er knows a a knows knows De Mic lia h ael Relationships Properties (each a key+value) + Indexes (for easy look-ups) 10Thursday, January 24, 13
58. 58. 10Thursday, January 24, 13
59. 59. Neo4j - the Graph Database 11Thursday, January 24, 13
60. 60. Google "neo4j" 12Thursday, January 24, 13
61. 61. Google "neo4j" ๏ neo4j.org 12Thursday, January 24, 13
62. 62. Google "neo4j" ๏ neo4j.org ๏ neotechnology.com 12Thursday, January 24, 13
63. 63. Google "neo4j" ๏ neo4j.org ๏ neotechnology.com ๏ github.com/neo4j 12Thursday, January 24, 13
64. 64. Google "neo4j" ๏ neo4j.org ๏ neotechnology.com ๏ github.com/neo4j ๏ neo4j.meetup.com 12Thursday, January 24, 13
65. 65. Google "neo4j" ๏ neo4j.org ๏ neotechnology.com ๏ github.com/neo4j ๏ neo4j.meetup.com ๏ graphconnect.com 12Thursday, January 24, 13
66. 66. How to get started? 13Thursday, January 24, 13
67. 67. How to get started? ๏ Documentation 13Thursday, January 24, 13
68. 68. How to get started? ๏ Documentation • docs.neo4j.org - tutorials+reference 13Thursday, January 24, 13
69. 69. How to get started? ๏ Documentation • docs.neo4j.org - tutorials+reference • Neo4j in Action 13Thursday, January 24, 13
70. 70. How to get started? ๏ Documentation • docs.neo4j.org - tutorials+reference • Neo4j in Action • Good Relationships 13Thursday, January 24, 13
71. 71. How to get started? ๏ Documentation • docs.neo4j.org - tutorials+reference • Neo4j in Action • Good Relationships ๏ Get Neo4j 13Thursday, January 24, 13
72. 72. How to get started? ๏ Documentation • docs.neo4j.org - tutorials+reference • Neo4j in Action • Good Relationships ๏ Get Neo4j • http://neo4j.org/download 13Thursday, January 24, 13
73. 73. How to get started? ๏ Documentation • docs.neo4j.org - tutorials+reference • Neo4j in Action • Good Relationships ๏ Get Neo4j • http://neo4j.org/download • http://addons.heroku.com/neo4j/ 13Thursday, January 24, 13
74. 74. How to get started? ๏ Documentation • docs.neo4j.org - tutorials+reference • Neo4j in Action • Good Relationships ๏ Get Neo4j • http://neo4j.org/download • http://addons.heroku.com/neo4j/ ๏ Participate • ask questions on Stack Overﬂow • http://groups.google.com/group/neo4j • http://neo4j.meetup.com 13Thursday, January 24, 13
75. 75. How to get started? ๏ Documentation • docs.neo4j.org - tutorials+reference • Neo4j in Action • Good Relationships ๏ Get Neo4j • http://neo4j.org/download • http://addons.heroku.com/neo4j/ ๏ Participate • ask questions on Stack Overﬂow • http://groups.google.com/group/neo4j • http://neo4j.meetup.com • webinars, every month on everything from intro to production 13Thursday, January 24, 13
76. 76. Neo4j is a Graph Database 14Thursday, January 24, 13
77. 77. Neo4j is a Graph Database • A Graph Database: 14Thursday, January 24, 13
78. 78. Neo4j is a Graph Database • A Graph Database: • a Property Graph with Nodes, Relationships and Properties on both 14Thursday, January 24, 13
79. 79. Neo4j is a Graph Database • A Graph Database: • a Property Graph with Nodes, Relationships and Properties on both • perfect for complex, highly connected data 14Thursday, January 24, 13
80. 80. Neo4j is a Graph Database • A Graph Database: • a Property Graph with Nodes, Relationships and Properties on both • perfect for complex, highly connected data • A Graph Database: 14Thursday, January 24, 13
81. 81. Neo4j is a Graph Database • A Graph Database: • a Property Graph with Nodes, Relationships and Properties on both • perfect for complex, highly connected data • A Graph Database: • reliable with real ACID Transactions 14Thursday, January 24, 13
82. 82. Neo4j is a Graph Database • A Graph Database: • a Property Graph with Nodes, Relationships and Properties on both • perfect for complex, highly connected data • A Graph Database: • reliable with real ACID Transactions • scalable: 32 Billion Nodes, 32 Billion Relationships, 64 Billion Properties 14Thursday, January 24, 13
83. 83. Neo4j is a Graph Database • A Graph Database: • a Property Graph with Nodes, Relationships and Properties on both • perfect for complex, highly connected data • A Graph Database: • reliable with real ACID Transactions • scalable: 32 Billion Nodes, 32 Billion Relationships, 64 Billion Properties • Server with REST API, or Embeddable on the JVM 14Thursday, January 24, 13
84. 84. Neo4j is a Graph Database • A Graph Database: • a Property Graph with Nodes, Relationships and Properties on both • perfect for complex, highly connected data • A Graph Database: • reliable with real ACID Transactions • scalable: 32 Billion Nodes, 32 Billion Relationships, 64 Billion Properties • Server with REST API, or Embeddable on the JVM • high-performance with High-Availability (read scaling) 14Thursday, January 24, 13
85. 85. 15Thursday, January 24, 13
86. 86. And, but, so how do you query this "graph" database? 15Thursday, January 24, 13
87. 87. 16Thursday, January 24, 13
88. 88. Cypher - a graph query language ๏ a pattern-matching query language ๏ declarative grammar with clauses (like SQL) ๏ aggregation, ordering, limits ๏ create, read, update, delete 16Thursday, January 24, 13
89. 89. Cypher - a graph query language ๏ a pattern-matching query language ๏ declarative grammar with clauses (like SQL) ๏ aggregation, ordering, limits ๏ create, read, update, delete // get node from an index named “foo” start foo=node:people(name=‘Andreas’) return foo // find “bar” nodes related to Andreas start foo=node:people(name=‘Andreas’) match (foo)-->(bar) return bar // create a node create (me {name:Andreas}) 16Thursday, January 24, 13
90. 90. 17Thursday, January 24, 13
91. 91. Is it production ready? 17Thursday, January 24, 13
92. 92. 18Thursday, January 24, 13
93. 93. Neo4j HA - High Availability Cluster 18Thursday, January 24, 13
94. 94. Neo4j HA - High Availability Cluster • master-slave replication Loa dB ala nce r 18Thursday, January 24, 13
95. 95. Neo4j HA - High Availability Cluster • master-slave replication • read-scaling Loa dB ala nce r 18Thursday, January 24, 13
96. 96. Neo4j HA - High Availability Cluster • master-slave replication • read-scaling • single datacenter, or global zones Loa dB ala nce r 18Thursday, January 24, 13
97. 97. Neo4j HA - High Availability Cluster • master-slave replication • read-scaling • single datacenter, or global zones • tolerance for high-latency Loa dB ala nce r 18Thursday, January 24, 13
98. 98. Neo4j HA - High Availability Cluster • master-slave replication • read-scaling • single datacenter, or global zones • tolerance for high-latency • redundancy provides improved uptime Loa dB ala nce r 18Thursday, January 24, 13
99. 99. Neo4j HA - High Availability Cluster • master-slave replication • read-scaling • single datacenter, or global zones • tolerance for high-latency • redundancy provides improved uptime • automatic failover Loa dB ala nce r 18Thursday, January 24, 13
100. 100. Neo4j HA - High Availability Cluster • master-slave replication • read-scaling • single datacenter, or global zones • tolerance for high-latency • redundancy provides improved uptime • automatic failover Loa dB ala nce r 18Thursday, January 24, 13
101. 101. Neo4j HA - High Availability Cluster Loa dB ala nce r 18Thursday, January 24, 13
102. 102. Real World Use Cases: 19Thursday, January 24, 13
103. 103. Real World Use Cases: [A] Mmm Pancakes 19Thursday, January 24, 13
104. 104. Real World Use Cases: [A] Mmm Pancakes [B] ACL from Hell 19Thursday, January 24, 13
105. 105. Real World Use Cases: [A] Mmm Pancakes [B] ACL from Hell [C] Master of your Domain 19Thursday, January 24, 13
106. 106. Thursday, January 24, 13
107. 107. [A] Mmm PancakesThursday, January 24, 13
108. 108. [A] Mmm PancakesThursday, January 24, 13
109. 109. Thursday, January 24, 13
110. 110. [A] Mozilla Pancake This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # ﬁle, You can obtain one at http://mozilla.org/MPL/2.0/Thursday, January 24, 13
111. 111. [A] Mozilla Pancake • Experimental cloud-based browser • Built to improve how users Discover, Collect, Share & Organize things on the web • Goal: help users better access & curate information on the net, on any device This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # ﬁle, You can obtain one at http://mozilla.org/MPL/2.0/Thursday, January 24, 13
112. 112. This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # ﬁle, You can obtain one at http://mozilla.org/MPL/2.0/Thursday, January 24, 13
113. 113. Why Neo4J? This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # ﬁle, You can obtain one at http://mozilla.org/MPL/2.0/Thursday, January 24, 13
114. 114. Why Neo4J? • The internet is a network of pages connected to each other. What better way to model that than in graphs? • No time lost ﬁghting with less expressive datastores • Easy to implement experimental features This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # ﬁle, You can obtain one at http://mozilla.org/MPL/2.0/Thursday, January 24, 13
115. 115. Cute meta + data This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # ﬁle, You can obtain one at http://mozilla.org/MPL/2.0/Thursday, January 24, 13
116. 116. Cute meta + data This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # ﬁle, You can obtain one at http://mozilla.org/MPL/2.0/Thursday, January 24, 13
117. 117. Neo4J Co-Existence • Node uuids as refs in external ElasticSearch also in internal Lucene • Custom search ranking for user history based on node relationship data • MySQL for user data, Redis for metrics This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # ﬁle, You can obtain one at http://mozilla.org/MPL/2.0/Thursday, January 24, 13
118. 118. Mozilla Pancake Available on BitBucket: https://bitbucket.org/mozillapancake/pancake Questions? Olivier Yiptong: oyiptong@mozilla.com This Material is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # ﬁle, You can obtain one at http://mozilla.org/MPL/2.0/Thursday, January 24, 13
119. 119. Thursday, January 24, 13
120. 120. [B] ACL from Hell One of the top 10 telcos worldwideThursday, January 24, 13
121. 121. Background Telenor calculated in 2010 that it´s self-service web solution for companies, MinBedrift, would not scale with the projected customer and subscription growth beyond 2012. Limit th G row ted jec Pro 2010 2015Thursday, January 24, 13
122. 122. [B] Telenor Background Background Telenor calculated in 2010 that it´s self-service web solution for companies, MinBedrift, would not scale with the projected customer and subscription growth beyond 2012. Limit th G row ted jec Pro 2010 2015Thursday, January 24, 13
123. 123. [B] Telenor Background • MinBedrif, a self service web solution for companies Background • 2010 - calculated that it would not scale Telenor calculated in 2010 that it´s self-service web solution for with projected growth companies, MinBedrift, would not scale with the projected customer and subscription growth beyond 2012. Limit th G row ted jec Pro 2010 2015Thursday, January 24, 13
124. 124. Example Access Authorization User Access may be given directly or by inheritance Customer Account U Subscription U Inherit = true Inherit = false In C he rit = C C C tru e A A A A A S S S S S S S S S SThursday, January 24, 13
125. 125. Business Case The business case is built on the negative consequence of NOT addressing the problem. Loss of customers (income) Reduced sales transactions (income) Increased manual support (expenses) OtherThursday, January 24, 13
126. 126. 30Thursday, January 24, 13
127. 127. Current ACL Service 30Thursday, January 24, 13
128. 128. Current ACL Service • Stored procedure in DB calculating all access • cached results for up to 24 hours • minutes to calculate for large customers • extremely complex to understand (1500 lines) • depends on temporary tables • joins across multiple tables 30Thursday, January 24, 13
129. 129. 31Thursday, January 24, 13
130. 130. ACL With Neo4j 31Thursday, January 24, 13
131. 131. ACL With Neo4j ๏ Faster than current solution ๏ Simpler to understand the logic ๏ Avoid large temporary tables ๏ Tailored for service (resource authorization) 31Thursday, January 24, 13
132. 132. Thursday, January 24, 13
133. 133. [C] Master of your DomainThursday, January 24, 13
134. 134. [C] MDM within Cisco master data management, sales compensation management, online customer support Description Beneﬁts Real-time conﬂict detection in sales compensation management. Performance : “Minutes to Milliseconds” Business-critical “P1” system. Neo4j allows Cisco to model complex Outperforms Oracle RAC, serving complex queries in real time algorithms, which still maintaining high performance over a large Flexibility dataset. Allows for Cisco to model interconnected data and complex queries with ease Background Robustness Neo4j replaces Oracle RAC, which was not performant enough for the With 9+ years of production experience, Neo4j brings a solid product. use case. Architecture 3-node Enterprise cluster with mirrored disaster recovery cluster Dedicated hardware in own datacenter Embedded in custom webapp Sizing 35 million nodes 50 million relationships 600 million propertiesThursday, January 24, 13
135. 135. 34Thursday, January 24, 13
136. 136. Really, once you start thinking in graphs its hard to stop Recommendations MDM Business intelligence Geospatial catalogs Systems Management access control Social computing your brain Biotechnology routing genealogy linguistics Making Sense of all that data compensation market vectors 34Thursday, January 24, 13
137. 137. Really, once you start thinking in graphs its hard to stop What will you build? RecommendationsMDM Business intelligence Geospatial catalogs Systems Management access control Social computing your brain Biotechnology routing genealogy linguistics Making Sense of all that data compensation market vectors 34Thursday, January 24, 13
138. 138. 35Thursday, January 24, 13
139. 139. Neo4j and, Thanks :) 35Thursday, January 24, 13