【全文检索引擎】OpenSearch 与 Solr:分叉与同源
对照 Elasticsearch 8.x 与 OpenSearch 的许可与发行分叉,说明二者与 Solr 如何共享 Lucene 段模型;Solr 仅作边界一句,内核机制仍回链本系列 01–15 篇。
发布来自土法炼钢兴趣小组的知识、笔记、进展和应用。主题包括数据结构和算法、编程语言、网络安全、密码学等。
共 6 篇文章 · 返回首页
对照 Elasticsearch 8.x 与 OpenSearch 的许可与发行分叉,说明二者与 Solr 如何共享 Lucene 段模型;Solr 仅作边界一句,内核机制仍回链本系列 01–15 篇。
从 rdb.c 拆解 SAVE/BGSAVE 的 fork 写时复制语义、子进程快照路径,以及 REDIS 魔数与 opcode 锚定的 RDB 格式边界。
按 Redis Latency Monitoring 与 INFO/SLOWLOG 信号,建立大 key、fork 延迟、阻塞命令、内存碎片四类故障的排查决策树;给出可在本机 redis-server 上执行的复现命令清单,不粘贴伪造输出。
拆解 PostgreSQL 多进程架构的核心:Postmaster 的启动与信号处理、Backend 进程的 fork()→InitPostgres→主循环生命周期、CreateSharedMemoryAndSemaphores() 的共享内存初始化流程、PGPROC/ProcArray/PGXACT 等关键共享内存结构的内存布局,以及 Background Worker 的注册与调度。理解了这个地基,才能理解 PG 为什么用进程而不是线程,以及 max_connections 为什么不能随便调大。
fork 在 1971 年的 PDP-7 上是一句几十行的汇编;五十年后在一台 256GB 内存的服务器上同一句 fork() 要复制几百万个页表条目。本文讲 fork 的语义、COW 的账本、vfork/clone3/posix_spawn 的替代谱系,以及 fork 与多线程、大内存、JIT、容器相性差在哪里。
详解在多进程环境中使用 Libevent 的致命陷阱:fork 后的 event_base 重置与资源继承问题。