}
// onodes
- if (onode_max >= onode_lru.size() ||
- last_pinned == onode_lru.begin()) {
+
+ if (last_pinned == onode_lru.begin()) {
+ //start over
+ last_pinned = onode_lru.end();
+ }
+ if (onode_max >= onode_lru.size()) {
return; // don't even try
}
uint64_t num = onode_lru.size() - onode_max;
break;
} else {
p--;
- num--;
continue;
}
}
}
// onodes
- if (onode_max >= onode_lru.size() ||
- last_pinned == onode_lru.begin()) {
+ if (last_pinned == onode_lru.begin()) {
+ //start over
+ last_pinned = onode_lru.end();
+ }
+ if (onode_max >= onode_lru.size()) {
return; // don't even try
}
uint64_t num = onode_lru.size() - onode_max;
break;
} else {
p--;
- num--;
continue;
}
}
const size_t max_pinned_onodes = 200;
const size_t max_cached_onodes = max_pinned_onodes / 2;
const PerfCounters* logger = store->get_perf_counters();
+
size_t onodes;
{
ObjectStore::Transaction t;
break;
sleep(1);
}
- ceph_assert(onodes == max_onodes);
+ ASSERT_EQ(onodes, max_onodes);
SetVal(g_conf(), "bluestore_debug_max_cached_onodes",
stringify(max_cached_onodes).c_str());
sleep(1);
}
onodes = logger->get(l_bluestore_onodes);
- ceph_assert(onodes == max_cached_onodes);
+ ASSERT_EQ(onodes, max_cached_onodes);
// revert cache size cap
break;
sleep(1);
}
- ceph_assert(onodes == max_onodes);
+ ASSERT_EQ(onodes, max_onodes);
SetVal(g_conf(), "bluestore_debug_max_cached_onodes",
stringify(max_cached_onodes).c_str());
sleep(1);
}
onodes = logger->get(l_bluestore_onodes);
- ceph_assert(onodes == max_pinned_onodes);
+ ASSERT_EQ(onodes, max_pinned_onodes);
// unpin onodes
omap_iterators.resize(0);
sleep(1);
}
onodes = logger->get(l_bluestore_onodes);
- ceph_assert(onodes == max_cached_onodes);
+ ASSERT_LE(onodes, max_cached_onodes);
{
ObjectStore::Transaction t;