joerg.sonnenberger (Joerg Sonnenberger)
User

Projects

User does not belong to any projects.

User Details

User Since
Dec 6 2017, 9:25 AM (5 w, 6 d)

Recent Activity

Today

joerg.sonnenberger updated the diff for D1856: wireproto: support for pullbundles.
Tue, Jan 16, 3:16 PM
joerg.sonnenberger updated the diff for D1856: wireproto: support for pullbundles.
Tue, Jan 16, 3:16 PM
joerg.sonnenberger added a dependency for D1856: wireproto: support for pullbundles: D1862: wireproto: split streamres into legacy and modern case.
Tue, Jan 16, 3:14 PM
joerg.sonnenberger added a dependent revision for D1862: wireproto: split streamres into legacy and modern case: D1856: wireproto: support for pullbundles.
Tue, Jan 16, 3:14 PM

Yesterday

joerg.sonnenberger created D1862: wireproto: split streamres into legacy and modern case.
Mon, Jan 15, 6:31 PM
joerg.sonnenberger updated the diff for D1856: wireproto: support for pullbundles.
Mon, Jan 15, 5:31 PM
joerg.sonnenberger updated the diff for D1856: wireproto: support for pullbundles.
Mon, Jan 15, 2:33 PM
joerg.sonnenberger abandoned D1857: pull: re-run discovery and pullbundle2 if server didn't send all heads.

Merging into the parent review.

Mon, Jan 15, 2:26 PM
joerg.sonnenberger updated the diff for D1856: wireproto: support for pullbundles.
Mon, Jan 15, 2:22 PM

Sun, Jan 14

joerg.sonnenberger updated the diff for D1856: wireproto: support for pullbundles.
Sun, Jan 14, 7:02 PM
joerg.sonnenberger added a dependency for D1857: pull: re-run discovery and pullbundle2 if server didn't send all heads: D1856: wireproto: support for pullbundles.
Sun, Jan 14, 6:29 PM
joerg.sonnenberger added a dependent revision for D1856: wireproto: support for pullbundles: D1857: pull: re-run discovery and pullbundle2 if server didn't send all heads.
Sun, Jan 14, 6:29 PM
joerg.sonnenberger added a comment to D1856: wireproto: support for pullbundles.

I wish we could find a way to send multiple, inline, pre-generated bundles in one response. However, the existing design of compression within the bundle2 format doesn't easily facilitate this. We should think long and hard about whether to implement this feature as partial pull or extend bundle2 to allow us to do nice things and avoid the extra client-server roundtrips.

Sun, Jan 14, 6:29 PM
joerg.sonnenberger updated the diff for D1857: pull: re-run discovery and pullbundle2 if server didn't send all heads.
Sun, Jan 14, 5:47 PM
joerg.sonnenberger added a comment to D1856: wireproto: support for pullbundles.

For my test case, which is a bundle of all changes in the NetBSD repo before 2014 and a yearly bundle afterwards until 2018/1/1 and normal pull for the rest, find_pullbundle needs less than 0.5s of CPU time in this iteration when it matches.
After the initial clone and with additional available changes, pull time is:

Sun, Jan 14, 11:06 AM
joerg.sonnenberger updated the diff for D1856: wireproto: support for pullbundles.
Sun, Jan 14, 6:22 AM

Sat, Jan 13

joerg.sonnenberger added a comment to D1857: pull: re-run discovery and pullbundle2 if server didn't send all heads.

With the last update, the obs issues are resolved.

Sat, Jan 13, 6:12 AM
joerg.sonnenberger added a comment to D1850: hgweb: when no agreement on compression can be found, fail for v2.

Which status code shall we use then, just plain 400?

Sat, Jan 13, 6:08 AM

Fri, Jan 12

joerg.sonnenberger committed rHGedf52be98978: test-pull-r: explicitly kill server processes.
test-pull-r: explicitly kill server processes
Fri, Jan 12, 9:54 PM
joerg.sonnenberger closed D1855: explicitly kill server processes.
Fri, Jan 12, 8:14 PM
joerg.sonnenberger committed rHG5bda7bd29688: explicitly kill server processes.
explicitly kill server processes
Fri, Jan 12, 8:14 PM
joerg.sonnenberger updated the diff for D1857: pull: re-run discovery and pullbundle2 if server didn't send all heads.
Fri, Jan 12, 7:14 PM
joerg.sonnenberger added a comment to D1857: pull: re-run discovery and pullbundle2 if server didn't send all heads.

