WriteBatch reorder fields to reduce padding (#10266)

Summary:
this reorder reduces sizeof(WriteBatch) by 16 bytes

Pull Request resolved: https://github.com/facebook/rocksdb/pull/10266

Reviewed By: akankshamahajan15

Differential Revision: D37505201

Pulled By: ajkr

fbshipit-source-id: 6cb6c3735073fcb63921f822d5e15670fecb1c26
main
leipeng 2 years ago committed by Facebook GitHub Bot
parent 6115254416
commit 490fcac078
  1. 26
      include/rocksdb/write_batch.h

@ -447,25 +447,12 @@ class WriteBatch : public WriteBatchBase {
// the WAL. // the WAL.
SavePoint wal_term_point_; SavePoint wal_term_point_;
// For HasXYZ. Mutable to allow lazy computation of results
mutable std::atomic<uint32_t> content_flags_;
// Performs deferred computation of content_flags if necessary
uint32_t ComputeContentFlags() const;
// Maximum size of rep_.
size_t max_bytes_;
// Is the content of the batch the application's latest state that meant only // Is the content of the batch the application's latest state that meant only
// to be used for recovery? Refer to // to be used for recovery? Refer to
// TransactionOptions::use_only_the_last_commit_time_batch_for_recovery for // TransactionOptions::use_only_the_last_commit_time_batch_for_recovery for
// more details. // more details.
bool is_latest_persistent_state_ = false; bool is_latest_persistent_state_ = false;
std::unique_ptr<ProtectionInfo> prot_info_;
size_t default_cf_ts_sz_ = 0;
// False if all keys are from column families that disable user-defined // False if all keys are from column families that disable user-defined
// timestamp OR UpdateTimestamps() has been called at least once. // timestamp OR UpdateTimestamps() has been called at least once.
// This flag will be set to true if any of the above Put(), Delete(), // This flag will be set to true if any of the above Put(), Delete(),
@ -479,6 +466,19 @@ class WriteBatch : public WriteBatchBase {
// that enables user-defined timestamp. // that enables user-defined timestamp.
bool has_key_with_ts_ = false; bool has_key_with_ts_ = false;
// For HasXYZ. Mutable to allow lazy computation of results
mutable std::atomic<uint32_t> content_flags_;
// Performs deferred computation of content_flags if necessary
uint32_t ComputeContentFlags() const;
// Maximum size of rep_.
size_t max_bytes_;
std::unique_ptr<ProtectionInfo> prot_info_;
size_t default_cf_ts_sz_ = 0;
protected: protected:
std::string rep_; // See comment in write_batch.cc for the format of rep_ std::string rep_; // See comment in write_batch.cc for the format of rep_
}; };

Loading…
Cancel
Save