配置示例
{
"realtime": true,
"cluster_config": {
"table_name": "my_table"
},
"online_index_config": {
"online_keep_version_count": 2,
"on_disk_flush_realtime_index": true,
"enable_async_dump_segment": true,
"build_config": {
"build_total_memory": 2048
},
"max_realtime_memory_use": 4096,
"need_read_remote_index": true,
"need_deploy_index": true,
"load_config": [
{
"file_patterns": [
"/index/title",
"/attribute/.*",
],
"load_strategy": "mmap",
"load_strategy_param": {
"slice": 409600,
"lock": true,
"interval": 2
},
"remote": false,
"deploy": true
}
],
"speedup_primary_key_reader": true
},
"build_option_config": {
"async_queue_size": 10000,
"max_recover_time": 600,
"async_build": true
}
}
参数含义
realtime:是否开启实时模式,true/false。
cluster_config:
table_name:索引表名称
online_index_config:索引表在线控制参数,包括实时build参数和索引load策略。
online_keep_version_count:在线服务保存增量索引的 version 数,当在线服务增量索引的 version 数超过此值时,会删除老的增量索引,直到增量索引的 version 数不大于此值。
on_disk_flush_realtime_index:是否开启实时落盘,true/false,默认为false。开启实时落盘时,当正在构建的实时索引大小达到build_total_memory时,索引会dump到本地磁盘,并以load_config的策略加载。实时落盘功能可以使用同样的实时内存,承载更多的实时索引,对于数据量更新较大的应用建议开启。
enable_async_dump_segment:是否开启实时索引异步dump功能,true/false,默认为false。开启时dump索引不阻塞实时索引构建,建议设置为true。
build_config:实时索引build参数。
build_total_memory:实时索引build时使用的总内存大小,单位MB,超过该内存会触发实时索引dump。索引是dump到内存中还是到磁盘上由on_disk_flush_realtime_index参数控制。注意,该值应max_realtime_memory_use大小。
max_realtime_memory_use:实时索引占用的总内存大小,单位MB。实时索引占用的内存大小包括正在构建的实时索引和已经dump的实时索引所占用的内存空间。实时索引占用的内存空间达到max_realtime_memory_use时,实时索引停止构建。当实时数据通过增量索引(索引整理)切换到在线服务之后,这部分实时数据会从实时索引中清理掉,实时索引占用的内存会被释放。注意,该值应大于build_total_memory大小。
need_read_remote_index:存储计算分离功能开关,默认是false,开启存算分离功能后,数据节点可以直接读取分布式存储中的索引数据,节省数据节点启动时间,提高节点数据容量,节省成本,但是对查询性能有影响。
need_deploy_index:是否需要将索引分发到本地,默认是true。将索引提前分发到本地可以提高检索性能。
load_config:索引表加载策略,控制索引以哪种方式加载到内存,以实现对内存的细粒度控制,降低内存开销,提高检索性能,详细参数请参考索引表加载策略。need_read_remote_index、need_deploy_index和load_config相互配合,可以在节省成本的同时,尽量减少存算分离对性能的影响。
build_option_config:在线服务加载索引表时,一些进程级参数。
async_build:读取实时数据和build是否采用异步模式,默认为false,如果时效性敏感或者数据量更新较多,建议设置为true。
async_queue_size:async_build为true时,工作队列的大小,默认为1000。
max_recover_time:数据节点进程启动时,会回溯消息队列,追实时数据。max_recover_time表示回溯数据最长花费的时间,单位为秒。例如,配置max_recover_time为600,表示进程启动时,加上索引之后,追实时数据最多持续10分钟,10分钟后即使实时还有延迟也会提供服务。如果实时数据很少,进程检测到时效性无延迟,会立刻将进程状态置为正常,并提供服务。