This is a proof-of-concept. There is an interaction with obsoletion that I am still trying to understand (and fix).

Fri, Jan 12, 5:27 PM
joerg.sonnenberger created D1857: pull: re-run discovery and pullbundle2 if server didn't send all heads.
Fri, Jan 12, 5:08 PM
joerg.sonnenberger updated the diff for D1856: wireproto: support for pullbundles.
Fri, Jan 12, 4:31 PM
joerg.sonnenberger created D1856: wireproto: support for pullbundles.
Fri, Jan 12, 12:32 PM
joerg.sonnenberger created D1855: explicitly kill server processes.
Fri, Jan 12, 11:13 AM
joerg.sonnenberger created D1850: hgweb: when no agreement on compression can be found, fail for v2.
Fri, Jan 12, 3:04 AM

Dec 11 2017

joerg.sonnenberger added a comment to D1621: transaction: encodes tuples in changes['phases'] as 4 bit ints.

The bitset version has shown already that optimizing this is worthwhile and can eliminate up to 10% of the total size of the transaction object.

Dec 11 2017, 1:05 PM

Dec 10 2017

joerg.sonnenberger added a comment to D1621: transaction: encodes tuples in changes['phases'] as 4 bit ints.

This version should be committable. It introduces the necessary API for isolating further changes and gives a small improvement already. I'll be looking at provider a memory and time efficient sparce vector next, that's where the real benefits will be.

Dec 10 2017, 4:13 PM
joerg.sonnenberger updated the diff for D1621: transaction: encodes tuples in changes['phases'] as 4 bit ints.
Dec 10 2017, 4:11 PM

Dec 9 2017

joerg.sonnenberger added a comment to D1622: [PoC] transaction: Use intbitset for implementing changes['phase'].

Like I said, this is primarily a proof of concept. I'm still playing with different approaches and I don't think intbitset is a good fit for other reasons, but it worked the best from the various pre-existing implementations.

Dec 9 2017, 10:15 AM

Dec 8 2017

joerg.sonnenberger added a comment to D1621: transaction: encodes tuples in changes['phases'] as 4 bit ints.

This is a Proof-of-Concept and with a follow-up in D1622 to use a C implementation for the bitset.

Dec 8 2017, 7:10 PM
joerg.sonnenberger created D1622: [PoC] transaction: Use intbitset for implementing changes['phase'].
Dec 8 2017, 7:06 PM
joerg.sonnenberger created D1621: transaction: encodes tuples in changes['phases'] as 4 bit ints.
Dec 8 2017, 7:06 PM
joerg.sonnenberger added a dependent revision for D1621: transaction: encodes tuples in changes['phases'] as 4 bit ints: D1622: [PoC] transaction: Use intbitset for implementing changes['phase'].
Dec 8 2017, 7:06 PM
joerg.sonnenberger closed D1606: phases: drop the list with phase of each rev, always comput phase sets.
Dec 8 2017, 10:29 AM
joerg.sonnenberger closed D1615: transaction: build changes['revs'] as range instead of a set.
Dec 8 2017, 10:29 AM
joerg.sonnenberger committed rHGd13526333835: phases: drop the list with phase of each rev, always comput phase sets.
phases: drop the list with phase of each rev, always comput phase sets
Dec 8 2017, 10:29 AM
joerg.sonnenberger committed rHG137a08d82232: transaction: build changes['revs'] as range instead of a set.
transaction: build changes['revs'] as range instead of a set
Dec 8 2017, 10:29 AM

Dec 7 2017

joerg.sonnenberger retitled D1615: transaction: build changes['revs'] as range instead of a set from transaction: build changes['revs'] as range instead of a set. to transaction: build changes['revs'] as range instead of a set.
Dec 7 2017, 8:32 PM
joerg.sonnenberger created D1615: transaction: build changes['revs'] as range instead of a set.
Dec 7 2017, 7:24 PM
joerg.sonnenberger updated the diff for D1606: phases: drop the list with phase of each rev, always comput phase sets.
Dec 7 2017, 7:01 PM
joerg.sonnenberger added inline comments to D1606: phases: drop the list with phase of each rev, always comput phase sets.
Dec 7 2017, 10:38 AM

Dec 6 2017

joerg.sonnenberger created D1606: phases: drop the list with phase of each rev, always comput phase sets.
Dec 6 2017, 9:48 AM