mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-12 19:02:12 +00:00
This came from Avi's review on the read_monitors. He suggests we wouldn't keep shared pointers, and would instead have the caller ensuring lifetime. That makes sense, but having the writer interface using shared_ptr and the read interface using references would lead to an inconsistent interface. For the sake of consistency we will change the write monitor to take references before we do that. From database.cc's perspective, we could now keep the monitors in a do_with() block, but we will keep the shared_ptrs to manage their lifetime in anticipation of upcoming patches in this series, where we'll have to pass them somewhere else. Signed-off-by: Glauber Costa <glauber@scylladb.com>
48 lines
1.4 KiB
C++
48 lines
1.4 KiB
C++
/*
|
|
* Copyright (C) 2017 ScyllaDB
|
|
*
|
|
*/
|
|
|
|
/*
|
|
* This file is part of Scylla.
|
|
*
|
|
* Scylla is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* Scylla is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with Scylla. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
|
|
// Glue logic for writing memtables to sstables
|
|
|
|
#pragma once
|
|
|
|
#include "memtable.hh"
|
|
#include "sstables/shared_sstable.hh"
|
|
#include "sstables/progress_monitor.hh"
|
|
#include <seastar/core/future.hh>
|
|
#include <seastar/core/file.hh>
|
|
#include <seastar/core/thread.hh>
|
|
#include <seastar/core/shared_ptr.hh>
|
|
|
|
future<>
|
|
write_memtable_to_sstable(memtable& mt,
|
|
sstables::shared_sstable sst,
|
|
sstables::write_monitor& mon,
|
|
bool backup = false,
|
|
const io_priority_class& pc = default_priority_class(),
|
|
bool leave_unsealed = false,
|
|
seastar::thread_scheduling_group* tsg = nullptr);
|
|
|
|
future<>
|
|
write_memtable_to_sstable(memtable& mt,
|
|
sstables::shared_sstable sst);
|