   [store ids]
   (validate-collection-of Multihash ids)
   (if (satisfies? store/BatchingStore store)
-    (remove nil? (store/-get-batch store ids))
+    (measure-method [::get-batch ids]
+      (keep (partial meter/metered-block store ::meter/io-read)
+            (store/-get-batch store ids)))
     (doall (keep (partial get store) ids))))
 
 

  (when-not (instance? Multihash id)
    (throw (IllegalArgumentException.
             (str "Id value must be a multihash, got: " (pr-str id)))))
  (when-let [block (store/-get store id)]
    (when-not (= id (:id block))
      (throw (RuntimeException.
               (str "Asked for block " id " but got " (:id block)))))
    block))


(defn put!

  store should be empty. This is not guaranteed to be an atomic operation!"
  [store]
  (if (satisfies? store/ErasableStore store)
    (measure-method [::erase!! nil]
      (store/-erase! store))
    (run! (comp (partial delete! store) :id)
          (store/-list store nil))))

