]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test_filestore_workloadgen: track pg log size in memory
authorSage Weil <sage@newdream.net>
Fri, 20 Apr 2012 22:35:44 +0000 (15:35 -0700)
committerSage Weil <sage@newdream.net>
Fri, 20 Apr 2012 22:35:44 +0000 (15:35 -0700)
Avoid a stat!

Signed-off-by: Sage Weil <sage@newdream.net>
src/test/filestore/workload_generator.cc
src/test/filestore/workload_generator.h

index 3a4044ed5d870a7c180864602070fcdb9d4da6ae..8675afed691d7c583870e5867d63bab2df31c605 100644 (file)
@@ -246,12 +246,9 @@ void WorkloadGenerator::do_append_log(ObjectStore::Transaction *t,
   bufferlist bl;
   get_filled_byte_array(bl, log_append_bytes);
   hobject_t log_obj = get_coll_meta_object(coll);
-
-  struct stat st;
-  int err = m_store->stat(META_COLL, log_obj, &st);
-//  dout(0) << "stat return: " << err << dendl;
-  assert(err >= 0);
-  t->write(META_COLL, log_obj, st.st_size, bl.length(), bl);
+  uint64_t s = pg_log_size[coll];
+  t->write(META_COLL, log_obj, s, bl.length(), bl);
+  pg_log_size[coll] += bl.length();
 }
 
 void WorkloadGenerator::do_destroy_collection(ObjectStore::Transaction *t,
index 26f5e2bae633f03751747c3c46ead9cbb09a1206..435a3c7288a1a9d7264081e35d1cc287fb74dbf5 100644 (file)
@@ -77,6 +77,8 @@ private:
 
   rngen_t m_rng;
 
+  map<coll_t, uint64_t> pg_log_size;
+
   void wait_for_ready() {
     while (m_in_flight >= max_in_flight)
       m_cond.Wait(m_lock);