[tahoe-lafs-trac-stream] [tahoe-lafs] #1505: Error in Latency Report on MDMF Retrieve

tahoe-lafs trac at tahoe-lafs.org
Sat Aug 27 09:59:40 PDT 2011


#1505: Error in Latency Report on MDMF Retrieve
-------------------------+-------------------------------------------------
     Reporter:  zancas   |      Owner:  kevan
         Type:  defect   |     Status:  assigned
     Priority:  major    |  Milestone:  undecided
    Component:  unknown  |    Version:  1.9.0a1
   Resolution:           |   Keywords:  mdmf latency statistics response-
Launchpad Bug:           |  time
-------------------------+-------------------------------------------------

Comment (by kevan):

 This specific issue is due to a bug around line 806 of {{{retrieve.py}}}:

 {{{
          # validate this block, then generate the block hash root.
          self.log("validating share %d for segment %d" % (reader.shnum,
                                                               segnum))
          self._status.add_fetch_timing(reader.peerid, started)
          self._status.set_status("Valdiating blocks for segment %d" %
 segnum)

 }}}

 {{{started}}} is the time at which the fetch was started.
 {{{RetrieveStatus.add_fetch_timing}}} wants the elapsed time, though, so
 what we really want is {{{time.time() - started}}}. I'll attach a patch
 with this change.

 While investigating this bug, I noticed several other rough spots in how
 the retrieve process interacts with its status object. In particular,

   * The progress field is set to 0.0 in {{{Retrieve.__init__}}}, then
 never touched again, so it says 0.0% even though the retrieve is finished.
   * The decrypt and decode timing doesn't take into account multiple
 segments, so later segments clobber the timing data for earlier segments
 and the report page only shows decrypt and decode timing data for the last
 segment.
   * The status field says "decrypting" even though the retrieval process
 has finished.

 It's easy enough to be attentive about updating the status and progress
 fields. We can measure cumulative decryption and decoding time to address
 the second point; this requires minor modifications to the retrieve code
 and status code, and a wording tweak on the status template.

 (Do these issues deserve their own ticket? I'll open one if so.)

-- 
Ticket URL: <http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1505#comment:2>
tahoe-lafs <http://tahoe-lafs.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list