]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
psim: count result set sizes
authorSage Weil <sage@newdream.net>
Wed, 13 May 2009 21:56:28 +0000 (14:56 -0700)
committerSage Weil <sage@newdream.net>
Wed, 13 May 2009 21:57:14 +0000 (14:57 -0700)
src/psim.cc

index de71dbf1fdb79a99b52ef32dd12714a471949ad6..b8aa5f53a66c9e545e566e0686b01a9cc49ec64d 100644 (file)
@@ -21,20 +21,24 @@ int main(int argc, char **argv)
   int count[n];
   for (int i=0; i<n; i++) {
     osdmap.set_state(i, osdmap.get_state(i) | CEPH_OSD_UP);
-    osdmap.set_offload(i, CEPH_OSD_IN);
+    //if (i<8)
+      osdmap.set_weight(i, CEPH_OSD_IN);
     count[i] = 0;
   }
 
-  ceph_file_layout layout = g_default_file_layout;
-  //layout.fl_pg_preferred = 2;
-  for (int f = 1; f < 10000; f++) {  // files
+  int size[4];
+  for (int i=0; i<4; i++)
+    size[i] = 0;
+
+  for (int f = 1; f <= 10000; f++) {  // files
     for (int b = 0; b < 4; b++) {   // blocks
       object_t oid(f, b);
-      ceph_object_layout l = osdmap.file_to_object_layout(oid, layout);
+      ceph_object_layout l = osdmap.make_object_layout(oid, 0);
       vector<int> osds;
       pg_t pgid = pg_t(l.ol_pgid);
-      //cout << "oid " << oid << " pgid " << pgid << std::endl;
       osdmap.pg_to_osds(pgid, osds);
+      size[osds.size()]++;
+      //cout << "oid " << oid << " pgid " << pgid << " on " << osds << std::endl;
       for (unsigned i=0; i<osds.size(); i++) {
        //cout << " rep " << i << " on " << osds[i] << std::endl;
        count[osds[i]]++;
@@ -45,6 +49,9 @@ int main(int argc, char **argv)
   for (int i=0; i<n; i++) {
     cout << "osd" << i << "\t" << count[i] << std::endl;
   }
+  for (int i=0; i<4; i++) {
+    cout << "size" << i << "\t" << size[i] << std::endl;
+  }
   
   return 0;
 }