]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: proper override rocksdb::WritableFile::Allocate 51775/head
authorIgor Fedotov <igor.fedotov@croit.io>
Wed, 1 Mar 2023 13:04:23 +0000 (16:04 +0300)
committerIgor Fedotov <igor.fedotov@croit.io>
Fri, 26 May 2023 09:45:03 +0000 (12:45 +0300)
Failing to do that makes BlueFS file frgmentation higher.

Fixes: https://tracker.ceph.com/issues/58966
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
(cherry picked from commit 2d8b9e9ed58bca4917b90ea5eaa43264a89dff75)

src/os/bluestore/BlueRocksEnv.cc

index 0d76a859719090fee7a15f4030a7bddac9c7a941..68040af428280ef40af4131aa8db33099bcc5e42 100644 (file)
@@ -285,14 +285,12 @@ class BlueRocksWritableFile : public rocksdb::WritableFile {
     return rocksdb::Status::OK();
   }
 
-  using rocksdb::WritableFile::RangeSync;
   // Sync a file range with disk.
   // offset is the starting byte of the file range to be synchronized.
   // nbytes specifies the length of the range to be synchronized.
   // This asks the OS to initiate flushing the cached data to disk,
   // without waiting for completion.
-  // Default implementation does nothing.
-  rocksdb::Status RangeSync(off_t offset, off_t nbytes) {
+  rocksdb::Status RangeSync(uint64_t offset, uint64_t nbytes) override {
     // round down to page boundaries
     int partial = offset & 4095;
     offset -= partial;
@@ -304,11 +302,10 @@ class BlueRocksWritableFile : public rocksdb::WritableFile {
   }
 
  protected:
-  using rocksdb::WritableFile::Allocate;
   /*
    * Pre-allocate space for a file.
    */
-  rocksdb::Status Allocate(off_t offset, off_t len) {
+  rocksdb::Status Allocate(uint64_t offset, uint64_t len) override {
     int r = fs->preallocate(h->file, offset, len);
     return err_to_status(r);
   }