diff --git a/src/bees-context.cc b/src/bees-context.cc index c964d51..568d538 100644 --- a/src/bees-context.cc +++ b/src/bees-context.cc @@ -823,7 +823,7 @@ BeesContext::resolve_addr_uncached(BeesAddress addr) // Avoid performance bug BeesResolveAddrResult rv; rv.m_biors = log_ino.m_iors; - if (sys_usage_delta < BEES_TOXIC_SYS_DURATION && log_ino.m_iors.size() < BEES_MAX_EXTENT_REF_COUNT) { + if (sys_usage_delta < BEES_TOXIC_SYS_DURATION) { rv.m_is_toxic = false; } else { BEESLOGNOTICE("WORKAROUND: toxic address: addr = " << addr << ", sys_usage_delta = " << round(sys_usage_delta* 1000.0) / 1000.0 << ", user_usage_delta = " << round(user_usage_delta * 1000.0) / 1000.0 << ", rt_age = " << rt_age << ", refs " << log_ino.m_iors.size()); diff --git a/src/bees.h b/src/bees.h index 536a912..3b7b6e8 100644 --- a/src/bees.h +++ b/src/bees.h @@ -106,11 +106,6 @@ const size_t BEES_MAX_CRAWL_BATCH = 128; // Wait this many transids between crawls const size_t BEES_TRANSID_FACTOR = 10; -// If an extent has this many refs, pretend it does not exist -// to avoid a crippling btrfs performance bug -// The actual limit in LOGICAL_INO seems to be 2730, but let's leave a little headroom -const size_t BEES_MAX_EXTENT_REF_COUNT = 2560; - // Flags const int FLAGS_OPEN_COMMON = O_NOFOLLOW | O_NONBLOCK | O_CLOEXEC | O_NOATIME | O_LARGEFILE | O_NOCTTY; const int FLAGS_OPEN_DIR = FLAGS_OPEN_COMMON | O_RDONLY | O_DIRECTORY;