EventStoreDB v25.0.0 发布:全面升级为 KurrentDB 并引入革命性归档功能
EventStoreDB 是一个高性能、开源的事件溯源数据库,专为处理事件流而设计。它采用事件溯源架构,能够持久化、处理和查询事件数据。在最新发布的 v25.0.0 版本中,EventStoreDB 经历了一系列重大变革,包括品牌重塑为 KurrentDB 以及引入了创新的归档功能。
品牌重塑:从 EventStoreDB 到 KurrentDB
v25.0.0 版本标志着 EventStoreDB 正式更名为 KurrentDB。这一变化不仅仅是一个简单的名称变更,而是贯穿了整个项目的各个方面:
-
配置前缀和部分重命名:所有配置项的前缀和部分名称都已更新,以反映新的品牌标识。
-
可执行文件变更:主程序的可执行文件名称已从
EventStore
更改为KurrentDB
。 -
日志消息和默认用户名更新:系统日志消息和默认用户名中的 "EventStore" 已全部替换为 "KurrentDB"。
-
测试客户端重命名:测试客户端工具从
EventStore.TestClient
更名为KurrentDB.TestClient
。 -
HTTP API 内容类型变更:自定义的 HTTP API 内容类型已更新为新品牌名称。
-
HTTP 头部更新:所有 HTTP 头部中的 "EventStore" 已被替换为 "KurrentDB"。
-
指标系统更新:监控指标系统已全面更新为使用 "kurrentdb" 前缀。
-
许可证和遥测端点:许可证检查和遥测收集的端点也已更新为新品牌名称。
值得注意的是,为了确保向后兼容性,系统仍然提供了获取旧版 EventStore 指标的选项,这使得过渡更加平滑。
革命性的归档功能
v25.0.0 版本引入了全新的归档功能,这是数据库架构的一项重大改进。归档功能允许将旧的、已完成的和已清理的块(chunk)从本地存储转移到成本更低的长期存储解决方案中,如 S3 对象存储。
归档功能的核心改进
-
异步友好的同步机制:引入了
HashListMemTable
的异步友好同步机制,为归档功能奠定了基础。 -
TFChunk 读取侧内部 API 异步化:将
TFChunk
读取侧的内部 API 迁移到异步模式,提高了系统在处理大块数据时的响应能力。 -
S3 存储支持:实现了将块上传到 S3 对象存储的功能,支持部分读取操作,优化了网络带宽使用。
-
顺序归档机制:确保块按照正确的顺序进行归档,防止数据不一致。
-
归档检查点:引入归档检查点机制,取代了简单的列表查询,提高了归档状态的确定效率。
-
追赶过程优化:实现了归档追赶过程,确保节点加入集群后能够正确同步归档状态。
-
逻辑块号映射:建立了逻辑块号与归档块文件名之间的映射关系,简化了归档数据的管理。
-
异步转换基础设施:构建了完整的异步转换基础设施,支持高效的批量数据处理。
-
保留策略配置:允许管理员配置归档保留策略,自动管理本地存储中的旧数据。
-
抽象文件系统:引入了抽象文件系统层,统一了本地和远程存储的访问接口。
-
S3 块句柄:实现了
S3ChunkHandle
来从对象存储中读取块数据,优化了远程访问性能。 -
本地块清理:在清理过程中根据归档和保留策略自动移除本地块,释放存储空间。
-
单调归档过程:确保归档过程是单调的,防止数据不一致。
-
性能优化:通过优化 posmap 解析和添加异步读取/写入标志,显著提高了启动和运行时的性能。
-
监控指标:新增了
eventstore-io-record-read-duration-seconds
直方图指标,用于跟踪不同来源(内存/文件系统/归档)的记录读取性能。 -
块解合并:实现了块解合并功能,提高了存储灵活性。
-
取消令牌处理:统一了取消令牌的处理方式,提高了系统的健壮性。
-
硬删除限制:当启用归档功能时,禁止使用
UnsafeIgnoreHardDelete
选项,确保数据完整性。
全新的服务器 UI
v25.0.0 版本还带来了全新的基于 Blazor 的 Web UI:
-
现代化架构:采用 Sdk.Web 和顶级语句的 Program.cs,简化了代码结构。
-
CORS 策略:添加了完善的跨域资源共享策略,提高了前端集成的灵活性。
-
服务注册清理:优化了服务注册逻辑,提高了启动效率。
-
内容根设置:正确设置了内容根目录,确保静态资源加载可靠。
-
许可证集成:将许可证信息集成到 UI 中,方便管理员查看。
-
管道优化:调整了中间件顺序,确保 CORS 在路由之前处理。
-
浏览器重定向:实现了智能的浏览器调用重定向机制。
-
客户端-服务器分离:将 UI 分离为客户端和服务器部分,提高了架构清晰度。
持久订阅分页支持
新版本还增加了对持久订阅的分页支持,这使得处理大量订阅事件变得更加高效和可控。
其他重要改进
除了上述主要功能外,v25.0.0 还包含了许多其他改进:
-
日志级别调整:优化了 gRPC 枚举器的日志级别,减少了噪音。
-
废弃选项移除:清理了已弃用的配置选项,简化了配置界面。
-
依赖更新:更新了依赖库版本,修复了已知的问题。
-
命名空间对齐:统一了清理功能的命名空间,提高了代码一致性。
-
配置逻辑分离:将配置逻辑与启动逻辑分离,提高了代码的可维护性。
-
直方图桶对齐:调整了直方图桶设置,与仪表板更好地配合。
-
OTLP 导出器集成:将 OpenTelemetry 协议导出器插件集成到主仓库中。
-
服务初始化跟踪:跟踪已初始化的服务,确保关闭时正确等待。
-
未使用代码清理:移除了未使用的
LRUCache
代码,减少了代码库体积。 -
大事务处理:修复了处理大于整个块的事务时的问题。
-
安全更新:更新 OpenTelemetry 到 1.11.12 版本,修复了相关安全问题。
-
启动检查:在启动时验证数据库对数据库路径的写入权限。
-
优雅退出:在启动任务被取消时实现干净退出。
-
日志优化:避免在成功截断后记录 FTL 级别的日志消息。
总结
KurrentDB v25.0.0 是一个里程碑式的版本,不仅完成了品牌重塑,还引入了革命性的归档功能,大幅提升了系统的可扩展性和经济性。新的 Blazor Web UI 提供了更现代化的管理界面,而持久订阅的分页支持则增强了大规模事件处理的能力。这些改进共同使 KurrentDB 成为一个更加强大、灵活且易于管理的事件溯源数据库解决方案。
- DDeepSeek-V3.1-BaseDeepSeek-V3.1 是一款支持思考模式与非思考模式的混合模型Python00
- QQwen-Image-Edit基于200亿参数Qwen-Image构建,Qwen-Image-Edit实现精准文本渲染与图像编辑,融合语义与外观控制能力Jinja00
GitCode-文心大模型-智源研究院AI应用开发大赛
GitCode&文心大模型&智源研究院强强联合,发起的AI应用开发大赛;总奖池8W,单人最高可得价值3W奖励。快来参加吧~058CommonUtilLibrary
快速开发工具类收集,史上最全的开发工具类,欢迎Follow、Fork、StarJava04GitCode百大开源项目
GitCode百大计划旨在表彰GitCode平台上积极推动项目社区化,拥有广泛影响力的G-Star项目,入选项目不仅代表了GitCode开源生态的蓬勃发展,也反映了当下开源行业的发展趋势。07GOT-OCR-2.0-hf
阶跃星辰StepFun推出的GOT-OCR-2.0-hf是一款强大的多语言OCR开源模型,支持从普通文档到复杂场景的文字识别。它能精准处理表格、图表、数学公式、几何图形甚至乐谱等特殊内容,输出结果可通过第三方工具渲染成多种格式。模型支持1024×1024高分辨率输入,具备多页批量处理、动态分块识别和交互式区域选择等创新功能,用户可通过坐标或颜色指定识别区域。基于Apache 2.0协议开源,提供Hugging Face演示和完整代码,适用于学术研究到工业应用的广泛场景,为OCR领域带来突破性解决方案。00openHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!C0381- WWan2.2-S2V-14B【Wan2.2 全新发布|更强画质,更快生成】新一代视频生成模型 Wan2.2,创新采用MoE架构,实现电影级美学与复杂运动控制,支持720P高清文本/图像生成视频,消费级显卡即可流畅运行,性能达业界领先水平Python00
- GGLM-4.5-AirGLM-4.5 系列模型是专为智能体设计的基础模型。GLM-4.5拥有 3550 亿总参数量,其中 320 亿活跃参数;GLM-4.5-Air采用更紧凑的设计,拥有 1060 亿总参数量,其中 120 亿活跃参数。GLM-4.5模型统一了推理、编码和智能体能力,以满足智能体应用的复杂需求Jinja00
Yi-Coder
Yi Coder 编程模型,小而强大的编程助手HTML013
热门内容推荐
最新内容推荐
项目优选









