File size is updated correctly according to 

> fdatasync() is similar to fsync(), but does not flush modified metadata unless that metadata is needed in order to allow a subsequent data retrieval to be correctly handled.  For example, changes to  st_atime  or  st_mtime  (respec‐
       tively,  time  of  last  access  and  time  of last modification; see inode(7)) do not require flushing because they are not necessary for a subsequent data read to be handled correctly.  On the other hand, a change to the file size
       (st_size, as made by say ftruncate(2)), would require a metadata flush.

And we don't care about modification times.
Should work alright.
double getLoadFactor() const override
    {
        size_t partitions_size = memory_buffer_partitions.size();
        if (partitions_size == configuration.max_partitions_count)
            return 1.0;
        auto & current_memory_partition = memory_buffer_partitions[current_partition_index];
        size_t full_partitions = partitions_size - 1;
        size_t blocks_in_memory = (full_partitions * configuration.write_buffer_blocks_size) + current_memory_partition.getCurrentBlockIndex();
        size_t blocks_on_disk = file_buffer.getCurrentBlockIndex();
        size_t max_blocks_size = (configuration.file_blocks_size + configuration.write_buffer_blocks_size) * configuration.max_partitions_count;
        double load_factor = static_cast<double>(blocks_in_memory + blocks_on_disk) / max_blocks_size;
        return load_factor;
    }
    size_t getBytesAllocated() const override
    {
        size_t memory_partitions_bytes_size = memory_buffer_partitions.size() * configuration.write_buffer_blocks_size * configuration.block_size;
        size_t file_partitions_bytes_size = memory_buffer_partitions.size() * configuration.file_blocks_size * configuration.block_size;
        return index.getBufferSizeInBytes() + memory_partitions_bytes_size + file_partitions_bytes_size;
    }
private:
    using TimePoint = std::chrono::system_clock::time_point;
    struct Cell
    {
        enum CellState