1. unba.se
Distributed Database for Human Interaction
Daniel Norman
CTO and cofounder, güdTECH
unba.se founder
Twitter: @DreamingInCode
HPTSHigh Performance Transaction Systems 2017
unba.se
crates.io/crates/unbase
gitter.im/unbase
CAFFEINATEDEDITION
2. ● Open source
● Peer-to-peer “database”
● Strong causal consistency model
● Distributed immutable Merkle DAG
● Data locality or GTFO
● Rust!
YES!
3. ● No “Clients” or “Servers” – Just Nodes
● Not quite blockchain
● No DHT
● No a priori resource planning
● No stored state, just events (ish)
● No wallclock
● Not remotely done – pre pre pre alpha
NO!
4. Travel Sucks
Distance between you and
the stuff you probably care
about:
Much much less
Distance between you and the
arbiter of linearization:
Usually thousands of Km
(Stuff you care about)
Collaborating with Bob &
Alice down the hall
You
Messages/docs you authored
Messages/docs you read
Your wristwatch
Your IOT devices
Next door neighbors
The linearization you must visit
Backhoes
Congestion
Light travel time
Alligators
Net non-neutrality
BGP Screwups
Power outages
State Hacking
Spanning tree errors
Tripped-over cables
Cat on server
Submarine cable break
Settlement-free
peering disputes
State Surveillance
Packet corruption
Lie-FiUnder Provisioned hardware
Cheap electrolytic capacitors
Thousands of Km of:
DNS errors
Saturated cell-tower backhaul
RF reflections
Interference from microwave oven
Cosmic Rays
Disgruntled employees
DDOS Attacks
Rat-chewed cables
Corrosion Late internet payments
Gravitational time-dilation
Doppler effect
F*#KING BOINGO
Failed B-side Power
Core router problem
F*#KING TMOBILE
F*#KING NETGEAR
Cabinet switch failure
Misconfigured health check
NAT Misconfiguration
Load balancer failure
NTP failures
WHY!?
6. ● The Network is reliable
● A single arbiter of state makes a consistency-model “strong”
● Objective state is a thing
● Objective simultaneity is a thing
BUSTED!
7. “Observe locally, act globally”
Fig III. State machine for plugging leaky abstractions
FLAWLESS LOGIC!
8. ● Merkle DAG
● Query Context = Root Reference + Decorations
● Sparse vector clocks
● Selective-hearing gossip
● Commutative index merging
● Storage locality based on “Gravity” and “pressure”, not planning
HOW?
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19. Thank You!
Daniel Norman
CTO and Co-founder, güdTECH
unba.se founder
Twitter: @DreamingInCode
HPTSHigh Performance Transaction Systems 2017
unba.se
crates.io/crates/unbase
gitter.im/unbase
#unbase at irc.mozilla.orgunba.se/design/bibliography.html
CAFFEINATEDEDITION