// duplicated since it was introduced at the same time as MIN_SIZE_RECOVERY
#define CEPH_FEATURE_OSD_PROXY_FEATURES (1ULL<<49) /* overlap w/ above */
#define CEPH_FEATURE_MON_METADATA (1ULL<<50)
+#define CEPH_FEATURE_OSD_BITWISE_HOBJ_SORT (1ULL<<51) /* can sort objs bitwise */
#define CEPH_FEATURE_RESERVED2 (1ULL<<61) /* slow down, we are almost out... */
#define CEPH_FEATURE_RESERVED (1ULL<<62) /* DO NOT USE THIS ... last bit! */
CEPH_FEATURE_CRUSH_V4 | \
CEPH_FEATURE_OSD_MIN_SIZE_RECOVERY | \
CEPH_FEATURE_MON_METADATA | \
+ CEPH_FEATURE_OSD_BITWISE_HOBJ_SORT | \
0ULL)
#define CEPH_FEATURES_SUPPORTED_DEFAULT CEPH_FEATURES_ALL
void apply_acting_features(uint64_t f) { acting_features &= f; }
void apply_upacting_features(uint64_t f) { upacting_features &= f; }
+ /// true if we will sort hobjects bitwise for this pg interval
+ bool get_sort_bitwise() const {
+ return get_min_upacting_features() & CEPH_FEATURE_OSD_BITWISE_HOBJ_SORT;
+ }
+
void init_primary_up_acting(
const vector<int> &newup,
const vector<int> &newacting,
uint64_t min_peer_features() const {
return get_min_peer_features();
}
+ bool sort_bitwise() const {
+ return get_sort_bitwise();
+ }
bool transaction_use_tbl() {
uint64_t min_features = get_min_upacting_features();