Sun, 10 Dec 2017 03:49:48 +0100 stablesort: warm jump cache more efficiently
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 03:49:48 +0100] rev 3326
stablesort: warm jump cache more efficiently We no longer for a full depth iteration for all request: - we exit early for non-merge, - for merge, we only iterate over the exclusive area.
Sun, 10 Dec 2017 03:39:56 +0100 stablesort: use a regular dict for jumps
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 03:39:56 +0100] rev 3325
stablesort: use a regular dict for jumps This will help knowing what revision we have already queried or not.
Wed, 20 Dec 2017 15:51:05 +0100 stablerange: use the jump information for faster iteration
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 15:51:05 +0100] rev 3324
stablerange: use the jump information for faster iteration Instead of doing a full iteration over the exclusive set, we compare the jump information instead. This perform the same kind of logic than before but will allow for much faster iteration once all the caches are in place.
Sun, 10 Dec 2017 02:46:05 +0100 stablesort: expose the jumps sequence to other code
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 02:46:05 +0100] rev 3323
stablesort: expose the jumps sequence to other code The stable range needs it to build exclusive subrange efficiently.
Wed, 20 Dec 2017 16:20:26 +0100 stablesort: use 'depth' in mergepoint tie breaker
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 16:20:26 +0100] rev 3322
stablesort: use 'depth' in mergepoint tie breaker The parents with the most depth will is considered lower. It has a couple of advantages. 1) the more shallow parent probably have less exclusive revision, 2) it makes Oedipus merge behave like close to the linear case,
Wed, 20 Dec 2017 13:41:33 +0100 stablesort: rework jump gathering
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 13:41:33 +0100] rev 3321
stablesort: rework jump gathering The old code was buggy in some case, the new code give the same result as the 'headstart' version.
Wed, 20 Dec 2017 12:36:45 +0100 stablesort: stop recording jump type
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 12:36:45 +0100] rev 3320
stablesort: stop recording jump type There are no mature user of this "jump type" data and the current implementation is known to be buggy. So we drop the logic for now. This will make on disk storage simpler. The data will be reintroduced later
Wed, 20 Dec 2017 12:29:02 +0100 stablesort: pass a jump recording function instead of a list
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 12:29:02 +0100] rev 3319
stablesort: pass a jump recording function instead of a list This seems cleaner to abstract the underlying storage to the lower level. This also makes use more flexible about jump detection.
Wed, 20 Dec 2017 12:27:17 +0100 stablesort: minor indent fix
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 12:27:17 +0100] rev 3318
stablesort: minor indent fix
Wed, 20 Dec 2017 12:19:59 +0100 stablesort: clarify subcall to the exclusive side
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 12:19:59 +0100] rev 3317
stablesort: clarify subcall to the exclusive side Before doing deeper rework of this logic, we tackle the simplest parts.
Wed, 20 Dec 2017 13:18:49 +0100 docgraph: update test output with new output
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 13:18:49 +0100] rev 3316
docgraph: update test output with new output
Mon, 18 Dec 2017 09:04:16 +0100 stablesort: record, cache and reuse jump
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 09:04:16 +0100] rev 3315
stablesort: record, cache and reuse jump Iterating below a merge means two things: 1) iterate over the part exclusive to the higher parents, 2) iterate from the lower parents. While iterating on the exclusive part, there will be case were we just go the next natural parent, and case were we'll have to "jump" to another revision. If we record all point this "jump" happens and their target, we can easily reproduce the iteration in the future. With that information we can iterate over the exclusive part of the merge without having to compute it entirely. In addition we store the reason of the jump. This will help the stable range processing later.
Mon, 18 Dec 2017 18:49:34 +0100 stablesort: fix head start computation
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 18:49:34 +0100] rev 3314
stablesort: fix head start computation The recursion was wrong and provided wrong result. As a side effect, this seems to hint that `stablesort_mergepoint_bounded` is not giving the right result for complex set.
Mon, 18 Dec 2017 08:36:52 +0100 stablesort: avoid attempting to sort a tuple
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 08:36:52 +0100] rev 3313
stablesort: avoid attempting to sort a tuple This seems silly.
Mon, 18 Dec 2017 07:20:14 +0100 stablerange: use the filterparents utility
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 07:20:14 +0100] rev 3312
stablerange: use the filterparents utility
(0) -3000 -1000 -300 -100 -15 +15 +100 +300 +1000 tip