 |
SWC-DB
v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
|
Go to the documentation of this file.
53 namespace SWC {
namespace FS {
57 config->
settings->file_desc.add_options()
62 "FsBroker host (default by hostname)")
66 (
"swc.fs.broker.metrics.enabled",
Config::boo(
true),
67 "Enable or Disable Metrics Tracking")
69 (
"swc.fs.broker.concurrency.relative",
Config::boo(
true),
70 "Determined ratio by HW-Concurrency")
72 "Number or HW-Concurrency base of Handlers for broker tasks")
75 "Default request timeout in ms")
77 "Timeout ratio to bytes, bytes/ratio=ms added to default timeout")
79 (
"swc.fs.broker.comm.encoder",
85 "The encoding to use in communication, options PLAIN/ZSTD/SNAPPY/ZLIB")
88 "Max Open Fds for opt. without closing")
91 config->
settings->get_str(
"swc.fs.broker.cfg",
""),
92 "swc.fs.broker.cfg.dyn"
98 "swc.fs.broker.metrics.enabled");
106 std::string host =
settings->get_str(
107 "swc.fs.broker.host",
"");
110 if(gethostname(hostname,
sizeof(hostname)) == -1)
112 host.append(hostname);
118 settings->get_strs(
"swc.comm.network.priority"), nets, ec);
121 "swc.comm.network.priority error(%s)",
122 ec.message().c_str());
126 settings->get_i16(
"swc.fs.broker.port"),
127 addr, host, nets,
true
136 Comm::IoContext::make(
138 settings->get_bool(
"swc.fs.broker.concurrency.relative"),
139 settings->get_i32(
"swc.fs.broker.handlers")
143 new Comm::client::Serialized(
147 client::FsBroker::AppContext::
Ptr(
148 new client::FsBroker::AppContext(*settings))
152 settings->get_str(
"swc.fs.broker.underlying"))),
156 settings->get<Config::Property::Value_int32_g>(
157 "swc.fs.broker.timeout")),
159 settings->get<Config::Property::Value_int32_g>(
160 "swc.fs.broker.timeout.bytes.ratio")) {
183 "(type=BROKER underlying-type=%s)",
194 m_endpoints, std::chrono::milliseconds(20000), 3)));
197 return conn->send_request(hdlr->cbp, hdlr);
222 const std::string& name) {
243 const std::string& name) {
265 const std::string& name) {
286 const std::string& name) {
308 const std::string& name) {
329 const std::string& name) {
339 const std::string& to) {
351 const std::string&
from,
352 const std::string& to) {
385 std::move(buffer), std::move(cb)));
402 const std::string& name) {
413 uint64_t offset, uint32_t amount,
421 smartfd, offset, amount, dst)
430 uint64_t offset, uint32_t amount) {
437 smartfd, offset, amount, std::move(cb))
443 uint8_t replication) {
458 uint8_t replication) {
477 smartfd, buffer,
flags)
494 smartfd, buffer,
flags, std::move(cb))
520 void* dst,
size_t amount) {
527 smartfd, dst, amount,
true)
543 smartfd,
static_cast<void*
>(dst), amount,
false)
559 smartfd, amount, std::move(cb))
565 uint64_t offset,
void* dst,
573 smartfd, offset, dst, amount,
true)
590 smartfd, offset,
static_cast<void*
>(dst), amount,
false)
600 uint64_t offset,
size_t amount) {
607 smartfd, offset, amount, std::move(cb))
Property::Value_int32::Ptr i32(const int32_t &v)
#define SWC_FS_APPEND_START(_smartfd, _amount, _flags)
std::shared_ptr< Readdir > Ptr
void rename(int &err, const std::string &from, const std::string &to) override
std::shared_ptr< Rmdir > Ptr
std::function< void(int)> OpenCb_t
std::shared_ptr< FileSystem > Ptr
Property::Value_int32_g::Ptr g_i32(const int32_t &v)
void write(int &err, SmartFd::Ptr &smartfd, uint8_t replication, StaticBuffer &buffer) override
SmartFd actions.
std::function< void(int, StaticBuffer &&)> WriteCb_t
Type fs_type(const std::string &fs_name)
std::function< void(int, StaticBuffer &&)> PreadCb_t
FileSystemBroker(Configurables *config)
Property::Value_enum_g::Ptr g_enum(const int32_t &v, Property::Value_enum_g::OnChg_t &&cb, Property::Value_enum_g::FromString_t &&from_string, Property::Value_enum_g::Repr_t &&repr)
void get_networks(const Config::Strings &networks, Networks &nets, asio::error_code &ec)
std::shared_ptr< Settings > Ptr
void open(int &err, SmartFd::Ptr &smartfd) override
std::function< void(int, StaticBuffer &&)> CombiPreadCb_t
std::function< void(int, StaticBuffer &&)> ReadCb_t
void readdir(int &err, const std::string &name, DirentList &results) override
Configurables * apply_broker(Configurables *config)
#define SWC_FS_FLUSH_START(_smartfd)
size_t length(int &err, const std::string &name) override
std::shared_ptr< Close > Ptr
const Config::Property::Value_int32_g::Ptr cfg_timeout
std::shared_ptr< CreateSync > Ptr
std::shared_ptr< Read > Ptr
void sync(int &err, SmartFd::Ptr &smartfd) override
std::shared_ptr< CloseSync > Ptr
std::shared_ptr< ExistsSync > Ptr
#define SWC_THROW(_code_, _msg_)
std::function< void(int, size_t)> LengthCb_t
std::shared_ptr< Append > Ptr
std::function< void(int)> SyncCb_t
Core::QueueSafe< Comm::ConnHandlerPtr > m_connections
SWC_CAN_INLINE int from_string_encoding(const std::string &typ) noexcept
Property::Value_bool::Ptr boo(const bool &v)
std::shared_ptr< Rename > Ptr
std::function< void(int, bool)> ExistsCb_t
std::shared_ptr< ReaddirSync > Ptr
SWC_CAN_INLINE int32_t get() const noexcept
#define SWC_FS_PREAD_START(_smartfd, _offset, _amount)
Type SWC_PURE_FUNC get_type_underlying() const noexcept override
#define SWC_FS_COMBI_PREAD_START(_smartfd, _offset, _amount)
#define SWC_DEFAULT_COMM_ENCODER
std::function< void(int)> CloseCb_t
std::shared_ptr< Open > Ptr
Property::Value_uint16::Ptr i16(const uint16_t &v)
std::function< void(int)> RenameCb_t
#define SWC_FS_CLOSE_START(_smartfd)
SWC_CAN_INLINE void push(const ItemT &item)
Comm::client::Serialized::Ptr m_service
Type SWC_CONST_FUNC get_type() const noexcept override
std::shared_ptr< SyncSync > Ptr
constexpr SWC_CAN_INLINE void store(T v) noexcept
void seek(int &err, SmartFd::Ptr &smartfd, size_t offset) override
#define SWC_FS_RENAME_START(_from, _to)
std::shared_ptr< RenameSync > Ptr
std::shared_ptr< Remove > Ptr
#define SWC_FS_MKDIRS_START(_path)
std::shared_ptr< AppendSync > Ptr
size_t append(int &err, SmartFd::Ptr &smartfd, StaticBuffer &buffer, Flags flags) override
void rmdir(int &err, const std::string &name) override
std::shared_ptr< Pread > Ptr
SWC::FS::FileSystem * fs_make_new_broker(SWC::FS::Configurables *config)
#define SWC_FS_SYNC_START(_smartfd)
const Config::Property::Value_int32_g::Ptr cfg_timeout_ratio
#define SWC_FS_WRITE_START(_smartfd, _replication, _amount)
The SWC-DB C++ namespace 'SWC'.
std::shared_ptr< Sync > Ptr
Config::Settings::Ptr settings
std::function< void(int, StaticBuffer &&)> ReadAllCb_t
#define SWC_FS_CREATE_START(_smartfd, _replication)
Property::Value_strings::Ptr strs(Strings &&v)
#define SWC_THROWF(_code_, _fmt_,...)
Config::Property::Value_int32_g::Ptr cfg_fds_max
std::shared_ptr< FlushSync > Ptr
#define SWC_FS_OPEN_START(_smartfd)
Property::Value_string::Ptr str(std::string &&v)
std::shared_ptr< RmdirSync > Ptr
std::function< void(int, DirentList &&)> ReaddirCb_t
std::function< void(int)> RemoveCb_t
std::shared_ptr< ReadAll > Ptr
std::function< void(int)> RmdirCb_t
std::shared_ptr< ReadAllSync > Ptr
std::shared_ptr< ConnHandler > ConnHandlerPtr
const Config::Settings::Ptr settings
std::shared_ptr< Flush > Ptr
std::string format(const char *fmt,...) __attribute__((format(printf
std::function< void(int)> CreateCb_t
std::shared_ptr< Exists > Ptr
std::shared_ptr< Create > Ptr
bool send_request(Comm::Protocol::FsBroker::Req::BasePtr hdlr)
Comp from(const char **buf, uint32_t *remainp, uint8_t extended=0x00) noexcept
std::shared_ptr< SmartFd > Ptr
#define SWC_FS_READDIR_START(_path)
std::function< void(int)> FlushCb_t
void combi_pread(int &err, SmartFd::Ptr &smartfd, uint64_t offset, uint32_t amount, StaticBuffer *dst) override
std::shared_ptr< OpenSync > Ptr
std::string to_string() const override
static SWC_CAN_INLINE Ptr make(int error)
#define SWC_FS_READ_START(_smartfd, _amount)
void mkdirs(int &err, const std::string &name) override
void remove(int &err, const std::string &name) override
std::shared_ptr< SeekSync > Ptr
std::shared_ptr< WriteSync > Ptr
bool exists(int &err, const std::string &name) override
File/Dir name actions.
void flush(int &err, SmartFd::Ptr &smartfd) override
std::shared_ptr< CombiPreadSync > Ptr
static Comm::EndPoints get_endpoints(const Config::Settings::Ptr &settings)
#define SWC_FS_EXISTS_START(_path)
std::shared_ptr< Length > Ptr
std::shared_ptr< ReadSync > Ptr
std::shared_ptr< Write > Ptr
std::function< void(int)> SeekCb_t
SWC_CAN_INLINE std::string repr_encoding(int typ)
#define SWC_FS_RMDIR_START(_path)
std::shared_ptr< Mkdirs > Ptr
std::shared_ptr< LengthSync > Ptr
#define SWC_FS_SEEK_START(_smartfd, _offset)
#define SWC_FS_LENGTH_START(_path)
const Comm::EndPoints m_endpoints
void create(int &err, SmartFd::Ptr &smartfd, uint8_t replication) override
EndPoints get_endpoints(uint16_t defaul_port, const Config::Strings &addrs, const std::string &host, const Networks &nets, bool srv=false)
void read(int &err, const std::string &name, StaticBuffer *dst) override
void close(int &err, SmartFd::Ptr &smartfd) override
std::function< void(int, size_t)> AppendCb_t
#define SWC_FS_READALL_START(_name)
std::shared_ptr< PreadSync > Ptr
std::shared_ptr< RemoveSync > Ptr
std::function< void(int)> MkdirsCb_t
#define SWC_FS_REMOVE_START(_path)
std::shared_ptr< CombiPread > Ptr
const char *SWC_CONST_FUNC to_string(Type typ) noexcept
size_t pread(int &err, SmartFd::Ptr &smartfd, uint64_t offset, void *dst, size_t amount) override
std::shared_ptr< Seek > Ptr
SWC_CAN_INLINE bool pop(ItemT *item)
virtual ~FileSystemBroker() noexcept