3198: Bugfixes. Working on benchmarking upload/download performance.
authorPeter Amstutz <peter.amstutz@curoverse.com>
Tue, 30 Dec 2014 22:10:24 +0000 (17:10 -0500)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Tue, 30 Dec 2014 22:10:24 +0000 (17:10 -0500)
sdk/python/arvados/arvfile.py
sdk/python/arvados/collection.py

index 836927257d0e7a5e1c25911ba49f98aea8ac121e..61ba3e04fd4a4ea538e60e2834988cc5ed721e6e 100644 (file)
@@ -348,8 +348,10 @@ class BlockManager(object):
             return
         if self._prefetch_threads is None:
             self._prefetch_queue = Queue.Queue()
-            self._prefetch_threads = [threading.Thread(target=worker, args=(self,))]
+            self._prefetch_threads = [threading.Thread(target=worker, args=(self,)),
+                                      threading.Thread(target=worker, args=(self,))]
             self._prefetch_threads[0].start()
+            self._prefetch_threads[1].start()
         self._prefetch_queue.put(locator)
 
 class ArvadosFile(object):
@@ -393,8 +395,6 @@ class ArvadosFile(object):
     def readfrom(self, offset, size, num_retries):
         if size == 0 or offset >= self.size():
             return ''
-        if self._keep is None:
-            self._keep = KeepClient(num_retries=num_retries)
         data = []
 
         for lr in locators_and_ranges(self._segments, offset, size + config.KEEP_BLOCK_SIZE):
index 6602ed1598927b665209886fd3431659f8028512..5857fb22a74aaf404f8bbd8f632d648b371fbf74 100644 (file)
@@ -641,7 +641,7 @@ class ResumableCollectionWriter(CollectionWriter):
 
 
 class Collection(CollectionBase):
-    def __init__(self, parent=None, manifest_locator_or_text=None, api_client=None,
+    def __init__(self, manifest_locator_or_text=None, parent=None, api_client=None,
                  keep_client=None, num_retries=0, block_manager=None):
 
         self._parent = parent
@@ -836,11 +836,11 @@ class Collection(CollectionBase):
 
     @_populate_first
     def __iter__(self):
-        self._items.iterkeys()
+        return self._items.iterkeys()
 
     @_populate_first
     def iterkeys(self):
-        self._items.iterkeys()
+        return self._items.iterkeys()
 
     @_populate_first
     def __getitem__(self, k):