| 
Created on 2009-02-13.17:56:44 by kowey, last changed 2017-07-31.00:24:00 by gh. 
 
  
   | msg7307 (view) | Author: kowey | Date: 2009-02-13.17:56:39 |  |  
   | This is a low-level optimisation for darcs.  We had tried it out between darcses
1.0.9 and 2.0.0, but backed it out due to bugs.  Note that camp uses chunky
hunks, if I understand correctly.
David has suggested a less ambitious and safer approach. The idea is that this
would be akin to the relationship between hashed-1.0 and plain repositories, in
other words, that you would need a new darcs client to interact with the chunky
repository, but that it would be 100% compatible with non-chunky hunks (can be
pushed back and forth)
I need a volunteer to:
- Describe what chunky hunks are
- Describe how we think they will help darcs performance |  
   | msg8444 (view) | Author: kowey | Date: 2009-08-24.01:14:31 |  |  
   | These patches by David may be relevant.
  * add new "chunk" patch format (currently only used in darcs-2 repositories).
  * make ColourPrinter able to deal nicely with userchunks that contain newlines.
  * rewrite hunks to store solid chunks rather than lists of lines.
See also http://mornfall.net/blog/patch_formats.html |  
   | msg10031 (view) | Author: kowey | Date: 2010-02-19.11:44:04 |  |  
   | Jason: is this what your HunkHandle work is about?
Please un-assign yourself if I'm mistaken. |  
   | msg10036 (view) | Author: dagit | Date: 2010-02-19.16:10:03 |  |  
   | My HunkHandles are a record that stores a filename, an offset and a
length.  They can be used to read in a hunk patch after an initial scan
over a patch bundle to calculate the handles.
It would be nice to also adapt commute and merge to rely more on the
meta data about a hunk and ignore the playload of the hunk whenever
possible, but that's not going to be in my initial rewrite.
Note:  No on disk format changes are necessary for my change.  I'm
sacrificing a bit of disk IO in an attempt to make disk accesses more
explicit (the goal is to make it harder to hold on to things in memory
that are huge).
I think the two ideas "chunky" rep and HunkHandles have similar goals
but the work itself is quite different.  Therefore, I will remove myself
as the owner of this ticket. |  
   | msg10037 (view) | Author: kowey | Date: 2010-02-19.16:38:57 |  |  
   | On Fri, Feb 19, 2010 at 16:10:06 +0000, Jason Dagit wrote:
> My HunkHandles are a record that stores a filename, an offset and a
> length.  They can be used to read in a hunk patch after an initial scan
> over a patch bundle to calculate the handles.
> I think the two ideas "chunky" rep and HunkHandles have similar goals
> but the work itself is quite different.
Jason graciously explained this to me on IRC.  For tracking purposes:
 - http://irclog.perlgeek.de/darcs/2010-02-19#i_2009373
 - http://lists.osuosl.org/pipermail/darcs-users/2010-January/022760.html
So it seems that there are 4 ideas going on, three of which sort of
get swept up into the chunky-hunk umbrella.
 1. changing the in-memory representation of hunk patches
 2. changing the on-disk representation of hunk patches
 3. radically changing #1/#2 so that hunks just point to hashes of
    contents (Petr's idea)
 4. Lightly changing the in-memory representation so that we avoid
    storing much more than filename/offset in memory.  Let's step
    through these backwards.
    Unlike #3, we do not change the notion of commutation in any
    way; nor we do we change the fact that we still explicitly
    manipulate hunk contents.  No hashes here.
    Unlike #2, we do not modify the on-disk representation of hunk
    patches in any way.  (This should be fairly clear).  Just an
    online behaviour, moving some of our work from memory to disk.
    Unlike #1, we do not change the internal representation of the
    contents.  We still work with a [ByteString] representing a
    list of lines, and not a single ByteString representing a region.
Phew! Maybe HunkHandle needs a ticket of its own.
-- 
Eric Kow <http://www.nltg.brighton.ac.uk/home/Eric.Kow>
PGP Key ID: 08AC04F9 |  
   | msg13833 (view) | Author: ganesh | Date: 2011-03-30.20:47:25 |  |  
   | The blog link above seems to now be 
http://www.mornfall.net/blog/patch_formats.html |  
   | msg13834 (view) | Author: bsrkaditya | Date: 2011-03-30.20:47:50 |  |  
   | Just, as a note,
In irc, Heffalump has said that the patch
* add new "chunk" patch format (currently only used in darcs-2 
repositories).
had been rolled back. |  
   | msg13864 (view) | Author: kowey | Date: 2011-04-02.09:21:35 |  |  
   | OK, I just had a bit of a discussion with this on Petr, 
http://irclog.perlgeek.de/darcs/2011-04-02#i_3448192
Basically following the list in msg10037
1. Would be pointless/stupid without doing #2 or #3
2. Is doable (think of how hashed relates to old-fashioned), but you 
have to do work to prove that commutation is invariant under the hunk 
conversion), which is almost as much work as #3 for the team.  Perhaps 
it would be less work for users, but as a matter of principle, we want 
to resist format changes unless we really need them
3. Involves new patch types, but is ultimately easier than #2 according 
to Petr.  The current URL is 
http://www.mornfall.net/blog/patch_formats.html 
4. Is basically orthogonal to #3.  We could do both or neither, or some 
combination in between.  See issue2055
*SO* Unless somebody comes in and argues that #2 actually makes sense 
without doing #3, I say that Petr's notion of chunky hunks is the 
definitive one.  If anybody disagrees with this view, they should bring 
it up. Phew! |  |
 
| Date | User | Action | Args |  | 2009-02-13 17:56:44 | kowey | create |  |  | 2009-04-15 22:52:21 | kowey | set | status: needs-reproduction -> deferred nosy:
  kowey, simon, thorkilnaur, dmitry.kurochkin
 |  | 2009-08-17 17:10:16 | kowey | link | issue80 superseder |  | 2009-08-21 16:37:56 | kowey | link | issue1007 superseder |  | 2009-08-24 01:14:33 | kowey | set | nosy:
  kowey, simon, thorkilnaur, dmitry.kurochkin messages:
  + msg8444
 |  | 2009-08-25 17:40:52 | admin | set | nosy:
  + darcs-devel, - simon |  | 2009-08-26 12:15:16 | kowey | set | priority: wishlist -> feature nosy:
  kowey, darcs-devel, thorkilnaur, dmitry.kurochkin
 |  | 2009-08-27 14:32:48 | admin | set | nosy:
  kowey, darcs-devel, thorkilnaur, dmitry.kurochkin |  | 2010-02-19 11:44:06 | kowey | set | status: deferred -> has-patch nosy:
  + dagit
 messages:
  + msg10031
 assignedto: dagit
 |  | 2010-02-19 16:10:06 | dagit | set | messages:
  + msg10036 |  | 2010-02-19 16:10:33 | dagit | set | status: has-patch -> deferred assignedto: dagit ->
 |  | 2010-02-19 16:10:42 | dagit | set | nosy:
  - dagit |  | 2010-02-19 16:38:59 | kowey | set | messages:
  + msg10037 |  | 2011-03-30 20:47:26 | ganesh | set | messages:
  + msg13833 |  | 2011-03-30 20:47:51 | bsrkaditya | set | messages:
  + msg13834 |  | 2011-04-02 09:21:37 | kowey | set | messages:
  + msg13864 |  | 2017-07-31 00:24:00 | gh | set | status: deferred -> given-up | 
 |