数据库参数
构造方法
mco_db_params_t 结构在 mco.h
中定义如下:
typedef struct mco_db_params_t_ {
uint2 mark;
uint2 mem_page_size;
uint4 disk_page_size;
uint4 db_max_connections;
mco_offs_t disk_max_database_size;
mco_offs_t file_extension_quantum;
MCO_LOG_TYPE db_log_type;
uint2 connection_context_size;
uint2 hash_load_factor;
uint2 index_optimistic_lock_threshold;
mco_log_params_t log_params;
int mode_mask;
int min_conn_local_pages;
int max_conn_local_pages;
int allocation_bitmap_caching_priority;
int index_caching_priority;
int object_caching_priority;
struct mco_ddl_dictionary_t_* ddl_dict;
mco_size_t ddl_dict_size;
int ddl_dict_flags;
char* cipher_key;
mco_bool dynamic_hash;
char* license_key;
int max_classes;
int max_indexes;
mco_size_t autocompact_threshold;
MCO_TRANS_SCHED_POLICY trans_sched_policy;
uint8 max_trans_time;
int max_active_pages;
int page_hash_bundles;
int compression_level;
int compression_mask;
int expected_compression_ratio;
uint1 btree_cursor_read_ahead_size;
int mvcc_bitmap_size;
int additional_heap_size;
mco_size_t cow_pagemap_size;
mco_size_t backup_map_size;
unsigned int backup_min_pages;
unsigned int backup_max_passes;
char backup_map_filename[MCO_MAX_FILE_NAME];
uint8 iot_agent_id;
uint2 iot_level;
uint4 file_backup_delay;
} mco_db_params_t;
mco_db_open_dev()
所打开的数据库的运行时设置在 mco_db_params_t 参数 params
中定义。该结构的各个要素解释如下:
mark
uint2
表示该结构已通过 mco_db_params_init()
函数以默认值进行初始化(应用程序不应设置或修改此字段)
mem_page_size
uint2
对于常规或共享内存设备(即 dev.type=MCO_MEMORY_CONV
或 dev.type=MCO_MEMORY_NAMED
)的内存页大小。
对于持久性和混合模式数据库,该值必须是 2 的n次幂。
disk_page_size
uint4
此数据库的持久存储页大小,必须是 2 的n次幂,且至少为mem_page_size
的八倍。
对于全内存数据库应设置为 0。
db_max_connections
uint4
此数据库的最大连接数。
disk_max_database_size
mco_offs_t
如果使用持久化数据库,所需的最大磁盘空间。
file_extension_quantum
mco_offs_t
数据库运行时在增大数据库文件大小时使用的分配块大小,有助于减少文件碎片。
db_log_type
MCO_LOG_TYPE
如果这是一个持久数据库,则为所需的数据库日志文件类型。可选值:REDO_LOG
, UNDO_LOG
或NO_LOG
。
connection_context_size
uint2
该值表示运行时为容纳任何应用程序特定的数据(称为应用程序上下文)而增加的连接结构的大小。数据库运行时使用此内存来复制由 mco_db_connect_ctx()
的上下文参数所指向的数据。应用程序上下文可以是任何内容。上下文对于恢复过程来说是必需的,以便验证创建连接的任务是否处于活动状态。
dynamic_hash
mco_bool
布尔值,用于确定是否启用动态哈希表扩展(默认启用)或不启用。
hash_load_factor
uint2
用于确定哈希索引表何时扩展的因素。表示哈希表中已使用项的百分比。
index_optimistic_lock_threshold
uint2
在执行 B 树索引的乐观锁定时,允许的最大活跃写入事务数。
log_params
mco_log_params_t
在 mco_log_params_t
中指定的初始日志设置。
mode_mask
int
数据库打开模式标志。这些模式掩码选项在文件 mco.h
中定义。可参阅打开模式页面。
min_conn_local_pages
int
在多版本并发控制(MVCC)模式下,每个连接分配器持有的最小页数。
max_conn_local_pages
int
在多版本并发控制(MVCC)模式下,每个连接分配器所持有的最大页数。
allocation_bitmap_caching_priority
int
分配位图页的缓存优先级;一个零或更大的整数值。该值越高,分配位图页在缓存中保留的时间就越长。
index_caching_priority
int
索引页面的缓存优先级;一个零或更大的整数值。值越高,索引页面在缓存中保留的时间就越长。
object_caching_priority
int
数据库对象(不包括 BLOB)的缓存优先级;一个零或更大的整数值。值越高,对象页面在缓存中保留的时间就越长。
ddl_dict
struct mco_ddl_dictionary_t_*
留作将来使用。
ddl_dict_size
mco_size_t
用于在数据库头中为字典预留空间,以允许动态模式修改。通过 SQL 的 create table
或 alter table
操作来完成。
此参数不适用于非 SQL 应用程序。
ddl_dict_build_flags
int
留作将来使用。
cipher_key
char*
启用数据库加密。
license_key
char*
SmartEDB 许可密钥。
max_classes
int
用于在数据库头中为类预留空间,以允许动态模式修改。通常通过 SQL 的 create table
或 alter table
操作来完成。
此参数不适用于非 SQL 应用程序。
max_indexes
int
用于在数据库头中为索引预留空间,以允许动态模式修改。通常通过 SQL 的 create table
或 alter table
操作来完成。
此参数不适用于非 SQL 应用程序。
autocompact_threshold
mco_size_t
在事务提交期间,当对象大小(以字节为单位)达到此值时,将调用 mco_autocompact()
函数。
trans_sched_policy
MCO_TRANS_SCHED_POLICY
具有相同优先级的事务的调度策略。
max_trans_time
uint8
特殊系统级调试的最大事务处理时间。除非在 SmartEDB 运行时的特殊构建版本中,否则 max_trans_time
设置将不起作用。
max_active_pages
int
当启用加密保护或数据压缩时,SmartEDB 运行时内部使用的页哈希中最大页数(默认值为 32)。
page_hash_bundles
int
当启用加密保护或数据压缩时,SmartEDB 运行时在页面哈希中内部使用的捆绑包数量。
compression_level
int
压缩级别:0 = 不压缩,1 = 启用压缩(默认)。
compression_mask
int
指示要压缩的页面种类的位图。
expected_compression_ratio
int
用于分配页映射(默认值 = 10)。不建议更改此值。
btree_cursor_read_ahead_size
uint1
每次从 B 树页的叶子节点获取的键的数量。(不能大于 10)。
mvcc_bitmap_size
int
在某些情况下用于加速 MVCC 事务管理器性能的内部位图的大小。默认值为 0,这将禁用此功能。
additional_heap_size
int
各种内部数据库功能使用的堆内存。
cow_pagemap_size
mco_size_t
写时复制多版本并发控制(MVCC)页映射的大小(以字节为单位,每磁盘页一个字节)。
backup_map_size
mco_size_t
备份计数器数组的大小,以字节为单位,为 2 的幂次方,若设置了disk_max_database_size
则忽略此设置(设为零可禁用备份功能)。
backup_min_pages
unsigned int
上次备份过程的独占通过页数(设为零以禁用阈值)。
backup_max_passes
unsigned int
备份程序在执行独占通过操作前的最大通过次数。
backup_map_filename
char
在调用 mco_db_close()
时,文件名将用于存储备份临时数据。SmartEDB 将使用链接到进程中的文件系统包装器来存储数据。可以将其设置为零,以默认使用<persistent-storage>.bmap
,从而将文件定位在与持久存储文件相同的位置。
iot_agent_id
uint8
物联网代理标识符。
iot_level
uint2
允许覆盖 MCO 模式文件中定义的路由器级别的物联网级别。
file_backup_delay
uint4
写入备份块之间的延迟(以毫秒为单位);以尽量减少备份对性能的影响;默认值为 0 - 无延迟。