sapling/eden/fs/journal
Wez Furlong 5ca8bcdc60 implement eden->watchman subscriptions
Summary:
This tweaks the definition of the subscribe method in the
streamingeden thrift file and implements the server side of the
thrift service, and the client side to consume it in watchman.

The definition is now a bit simpler than it was previously; we're
now just sending a stream of the updated JournalPosition objects
to the client rather than computing and sending FileDelta objects.

This is cheaper for Eden to deal with because it is very cheap to take
the current journal position and pass that over the wire.  This is
important because a burst of mutations will likely queue up a bunch
of these in quick succession.

In a future diff I'm considering adding a latency parameter for
the subscription so that we can constrain the number of updates
over a certain time period (likely in the 10's of milliseconds range).

For now I just want to prove that the concept works.

On the watchman side we just need to pull these off the wire as they are sent
by eden, then wait for the subscription stream to settle before internally
broadcasting to any connected subscribers.

Reviewed By: bolinfest

Differential Revision: D4647259

fbshipit-source-id: 03aa16e59a43195a2505a8d03bce1ccf88a8d42f
2017-03-21 13:35:20 -07:00
..
test update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
Journal.cpp implement eden->watchman subscriptions 2017-03-21 13:35:20 -07:00
Journal.h implement eden->watchman subscriptions 2017-03-21 13:35:20 -07:00
JournalDelta.cpp update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
JournalDelta.h update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
TARGETS codemod: fixup more build targets in TARGETS 2017-01-14 01:44:01 -08:00