]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
better!
authorsage <sage@29311d96-e01e-0410-9327-a35deaab8ce9>
Fri, 15 Sep 2006 23:57:33 +0000 (23:57 +0000)
committersage <sage@29311d96-e01e-0410-9327-a35deaab8ce9>
Fri, 15 Sep 2006 23:57:33 +0000 (23:57 +0000)
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@863 29311d96-e01e-0410-9327-a35deaab8ce9

ceph/ebofs/Ebofs.cc
ceph/jobs/rados/wr_sizes

index 086101936f95a1dd7d2e9715745b0ae35f5e281d..a0d13e9bdd2f57297ca90ffc09291c4ab292fd02 100644 (file)
@@ -22,6 +22,7 @@
 
 #undef dout
 #define dout(x) if (x <= g_conf.debug_ebofs) cout << "ebofs."
+#define derr(x) if (x <= g_conf.debug_ebofs) cerr << "ebofs."
 
 char *nice_blocks(block_t b) 
 {
@@ -386,6 +387,9 @@ int Ebofs::commit_thread_entry()
                          << "size " << bc.get_size() 
                          << ", trimmable " << bc.get_trimmable()
                          << ", max " << g_conf.ebofs_bc_size
+                         << "; dirty " << bc.get_stat_dirty()
+                         << ", tx " << bc.get_stat_tx()
+                         << ", max dirty " << g_conf.ebofs_bc_max_dirty
                          << endl;
          
          
@@ -1317,14 +1321,19 @@ void Ebofs::alloc_write(Onode *on,
          assert(old.size() == 1);
 
          if (bc.bh_cancel_write(bh)) {
-               dout(10) << "alloc_write unallocated " << old[0] << ", canceled " << *bh << endl;
+               dout(10) << "alloc_write unallocated tx " << old[0] << ", canceled " << *bh << endl;
                allocator.unallocate(old[0]);  // release (into free)
+               alloc.insert(bh->start(), bh->length());
          } else {
-               dout(10) << "alloc_write released " << old[0] << ", couldn't canceled " << *bh << endl;
-               allocator.release(old[0]);     // release (into limbo)
+               if (bh->start() >= start && bh->end() <= start+len) {
+                 dout(10) << "alloc_write released tx " << old[0] << ", couldn't cancel " << *bh << endl;
+                 allocator.release(old[0]);     // release (into limbo)
+                 alloc.insert(bh->start(), bh->length());
+               } else {
+                 dout(10) << "alloc_write  skipped tx " << old[0] << ", not entirely within " 
+                                       << start << "~" << len << " and couldn't cancel " << *bh << endl;
+               }
          }
-         
-         alloc.insert(bh->start(), bh->length());
        }
        
        dout(10) << "alloc_write will (re)alloc " << alloc << " on " << *on << endl;
@@ -2059,7 +2068,7 @@ int Ebofs::_write(object_t oid, off_t offset, size_t length, bufferlist& bl)
        while (_write_will_block()) 
          bc.waitfor_stat();  // waits on ebofs_lock
 
-       dout(7) << "_write unblocked " 
+       dout(10) << "_write unblocked " 
                         << hex << oid << dec << " " << offset << "~" << length << endl;
   }
 
index 8b96fe6041208d2906f61b0a426b3040e874a8ab..9b73477ea6142cb319f5ced05f890a7fd21adec1 100644 (file)
@@ -7,7 +7,7 @@
        'nummds' => 1,
        'numosd' => [8],#10,14,16],
        'numclient' => [10*16],
-       'n' => 13,
+       'n' => 15,
 
        'fs' => 'ebofs',
 
        
        'writefile' => 1,
        'writefile_size' => [4096, 
-#                                               8*1024,
+                                                8*1024,
                                                 16*1024, 
-#                                               32*1024,
+                                                32*1024,
                                                 64*1024, 
-#                                               128*1024,
+                                                128*1024,
                                                 256*1024,
        #                                        512*1024,
 #                                               4*1024*1024,
 #                                               2*1024*1024,
-                                                1024*1024],
+#                                               1024*1024
+],
        'writefile_mb' => 10000,
 
        'file_layout_num_rep' => 1,
@@ -36,8 +37,9 @@
 
        'osd_pg_bits' => 12,
 
-       'ebofs_freelist' => [0, 1080, 65400],
+#      'ebofs_freelist' => [0, 1080, 65400],
 
+       'custom' => '--objecter_buffer_uncommitted 0',
 
                #'custom' => '--tcp_skip_rank0',