<li>Storage Index: <span n:render="time" n:data="time_storage_index" />
(<span n:render="rate" n:data="rate_storage_index" />)</li>
<li>[Contacting Helper]: <span n:render="time" n:data="time_contacting_helper" /></li>
+ <ul>
+ <li>[Helper Already-In-Grid Check]: <span n:render="time" n:data="time_existence_check" /></li>
+ </ul>
<li>[Upload Ciphertext To Helper]: <span n:render="time" n:data="time_cumulative_fetch" />
(<span n:render="rate" n:data="rate_ciphertext_fetch" />)</li>
- <li>[Helper Total]: <span n:render="time" n:data="time_helper_total" /></li>
<li>Peer Selection: <span n:render="time" n:data="time_peer_selection" /></li>
- <li>Encode And Push: <span n:render="time" n:data="time_total_encode_and_push" /></li>
+ <li>Encode And Push: <span n:render="time" n:data="time_total_encode_and_push" />
+ (<span n:render="rate" n:data="rate_encode_and_push" />)</li>
<ul>
<li>Cumulative Encoding: <span n:render="time" n:data="time_cumulative_encoding" />
(<span n:render="rate" n:data="rate_encode" />)</li>
(<span n:render="rate" n:data="rate_push" />)</li>
<li>Send Hashes And Close: <span n:render="time" n:data="time_hashes_and_close" /></li>
</ul>
+ <li>[Helper Total]: <span n:render="time" n:data="time_helper_total" /></li>
</ul>
</ul>
</ul>
def data_time_contacting_helper(self, ctx, data):
return self._get_time("contacting_helper")
+ def data_time_existence_check(self, ctx, data):
+ return self._get_time("existence_check")
+
def data_time_cumulative_fetch(self, ctx, data):
return self._get_time("cumulative_fetch")
def data_rate_push(self, ctx, data):
return self._get_rate("cumulative_sending")
+ def data_rate_encode_and_push(self, ctx, data):
+ d = self.upload_results()
+ def _convert(r):
+ file_size = r.file_size
+ if file_size is None:
+ return None
+ time1 = r.timings.get("cumulative_encoding")
+ if time1 is None:
+ return None
+ time2 = r.timings.get("cumulative_sending")
+ if time2 is None:
+ return None
+ try:
+ return 1.0 * file_size / (time1+time2)
+ except ZeroDivisionError:
+ return None
+ d.addCallback(_convert)
+ return d
+
def data_rate_ciphertext_fetch(self, ctx, data):
d = self.upload_results()
def _convert(r):