Surfing the Infinite Monkey Theorem for Fun and Profit Dr. Jim - - PowerPoint PPT Presentation

surfing the infinite monkey theorem for fun and profit
SMART_READER_LITE
LIVE PREVIEW

Surfing the Infinite Monkey Theorem for Fun and Profit Dr. Jim - - PowerPoint PPT Presentation

Surfing the Infinite Monkey Theorem for Fun and Profit Dr. Jim Webber Chief Scientist Overview The Infinite Monkey Theorem Neo4j and graph data Evolutionary, inclusive architecture Science! Revenge of the monkeys End OK,


slide-1
SLIDE 1

Surfing the Infinite Monkey Theorem for Fun and Profit

  • Dr. Jim Webber

Chief Scientist

slide-2
SLIDE 2

Overview

  • The Infinite Monkey Theorem
  • Neo4j and graph data
  • Evolutionary, inclusive architecture
  • Science!
  • Revenge of the monkeys
  • End
slide-3
SLIDE 3
slide-4
SLIDE 4

OK, so what’s Neo4j?

It’s a Graph Database

slide-5
SLIDE 5

stole from loves loves enemy enemy

A Good Man Goes to War

appeared in appeared in appeared in appeared in

Victory of the Daleks

appeared in appeared in companion companion enemy

slide-6
SLIDE 6

stole from loves loves enemy enemy

A Good Man Goes to War

appeared in appeared in appeared in

Victory of the Daleks

appeared in appeared in companion companion enemy

planet prop species species species character character character episode episode

appeared in

slide-7
SLIDE 7
slide-8
SLIDE 8
slide-9
SLIDE 9
slide-10
SLIDE 10
slide-11
SLIDE 11
slide-12
SLIDE 12
slide-13
SLIDE 13
slide-14
SLIDE 14

The difference between genius and stupidity is that genius has its limits

slide-15
SLIDE 15

Neo4j’s architecture today

slide-16
SLIDE 16

Neo4j’s Graph Native Stack

16

CypherEngine Cypher HTTP Endpoint Bolt Endpoint Custom Rest APOC Extensions Parser Slotted Runtime (EE) Interpreted Runtime Native Graph Engine In-Memory Page Cache Native Graph Storage Indexing

ACID

Cost-based Optimizer Fast Write Buffering CAPI Adapter Configuration Data Stores Logging Security High Availability Monitoring Command Line Interface Neo4j Browser Sync Custom Functions App

  • r

CommunityDriver Language Drivers

slide-17
SLIDE 17
slide-18
SLIDE 18

In Reality…

  • The architecture is a somewhat idealised picture
  • You generally need to know the code to see the architecture
  • Packages are somewhat helpful
  • The biggest building blocks appear as modules
  • It takes time to intellectually map code to architecture
slide-19
SLIDE 19

Architecture is stable, but…

  • Implementation choices starting to be invalidated by hardware
  • RAM is volatile, won’t be for long
  • GPU commonplace, FPGA will be commonplace in < 5 years
  • We can update modules, but boundaries not strongly fixed
  • E.g. kernel-level locking behaviour can be relaxed by knowing about query

pattern  greater throughput, fewer spurious aborts

  • We can cluster
  • But leader-oriented protocols aren’t good enough w.r.t. writes
  • We must evolve this architecture continuously, iteratively
  • But contributors are flighty, dev team needs some stability
slide-20
SLIDE 20

But enterprise users don’t like change

  • They like to sweat assets like spinning disk, low-RAM servers
  • We have seen people in production with < 2GB RAM!
  • They value stability and ease of upgrade
  • Though some rarely upgrade
  • And these folks pay us $ for software licenses
slide-21
SLIDE 21
slide-22
SLIDE 22

Crossing the Chasm

slide-23
SLIDE 23
slide-24
SLIDE 24
slide-25
SLIDE 25
slide-26
SLIDE 26
slide-27
SLIDE 27

Fridge Power Pop-up power Boiling water tap power Double power sockets Oven Power Dishwasher Power

What’s the plan?

slide-28
SLIDE 28

Neo4j is a broad church

slide-29
SLIDE 29

DBMS Kernel, clustering: ~100% employees Cypher Query planner, compiler, optimizer: ~90% employees Surface Scripts, drivers, monitoring etc: ~70% employees

slide-30
SLIDE 30
slide-31
SLIDE 31
slide-32
SLIDE 32

Architecture is communication

slide-33
SLIDE 33

The monkeys always win!

http://mcgarnagle.files.wordpress.com/2011/08/40020-strip.gif

slide-34
SLIDE 34

Thanks for listening

@jimwebber