设备规格
xSQL 配置文件可用于定义与 C API 的 mco_device_t 结构相对应的内存设备数组。
设备部分具有如下语法来定义数组:
devices : [
{
type : memory,
assignment : database,
name : "diskdb-db",
size : 10m
},
{
type : memory,
assignment : cache,
name : "diskdb-cache",
size : 10m
},
{
type : file,
assignment : persistent,
name : "diskdb.dbs"
},
{
type : file,
assignment : log,
name : "diskdb.log"
}
]
除了指定各个内存设备之外,还可以在设备部分之外指定以下“快捷方式”参数:
database_size : 10m,
cache_size : 10m,
database_filename: "diskdb.dbs",
log_filename : "diskdb.log",
请注意,必须谨慎处理以避免这些快捷参数与设备规格之间产生冲突。 下表列出了“快捷”参数和设备部分的可能选项,以及注释中指定的相应 C API 结构和值:
database_size
unsigned
数据库大小,以字节为单位的数据库大小,如:database_size : 100m
cache_size
unsigned
缓存大小,以字节为单位的磁盘缓存大小,如:cache_size : 200m,
database_filename
string
持久数据库文件名,如:database_filename: "test.dbs"
log_filename
string
日志文件的名称,如:log_filename : "test.log",
type
设备类型(mco_device_t::type),包括以下几种:
- memory:(默认)内存(根据运行时配置的共享内存情况为 MCO_MEMORY_CONV 或 MCO_MEMORY_NAMED);
- file:文件(MCO_MEMORY_FILE);
- multifile:多文件(MCO_MEMORY_MULTIFILE);
- raid:磁盘阵列(MCO_MEMORY_RAID);
- cyclic_file_buf:循环文件缓冲区(MCO_MEMORY_CYCLIC_FILE_BUF)。
assignment
设备分配(mco_device_t::assignment),其中之一:
- database:(默认)数据库(MCO_MEMORY_ASSIGN_DATABASE);
- cache:缓存(MCO_MEMORY_ASSIGN_CACHE);
- persistent:持久化(MCO_MEMORY_ASSIGN_PERSISTENT);
- log:日志(MCO_MEMORY_ASSIGN_LOG);
size
unsigned
设备大小(mco_device_t::size),如:size : 100m
name
string
设备名称(mco_device_t::dev.<...>.name)。
对于 MCO_MEMORY_CONV 会被忽略。
shared_hint
unsigned
用于 MCO_MEMORY_NAMED 设备的共享内存地址提示(mco_device_t::dev.named.hint),如:shared_hint : 0x2000000
segment_size
unsigned
用于 MCO_MEMORY_MULTIFILE 设备类型的多文件段大小(mco_device_t::dev.multifile.segment_size),如:segment_size : 10m
offset
unsigned
用于 MCO_MEMORY_RAID 设备类型的 RAID 偏移量(mco_device_t::dev.raid.offset),如:offset : 0
level
unsigned
用于 MCO_MEMORY_RAID 设备类型的 RAID 级别(mco_device_t::dev.raid.level),如:level : 0
flags
标志设置(mco_device_t::dev.XXX.flags),取决于设备类型:
设备类型 | 标志值的组合 |
---|---|
MCO_MEMORY_NAMED | anonymous (MCO_RT_POSIX_SHM_ANONYMOUS)``shared (MCO_RT_POSIX_SHM_SHARED ) |
MCO_MEMORY_FILE, MCO_MEMORY_CYCLIC_FILE_BUF, MCO_MEMORY_MULTIFILE, MCO_MEMORY_RAID | default (MCO_FILE_OPEN_DEFAULT ),read_only (MCO_FILE_OPEN_READ_ONLY ),truncate (MCO_FILE_OPEN_TRUNCATE ),no_buffering (MCO_FILE_OPEN_NO_BUFFERING ),existing (MCO_FILE_OPEN_EXISTING ),temporary (MCO_FILE_OPEN_TEMPORARY ),fsync_fix (MCO_FILE_OPEN_FSYNC_FIX ),subpartition (MCO_FILE_OPEN_SUBPARTITION ),fsync_aio_barrier (MCO_FILE_OPEN_FSYNC_AIO_BARRIER )compressed (MCO_FILE_OPEN_COMPRESSED )lock (MCO_FILE_OPEN_LOCK )no_read_buffering (MCO_FILE_OPEN_NO_READ_BUFFERING )no_write_buffering (MCO_FILE_OPEN_NO_WRITE_BUFFERING ) |