]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Revert "Fix read performance regression in ObjectCacher"
authorSage Weil <sage@redhat.com>
Fri, 24 Oct 2014 18:16:25 +0000 (11:16 -0700)
committerSage Weil <sage@redhat.com>
Fri, 24 Oct 2014 18:16:25 +0000 (11:16 -0700)
This reverts commit 65be257e9295619b960b49f6aa80ecdf8ea4d16a.

Signed-off-by: Sage Weil <sage@redhat.com>
src/osdc/ObjectCacher.cc
src/osdc/ObjectCacher.h

index 355e0f2043e6d09370ab13ff214fea54017813cd..5210e934c432c85f93868d2f9870caee9e569cc0 100644 (file)
@@ -955,14 +955,14 @@ void ObjectCacher::flush(loff_t amount)
 }
 
 
-void ObjectCacher::trim(uint64_t extra_space)
+void ObjectCacher::trim()
 {
   assert(lock.is_locked());
   ldout(cct, 10) << "trim  start: bytes: max " << max_size << "  clean " << get_stat_clean()
                 << ", objects: max " << max_objects << " current " << ob_lru.lru_get_size()
                 << dendl;
 
-  while (get_stat_clean() > 0 && (uint64_t) (get_stat_clean() + get_stat_rx() + extra_space) > max_size) {
+  while (get_stat_clean() > 0 && (uint64_t) get_stat_clean() > max_size) {
     BufferHead *bh = static_cast<BufferHead*>(bh_lru_rest.lru_expire());
     if (!bh)
       break;
@@ -1134,10 +1134,6 @@ int ObjectCacher::_readx(OSDRead *rd, ObjectSet *oset, Context *onfinish,
            ++bh_it) {
         loff_t clean = get_stat_clean() + get_stat_rx() +
                        bh_it->second->length();
-       if (get_stat_rx() > 0 && static_cast<uint64_t>(clean) > max_size) {
-         trim(bh_it->second->length());
-       }
-       clean = get_stat_clean() + get_stat_rx() + bh_it->second->length();
         if (get_stat_rx() > 0 && static_cast<uint64_t>(clean) > max_size) {
           // cache is full -- wait for rx's to complete
           ldout(cct, 10) << "readx missed, waiting on cache to free "
index 4fa602f6889f019cf076583b5d4cfadbaf4ecf70..08bc53b0cd1d11120f70697f733fbcb34a49f0f6 100644 (file)
@@ -449,7 +449,7 @@ class ObjectCacher {
   void bh_read(BufferHead *bh);
   void bh_write(BufferHead *bh);
 
-  void trim(uint64_t extra_space = 0);
+  void trim();
   void flush(loff_t amount=0);
 
   /**