Commit Graph

13 Commits

Author SHA1 Message Date
Evan Tschannen acb7e66d01 fix: failed logs do not count even if they have returned a result 2017-09-25 18:14:40 -07:00
Evan Tschannen 180438d41e fix: use the number of present logServers rather than the total size of the vector 2017-09-22 16:19:16 -07:00
Evan Tschannen 738ae21c3a fix: an optimization in buggified locking can cause recovery to break because it would not restart if a locked process was killed when the remaining logs cannot obtain a quorum 2017-09-22 15:07:57 -07:00
Alex Miller 585c9bf68f Quick fix to reduce CPU usage of ensureEpochLive.
It is suspected that policy recomputations are driving proxy CPU usage up, and
thus latency and throughput down.  To quickly confirm this theory, we're
forcing ensureEpochLive to wait until it has RF responses, which means we'll
probably only validate the policy once per call.
2017-09-21 18:22:24 -07:00
Evan Tschannen e8b895c878 added the ability to disable connection failures for a period of time after one happens 2017-09-18 12:46:29 -07:00
Evan Tschannen d9b64899c5 fix: we need to wait for log server failures if we have not locked all of the logs 2017-09-15 13:11:21 -07:00
Alex Miller d6b3be98fe Fix whitespace. 2017-09-13 15:49:39 -07:00
Alex Miller 06a9c7a772 Remove unnecessary policy recomputations in confirmEpochLive.
Watching for interface changes on readied servers was done as a workaround for
a case where all futures could be ready, but the policy verification would
never succeed.  This turns out to be because stopping a tlog causes an error to
be returned.  However, if a TLog is stopped, then we know that we can't do any
more commits, so we can just immediately stop trying and never mark our future
as ready.
2017-09-13 15:45:09 -07:00
Alex Miller 8d97a15c3f BUGGIFY recovery to lock only the minimum number of TLogs required to prevent a quorum.
This is to test the quorum logic introduced in the previous patch, and should
flush out any other bugs that rely on TLog locking during recovery.
2017-08-29 14:43:40 -07:00
Alex Miller f8486d1368 Only ensure a quorum of TLogs are unlocked to confirm the epoch hasn't ended.
Currently, GRV will wait to hear back from (almost) all TLogs to confirm that
they're unlocked and that the current epoch hasn't ended.  This confirms that
there isn't a new set of proxies and using the commit version from the old set
of proxies would violate causal consistency.

However, during recovery, we ensure that no quorum of TLogs exists before
starting a new epoch and allowing new commits on the new TLogs.  Thus, we only
need to wait until we have a quorum of TLogs that are unlocked.

This should be a significant improvement in latency particularly for the cases
when we start running >10 TLogs.
2017-08-29 14:43:40 -07:00
Alex Miller 4c1d61cd08 Assorted minor changes.
In which we:
* Clarify some math in a comment
* Remove misleading debugging information
* Add a useful trace event
2017-08-29 14:43:40 -07:00
Alex Miller dbfa94f735 LF -> CRLF
It appears a previous patch left parts of this file ending with LF, and the
majority of the file ends in CRLF.  I see no reason to keep this inconsistency,
but these line ending wars are going to drive me insane.
2017-08-29 14:43:40 -07:00
FDB Dev Team a674cb4ef4 Initial repository commit 2017-05-25 13:48:44 -07:00