混合并发控制
异步索引混合使用乐观并发控制和基于日志的并发控制模型。索引分为两个阶段:调度和执行。在调度过程中,索引器(负责创建新索引的外部进程)获取一个短锁,并为数据文件生成一个索引计划,直到最后一个提交时刻 t。它初始化与请求的索引对应的元数据分区,并在此阶段完成后释放锁。这应该需要几秒钟,并且在此阶段不会写入任何索引文件。在执行期间,索引器执行计划,将索引基础文件(对应于直到瞬间 t 的数据文件)写入元数据分区。同时,常规的正在进行的写入继续将更新记录到与元数据分区中的基本文件相同的文件组中的日志文件。编写基本文件后,索引器会检查 t 之后的所有已完成提交instant,以确保它们中的每一个都根据其索引计划添加条目,否则只是优雅地中止。这是当乐观并发控制启动时,使用元数据表锁来检查写入者是否影响了重叠文件,如果存在冲突,则中止,优雅中止确保可以以幂等方式重试索引。