write_stall_stats.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
  2. // This source code is licensed under both the GPLv2 (found in the
  3. // COPYING file in the root directory) and Apache 2.0 License
  4. // (found in the LICENSE.Apache file in the root directory).
  5. #pragma once
  6. #include <array>
  7. #include "db/internal_stats.h"
  8. #include "rocksdb/types.h"
  9. namespace ROCKSDB_NAMESPACE {
  10. const std::string& InvalidWriteStallHyphenString();
  11. const std::string& WriteStallCauseToHyphenString(WriteStallCause cause);
  12. const std::string& WriteStallConditionToHyphenString(
  13. WriteStallCondition condition);
  14. // REQUIRES:
  15. // cause` is CF-scope `WriteStallCause`, see `WriteStallCause` for more
  16. //
  17. // REQUIRES:
  18. // `condition` != `WriteStallCondition::kNormal`
  19. InternalStats::InternalCFStatsType InternalCFStat(
  20. WriteStallCause cause, WriteStallCondition condition);
  21. // REQUIRES:
  22. // cause` is DB-scope `WriteStallCause`, see `WriteStallCause` for more
  23. //
  24. // REQUIRES:
  25. // `condition` != `WriteStallCondition::kNormal`
  26. InternalStats::InternalDBStatsType InternalDBStat(
  27. WriteStallCause cause, WriteStallCondition condition);
  28. bool isCFScopeWriteStallCause(WriteStallCause cause);
  29. bool isDBScopeWriteStallCause(WriteStallCause cause);
  30. constexpr uint32_t kNumCFScopeWriteStallCauses =
  31. static_cast<uint32_t>(WriteStallCause::kCFScopeWriteStallCauseEnumMax) -
  32. static_cast<uint32_t>(WriteStallCause::kMemtableLimit);
  33. constexpr uint32_t kNumDBScopeWriteStallCauses =
  34. static_cast<uint32_t>(WriteStallCause::kDBScopeWriteStallCauseEnumMax) -
  35. static_cast<uint32_t>(WriteStallCause::kWriteBufferManagerLimit);
  36. } // namespace ROCKSDB_NAMESPACE