On 16/05/2009, at 8:45 PM, Adam Kocoloski wrote:

I encountered this "one more byte" problem once before, but it wasn't 100% reproducible, so I wasn't really comfortable checking in a workaround. I've basically been waiting to see if it would ever show up for anyone else :-/

I'm lucky to have a repeatable failure :/

I think we should commit this change, but I'd still like to confirm that the attachment on the target is not corrupted by the chunk processing issue (i.e. the last chunk starts with a \r or something like that).

I can confirm that the target and source of replicated resources affected by this issue are identical with this fix, and both are correct i.e. uncorrupted, although this is only according to the failures I've seen.

Now, on to the checkpointing conditions. I think there's some confusion about the attachment workflow. Attachments are downloaded _immediately_ and in their entirety by ibrowse, which then sends the data as 1MB binary chunks to the attachment receiver processes.

Are they downloaded to disk by ibrowse?

In another thread Matt Goodall suggested checkpointing after a certain amount of time has passed. So we'd have a checkpointing algo that considers

* memory utilization
* number of pending writes
* time elapsed

That seems to cover both resource usage and incremental progress. As far as the couch_util:should_flush mechanism is concerned, I think a good idea would be to commit 1 document, then 2, then 4 i.e. a binary increasing window which adapts well to both unreliable and reliable connections without requiring configuration, which is tricky because you may want to run the system in a variety of scenarios, and you might not know what the failure characteristics are (and they may change over time).

While we on this - any idea about why couchdb is quiting during replication? It's not giving me any errors.

Antony Blakey
--------------------------
CTO, Linkuistics Pty Ltd
Ph: 0438 840 787

Hi, I'd like to do $THING. I know that $SOLUTION_A and $SOLUTION_B will do it very easily and for a very reasonable price, but I don't want to use $SOLUTION_A or $SOLUTION_B because $VAGUE_REASON and $CONTRADICTORY_REASON. Instead, I'd like your under-informed ideas on how to achieve my $POORLY_CONCEIVED_AMBITIONS using Linux, duct tape, an iPod, and hours and hours of my precious time.
  -- Slashdot response to an enquiry


Reply via email to