Enabled Windows build for volatile tier implementation

Summary: Enabled build in Windows and corresponding fixes

Test Plan:
Compile and run persistent_cache_test in Windows and make check in
Linux

Reviewers: sdong

Subscribers: andrewkr, dhruba, leveldb

Differential Revision: https://reviews.facebook.net/D59307
This commit is contained in:
krad 2016-06-07 16:07:30 -07:00
parent 281fbdddc2
commit 5b197bff41
4 changed files with 19 additions and 13 deletions

View File

@ -266,6 +266,7 @@ set(SOURCES
utilities/merge_operators/uint64add.cc utilities/merge_operators/uint64add.cc
utilities/options/options_util.cc utilities/options/options_util.cc
utilities/persistent_cache/persistent_cache_tier.cc utilities/persistent_cache/persistent_cache_tier.cc
utilities/persistent_cache/volatile_tier_impl.cc
utilities/redis/redis_lists.cc utilities/redis/redis_lists.cc
utilities/spatialdb/spatial_db.cc utilities/spatialdb/spatial_db.cc
utilities/table_properties_collectors/compact_on_deletion_collector.cc utilities/table_properties_collectors/compact_on_deletion_collector.cc
@ -429,6 +430,7 @@ set(TESTS
utilities/merge_operators/string_append/stringappend_test.cc utilities/merge_operators/string_append/stringappend_test.cc
utilities/options/options_util_test.cc utilities/options/options_util_test.cc
utilities/persistent_cache/hash_table_test.cc utilities/persistent_cache/hash_table_test.cc
utilities/persistent_cache/persistent_cache_test.cc
utilities/redis/redis_lists_test.cc utilities/redis/redis_lists_test.cc
utilities/spatialdb/spatial_db_test.cc utilities/spatialdb/spatial_db_test.cc
utilities/table_properties_collectors/compact_on_deletion_collector_test.cc utilities/table_properties_collectors/compact_on_deletion_collector_test.cc

View File

@ -135,7 +135,7 @@ class PersistentCacheTierTest : public testing::Test {
auto k = prefix + PaddedNumber(i, /*count=*/8); auto k = prefix + PaddedNumber(i, /*count=*/8);
Slice key(k); Slice key(k);
while (!cache_->Insert(key, data, sizeof(data)).ok()) { while (!cache_->Insert(key, data, sizeof(data)).ok()) {
/* sleep override */ sleep(1); Env::Default()->SleepForMicroseconds(1 * 1000 * 1000);
} }
} }
} }
@ -230,7 +230,7 @@ class PersistentCacheDBTest : public DBTestBase {
return std::make_shared<VolatileCacheTier>(); return std::make_shared<VolatileCacheTier>();
} }
static uint32_t TestGetTickerCount(const Options& options, static uint64_t TestGetTickerCount(const Options& options,
Tickers ticker_type) { Tickers ticker_type) {
return static_cast<uint32_t>( return static_cast<uint32_t>(
options.statistics->getTickerCount(ticker_type)); options.statistics->getTickerCount(ticker_type));

View File

@ -20,15 +20,18 @@ VolatileCacheTier::~VolatileCacheTier() { index_.Clear(&DeleteCacheData); }
std::vector<PersistentCacheTier::TierStats> VolatileCacheTier::Stats() { std::vector<PersistentCacheTier::TierStats> VolatileCacheTier::Stats() {
PersistentCacheTier::TierStats stat; PersistentCacheTier::TierStats stat;
stat.insert({"persistent_cache.volatile_cache.hits", stats_.cache_hits_}); stat.insert({"persistent_cache.volatile_cache.hits",
stat.insert({"persistent_cache.volatile_cache.misses", stats_.cache_misses_}); static_cast<double>(stats_.cache_hits_)});
stat.insert( stat.insert({"persistent_cache.volatile_cache.misses",
{"persistent_cache.volatile_cache.inserts", stats_.cache_inserts_}); static_cast<double>(stats_.cache_misses_)});
stat.insert({"persistent_cache.volatile_cache.evicts", stats_.cache_evicts_}); stat.insert({"persistent_cache.volatile_cache.inserts",
stat.insert( static_cast<double>(stats_.cache_inserts_)});
{"persistent_cache.volatile_cache.hit_pct", stats_.CacheHitPct()}); stat.insert({"persistent_cache.volatile_cache.evicts",
stat.insert( static_cast<double>(stats_.cache_evicts_)});
{"persistent_cache.volatile_cache.miss_pct", stats_.CacheMissPct()}); stat.insert({"persistent_cache.volatile_cache.hit_pct",
static_cast<double>(stats_.CacheHitPct())});
stat.insert({"persistent_cache.volatile_cache.miss_pct",
static_cast<double>(stats_.CacheMissPct())});
std::vector<PersistentCacheTier::TierStats> tier_stats; std::vector<PersistentCacheTier::TierStats> tier_stats;
if (next_tier()) { if (next_tier()) {

View File

@ -73,8 +73,9 @@ class VolatileCacheTier : public PersistentCacheTier {
// Cache data abstraction // Cache data abstraction
// //
struct CacheData : LRUElement<CacheData> { struct CacheData : LRUElement<CacheData> {
explicit CacheData(CacheData&& rhs) noexcept explicit CacheData(CacheData&& rhs) ROCKSDB_NOEXCEPT
: key(std::move(rhs.key)), value(std::move(rhs.value)) {} : key(std::move(rhs.key)),
value(std::move(rhs.value)) {}
explicit CacheData(const std::string& _key, const std::string& _value = "") explicit CacheData(const std::string& _key, const std::string& _value = "")
: key(_key), value(_value) {} : key(_key), value(_value) {}