mco_aio_start
调整持久化数据库的异步 I/O 参数。
此函数允许应用程序调整 AIO 缓冲区大小以及用于 AIO 的线程数量。必须在调用 mco_db_open_dev()
之前调用此函数,如果调用了此函数,则在数据库写入活动结束时应调用配套函数 mco_aio_stop()
。默认情况下,为每个数据库启动一个 AIO 线程,并且默认队列大小设置为 10007。有时更改 AIO 线程的数量(例如,如果数据库由多个物理 IO 设备组成,或者位于 RAID 上)和/或队列大小可能会带来好处。但请注意,I/O 线程的数量不会超过在进程内创建的数据库数量。
MCO_RET mco_aio_start(
mco_size_t max_queue_length,
mco_size_t n_workers
);
参数
max_queue_length
mco_size_t
AIO 缓冲区的最大大小。
n_workers
mco_size_t
AIO 线程的数量(请注意,无论此参数的值如何,运行时都不会超过一个进程中创建的数据库数量;即,运行时不允许一个数据库由多个 AIO 线程服务)。
返回
MCO_S_OK
已成功设置 AIO 参数。
示例
/* 应用程序代码片段 */
const char * dbname = "SimpleDb";
int main(int argc, char* argv[])
{
mco_db_h db;
MCO_RET rc;
mco_device_t dev;
mco_db_params_t db_params;
if( (rc = mco_runtime_start()) != MCO_S_OK)
exit(-1);
...
rc = mco_aio_start( 20000, 2 );
rc = mco_db_open_dev( dbname, simpledb_get_dictionary(), &dev, 1, &db_params);
...
rc = mco_db_connect(dbname, &db);
...
mco_aio_stop();
}
文件
头文件:
mco.h
源文件:
mcoaio.c
库:
libmcovtdsk.a
头文件:
mco.h
源文件:
mcovtmem.c
库:
libmcovtmem.a