从服务器复制索引过程

主服务器并不能感知到从服务器的存在。从服务器会按照 pollInterval 参数的设置,不多从主服务器中检查索引版本。如果从服务器发现主服务器有新的版本存在,将启动索引同步进程。步骤如下:
  • 从服务发送一个 filelist 的命令,从主服务中获得文件列表,这个命令会返回文件名以及 metadata,包括大小,最后修改时间等
  • 从服务检查本地的索引中是否包包含这些文件,然后发送 filecontent 命令下载本地不存在的文件,该过程使用一种类似 http 块编码方式下载全部或者部分文件内容,如果过程中断,下次将从断点处继续。每次断开后,从服务器最多会重试 5 次
  • 文件下载下来后会放入临时目录,这样在复制过程出错也不会导致索引库不能使用。
  • 下载完成后,新的文件将会替换到现在的索引库中,新文件的时间戳也将跟服务器的同步
  • 最后将发生一次commit,新的索引将被加载

你可能感兴趣的:(服务器)