PageSourceSearch

https://montplex.com/static/js/async/3153.381ca9a6.js

js montplex.com collected 2026-10-03 21:16:30 UTC 15,441 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkengula_website=self.webpackChunkengula_website||[]).push([["3153"],{9870:function(e,n,i){i.r(n),i.d(n,{default:()=>a});var r=i(2676),d=i(453);function s(e){let n=Object.assign({h1:"h1",a:"a",h2:"h2",p:"p",strong:"strong",br:"br",h3:"h3",ul:"ul",li:"li"},(0,d.ah)(),e.components);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.h1,{id:"发布说明",children:["发布说明",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#发布说明",children:"#"})]}),"\n",(0,r.jsxs)(n.h2,{id:"engula-v10-发布说明",children:["Engula v1.0 发布说明",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#engula-v10-发布说明",children:"#"})]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"发布时间窗口:"})," 2024 年 1 月 – 2024 年 11 月",(0,r.jsx)(n.br,{}),"\n",(0,r.jsx)(n.strong,{children:"重点:"})," 压缩能力与字典训练、可观测性与指标、测试与工具链、稳定性修复。"]}),"\n",(0,r.jsxs)(n.h3,{id:"-亮点",children:["\uD83D\uDE80 亮点",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#-亮点",children:"#"})]}),"\n",(0,r.jsx)(n.p,{children:"v1.0 版本完成了压缩能力与配套工具链落地:引入 ZSTD/FSST 压缩与自适应字典、完善指标与统计输出,并补齐测试与发布流水线。"}),"\n",(0,r.jsxs)(n.h3,{id:"-新特性",children:["✨ 新特性",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#-新特性",children:"#"})]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"压缩与字典:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Added FSST support and split FSST/ZSTD build."}),"\n",(0,r.jsx)(n.li,{children:"Added adaptive dictionaries for ZSTD compression."}),"\n",(0,r.jsx)(n.li,{children:"Added KV compression for hashtable and t_hash compression support."}),"\n",(0,r.jsx)(n.li,{children:'Added "MC DICTINFO" command and "MC OBJECT" command for compression inspection.'}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"可观测性与指标:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Added the engula info command to print internal statistics."}),"\n",(0,r.jsx)(n.li,{children:"Added new metrics and confirmed redis-exporter metrics."}),"\n",(0,r.jsx)(n.li,{children:"Added metrics and stats for dict recycle and LIST compression."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"集群与运维:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Cluster failover done."}),"\n",(0,r.jsx)(n.li,{children:"Added bgsave check."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"测试与工具:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Added ginkgo framework and updated ginkgo test cases."}),"\n",(0,r.jsx)(n.li,{children:"Added TCL test cases support."}),"\n",(0,r.jsx)(n.li,{children:"Added init.sh script for setting up development environment."}),"\n"]}),"\n",(0,r.jsxs)(n.h3,{id:"-改进与重构",children:["\uD83D\uDEE0 改进与重构",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#-改进与重构",children:"#"})]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"压缩与资源回收:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Refactored mc compress and dict train flow."}),"\n",(0,r.jsx)(n.li,{children:"Enhanced dict recycle policy and split reclaim process for HT entries."}),"\n",(0,r.jsx)(n.li,{children:"Removed confused compress_stats_tot_try_cnt_ metrics."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"许可与合规:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"License will be expired 90 days after the compile time."}),"\n",(0,r.jsx)(n.li,{children:"Changed the license expire date from 90 days to 30 days."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"发布与版本:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Updated engula-server-lib version."}),"\n",(0,r.jsx)(n.li,{children:"Docs: update engula version to 1.0.1."}),"\n",(0,r.jsx)(n.li,{children:"Added engula-server Dockerfile and refined dockerfile/workflow image names."}),"\n"]}),"\n",(0,r.jsxs)(n.h3,{id:"-bug-修复",children:["\uD83D\uDC1B Bug 修复",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#-bug-修复",children:"#"})]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Fixed invali
1d memory access in compress_cron_task for hash object recycle."}),"\n",(0,r.jsx)(n.li,{children:"Fixed wrong database id for ht element."}),"\n",(0,r.jsx)(n.li,{children:"Fixed rdb checksum parsing issue."}),"\n",(0,r.jsx)(n.li,{children:"Fixed serverPanic issue."}),"\n",(0,r.jsx)(n.li,{children:"Fixed exception in human_readable_to_size() when str_size is '0B'."}),"\n",(0,r.jsx)(n.li,{children:'Fixed "access after free" issue when AOF reloading.'}),"\n",(0,r.jsx)(n.li,{children:"Fixed memory double free in hrandfieldWithCountCommand()."}),"\n",(0,r.jsx)(n.li,{children:"Fixed misc compile errors on Linux/macOS (including hiredis)."}),"\n"]}),"\n",(0,r.jsxs)(n.h3,{id:"-基础设施与-ci",children:["\uD83D\uDEE0 基础设施与 CI",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#-基础设施与-ci",children:"#"})]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Added workflow to auto release cross-platform tarball on tag."}),"\n",(0,r.jsx)(n.li,{children:"Added weekly auto build."}),"\n",(0,r.jsx)(n.li,{children:"Updated GitHub Actions workflows and build docker images."}),"\n"]}),"\n",(0,r.jsxs)(n.h2,{id:"engula-v20-发布说明",children:["Engula v2.0 发布说明",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#engula-v20-发布说明",children:"#"})]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"发布时间窗口:"})," 2024 年 12 月 – 2025 年 3 月",(0,r.jsx)(n.br,{}),"\n",(0,r.jsx)(n.strong,{children:"重点:"})," 核心内存引擎集成、基础碎片整理、数据结构支持。"]}),"\n",(0,r.jsxs)(n.h3,{id:"-亮点-1",children:["\uD83D\uDE80 亮点",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#-亮点-1",children:"#"})]}),"\n",(0,r.jsx)(n.p,{children:"本版本引入 eallocator 内存引擎,并与 Valkey 深度集成,奠定高性能内存管理基础:包括 ZSTD 压缩、Memory Block 碎片整理,以及对复杂数据类型(Hash、Set、Listpack)的专门处理。"}),"\n",(0,r.jsxs)(n.h3,{id:"-新特性-1",children:["✨ 新特性",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#-新特性-1",children:"#"})]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"核心引擎集成:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Integrated Valkey with eallocator and wrapped the key-value store into ekvstore."}),"\n",(0,r.jsx)(n.li,{children:"Introduced eallocator support for basic memory arena management."}),"\n",(0,r.jsx)(n.li,{children:"Added support for Mutable and Immutable memory blocks."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"压缩与编码:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Added support for ZSTD compression in earena."}),"\n",(0,r.jsx)(n.li,{children:"Implemented Variable Byte Encoding for integers."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"数据结构支持:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Added eallocator support for Hash objects and Set objects."}),"\n",(0,r.jsx)(n.li,{children:"Refactored Listpack to support Set and Hash objects efficiently."}),"\n",(0,r.jsx)(n.li,{children:"Implemented eobj serialization and deserialization."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"可观测性:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Introduced the engula info command to print internal statistics."}),"\n"]}),"\n",(0,r.jsxs)(n.h3,{id:"-改进与重构-1",children:["\uD83D\uDEE0 改进与重构",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#-改进与重构-1",children:"#"})]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"碎片整理:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Rolled out Memory Defragmentation Phase 2 (merging blocks) and Phase 3."}),"\n",(0,r.jsx)(n.li,{children:"Added background threads specifically for zip and defragmentation tasks."}),"\n",(0,r.jsx)(n.li,{children:"Optimization: Empty blocks are no longer added to the defrag request list."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"内存管理:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Supported up to 32KB record contents in dense/sparse memory blocks."}),"\n",(0,r.jsx)(n.li,{children:"Optimized async deletion using a waitable queue in batch mode to reduce CPU usage."}),"\n",(0,r.jsx)(n.li,{children:"Refactored elpobj pointers."}),"\n"]}),"\n",(0,r.jsxs)(n.h3,{id:"-bug-修复-1",children:["\uD83D\uDC1B Bug 修复",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#-bug-修复-1",children:"#"})]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Fixed ZUNION errors when mixing Set and ZSet types."}),"\n",(0,r.jsx)(n.li,{children:"Fixed bugs related to HINCRBY results not saving to listpack."}),"\n",(0,r.jsx)(n.li,{children:'Resolved memory leaks in e-record and fixed "access after free" issues.'}),"\n",(0,r.jsx)(n.li,{children:"Fixed Universal Test (UT) errors for bit operations."}),"\n"]}),"\n",(0,r.jsxs)(n.h2,{id:"engula-v21-发布说明",children:["Engula v2.1 发布说明",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#engula-v21-发布说明",children:"#"})]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"发布时间窗口:"})," 2025 年 4 月 – 2025 年 11 月",(0,r.jsx)(n.br,{}),"\n",(0,r.jsx)(n.strong,{children:"重点:"})," 性能调优、大 Value 支持、模块系统、上游同步(Valkey 8.1 / Redis 7.2)。"]}),"\n",(0,r.jsxs)(n.h3,{id:"-亮点-2",children:["\uD83D\uDE80 亮点",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#-亮点-2",children:"#"})]}),"\n",(0,r.jsx)(n.p,{children:"2.1 版本聚焦性能与可扩展性:包括 I/O 线程与哈希表优化等显著性能提升,并新增对 4GB 以上 Value 的支持。同时对齐 Valkey(8.1.4)与 Redis(7.2)的最新上游版本兼容性。"}),"\n",(0,r.jsxs)(n.h3,{id:"-新特性-2",children:["✨ 新特性",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#-新特性-2",children:"#"})]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"扩展性与存储:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Added supp
1ort for values larger than 4GB."}),"\n",(0,r.jsx)(n.li,{children:"Implemented Active Defragmentation."}),"\n",(0,r.jsx)(n.li,{children:"Added support for compress groups."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"模块系统:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Added Engula module support."}),"\n",(0,r.jsx)(n.li,{children:"Implemented Module GIL (Global Interpreter Lock) support."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"上游兼容性:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Merged Valkey 8.1.4 and Valkey 8.1.1."}),"\n",(0,r.jsx)(n.li,{children:"Adapted codebase to support Redis 7.2 and related unit tests."}),"\n"]}),"\n",(0,r.jsxs)(n.h3,{id:"-性能改进",children:["⚡ 性能改进",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#-性能改进",children:"#"})]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"I/O 与线程:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Performance improvements for 8 IO threads and 2 IO threads."}),"\n",(0,r.jsx)(n.li,{children:"Added async IO notify functionality."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"哈希表优化:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Improved overall performance for hashtable GET operations."}),"\n",(0,r.jsx)(n.li,{children:"Optimized rehash performance and reduced decompression counts for HMGET."}),"\n",(0,r.jsx)(n.li,{children:"Implemented memory prefetch for rehash operations."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"内存与延迟:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Reduced p99 latency."}),"\n",(0,r.jsx)(n.li,{children:"Implemented quick async free."}),"\n",(0,r.jsx)(n.li,{children:"Disabled lazyfree_lazy_user_flush by default to optimize flushing behavior."}),"\n",(0,r.jsx)(n.li,{children:"Supported 64KB page size for ARM64 architecture."}),"\n"]}),"\n",(0,r.jsxs)(n.h3,{id:"-基础设施与-ci-1",children:["\uD83D\uDEE0 基础设施与 CI",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#-基础设施与-ci-1",children:"#"})]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"构建系统:"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Added automated packaging for Linux EL7 (CentOS 7) tarballs."}),"\n",(0,r.jsx)(n.li,{children:"Added montplex/ubuntu-build docker image for actions."}),"\n",(0,r.jsx)(n.li,{children:"Updated GitHub Actions workflows significantly."}),"\n"]}),"\n",(0,r.jsxs)(n.h3,{id:"-bug-修复-2",children:["\uD83D\uDC1B Bug 修复",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#-bug-修复-2",children:"#"})]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Fixed VM_HSet bug in the module system."}),"\n",(0,r.jsx)(n.li,{children:"Fixed issues related to test scripts."}),"\n",(0,r.jsx)(n.li,{children:"Addressed compilation tasks in eallocator."}),"\n"]})]})}function l(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{wrapper:n}=Object.assign({},(0,d.ah)(),e.components);return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(s,{...e})}):s(e)}let a=l;l.__RSPRESS_PAGE_META={},l.__RSPRESS_PAGE_META["zh%2Fdocs%2Frelease-notes.md"]={toc:[{text:"Engula v1.0 发布说明",id:"engula-v10-发布说明",depth:2},{text:"\uD83D\uDE80 亮点",id:"-亮点",depth:3},{text:"✨ 新特性",id:"-新特性",depth:3},{text:"\uD83D\uDEE0 改进与重构",id:"-改进与重构",depth:3},{text:"\uD83D\uDC1B Bug 修复",id:"-bug-修复",depth:3},{text:"\uD83D\uDEE0 基础设施与 CI",id:"-基础设施与-ci",depth:3},{text:"Engula v2.0 发布说明",id:"engula-v20-发布说明",depth:2},{text:"\uD83D\uDE80 亮点",id:"-亮点-1",depth:3},{text:"✨ 新特性",id:"-新特性-1",depth:3},{text:"\uD83D\uDEE0 改进与重构",id:"-改进与重构-1",depth:3},{text:"\uD83D\uDC1B Bug 修复",id:"-bug-修复-1",depth:3},{text:"Engula v2.1 发布说明",id:"engula-v21-发布说明",depth:2},{text:"\uD83D\uDE80 亮点",id:"-亮点-2",depth:3},{text:"✨ 新特性",id:"-新特性-2",depth:3},{text:"⚡ 性能改进",id:"-性能改进",depth:3}
1,{text:"\uD83D\uDEE0 基础设施与 CI",id:"-基础设施与-ci-1",depth:3},{text:"\uD83D\uDC1B Bug 修复",id:"-bug-修复-2",depth:3}],title:"发布说明",headingTitle:"发布说明",frontmatter:{}}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.