如果发生的断电,以及其它故障,这份数据就被排上用场了。因为最后一个提交点,并没有被写到磁盘上(数据落到磁盘上的过程叫做flush),他可能还在内存中,也可能在文件系统上。但是因为故障丢失了,此时可以从translog中拿到这份数据,回放
translog日志的大小也不能是无限大的,因为它的大小,则决定了集群崩溃后恢复的时间长短。如果太大,则会面临集群恢复很久的问题。"index.translog.flush_threshold_size" 这个参数就是指定translog日志最大的大小的。默认为512M。意思是当translog日志大于512M,就一定会触发一次flush,将数据从文件系统落到磁盘上,并将translog清理掉
如果制定index.translog.durability=async 那么就要面临丢数据的风险了
index.refresh_interval:refresh刷新频率,默认1s一次,可以设置为-1为禁用
index.translog.durability:
request:同步刷盘(默认)
async:异步刷盘
index.translog.sync_interval:translog异步刷盘间隔时间;默认5s一次
index.translog.flush_threshold_size:当translog的大小达到此值时会进行一次flush操作。默认是512m
index.translog.flush_threshold_period:在指定的时间间隔内如果没有进行flush操作,会进行一次强制flush操作。默认是30分钟
index Buffer 大小设置:
indices.memory.index_buffer_size:接受百分比或字节大小值,默认为10%,意味着分配给node的总内存的10%用于索引缓冲区
indices.memory.min_index_buffer_size:如果将index_buffer_size设置为备份比,则可以用此设置指定绝对最小值,默认为48mb
indices.memory.max_index_buffer_size:如果将index_buffer_size设置为百分比,则可以用此设置指定绝对最小值,默认无限制