Professional Documents
Culture Documents
Hi, Im Tim.
@pims
Formspring helps people nd out more about each other through sharing interesting & personal responses.
25M users
3.4B responses
1. Notication Feed
2. (Magic) Inbox
Notication Feed
Very similar to what @coda and @rckenne
built at Yammer.
tl;dr
Notication feed can be bounded in size Monotonic
Perfect t for
A few differences
Scala Python
Why python?
already part of our codebase lots of experience batteries included
So we added it
We switched to Protobuff
( and @sku_ added Protobuff connection caching to the riak python client)
2. (Magic) Inbox
8 MySQL shards
A E B F C G D H
Basic Inbox ow
A C
Frontend QUEUE
B D F H
E G
shard D fails
def inbox_lter(seq): """Representation that we pass to the client, i.e. lter out tombstones""" if seq is None: return [] return [(score, origin_id, askers) for score, deleted, origin_id, askers in seq if not deleted]
Can it go higher?
max
min
avg
Start at 1%
Roll out = 1%
Still 1%
Roll out = 1%
Still 1%
Roll out = 1%
Fail fast
How?
log and process later queue and process later
1024
OPS RIAK
Wednesday, July 27, 2011