MongoDB Jira系列-3.0.5修复的那些事儿

简介:

大家好,我是E叔。
经常有朋友向我咨询版本选型的问题。
受到老毕同学的启发,E叔决定为大家搬运+翻译+简单解释 MongoDB3.0.4+以后各个版本fixed的比较重要的jira issues。大家可以根据需求来决定版本选型。
今天是3.0.5篇。

Issues fixed in 3.0.5

以下均是3.0.5中修复了的jira issues。(比较重要的issues)
由于人肉整理,难免有遗漏,欢迎补充。

Issues fixed in 3.0.5

SERVER-19513

truncate 一个capped 表的时候 可能其索引在WT中不会删除。

cover index 的查询可能就会返回出这些没删除的索引的documents

SERVER-19375

选择syncsource的时候,此前是比较的最新的数据,应该比较最新oplog数据。

SERVER-19189(与SERVER-18829有关联)

提高了WT引擎在大量threads下的性能。

SERVER-18829

当在WT中进行大量index的建立的时候,会超过我们WT设置的最大cache,可能会OOM之类

SERVER-19178

由于WT tracks和expires capped表的方式问题,性能有所损耗(在大量inserts的情况,)

注意:oplog就是个capped collection!

现在WT会cache住capped的第一个没有过期的document在cache中,提高了效率。

SERVER-18994

producer thread can continue producing after a node becomes primary

SERVER-18926

full text search 在WT中效率很低,使用内存较多

yield过程中 intermediate的数据buffer在cache中,但是在$text 和geoNear的long queries有个bug:

In particular, if a such a query yields y times and buffers d documents, the overall time spent in yield-preparation was O(yd). With the fix, the time complexity is reduced to O(y).

SERVER-18902

超过1MB大小的document,WT速度slow down

原因如下

WiredTiger does not store documents larger than its default leaf_value_max in the in-memory cache. The leaf_value_max value is 1 megabyte. As a result, operations that read or modify larger documents are significantly less efficient than with smaller documents.

Starting with MongoDB 3.0.5 all documents are stored in the in-memory WritedTiger cache, but this change only impacts collections created after upgrading to 3.0.5 or later. Existing collections are unaffected by this change.

WT的每个leaf的leaf_value_max是1MB,如果超过1MB就存储多个,这时候效率变差。

Users with documents larger than 1 megabyte may use the --wiredTigerCollectionConfigString 'leaf_value_max='configuration option to increase the value of leaf_value_max beyond 1 megabyte to improve performance when accessing large documents.

For example, to ask WiredTiger to put in its cache documents of up to 16 megabytes in size, use:

--wiredTigerCollectionConfigString 'leaf_value_max=16000000'

Note that this setting only impacts collections created after the change. Existing collections are not be affected by this change, so users with existing collections containing large documents may want to move them to a newly created collection, replicate them to new instances running 3.0.5, or perform a dump + restore cycle on these collections.

3.0.5修复,但是只有在3.0.5之后建立的表才有效,可以重新建立表,导入数据之类。

SERVER-18838

当意外宕机(如断电)的时候,

这些操作:database creation

database dropping

collection creation

collection dropping

index creation

index dropping

将可能会作用在invalid的data set中,导致重启后recover失败

SERVER-17386

WT 不限制mongo打开的wt session。这样造成了一定的内存泄露

WiredTiger allows MongoDB to open an unbounded number of WiredTiger sessions, which means that despite a limited number of WiredTiger cursors per session, the total number of cached sessions an cursors may lead to excessive memory use.

相关文章
|
9月前
|
人工智能 前端开发 JavaScript
挤爆字节服务器的Agent到底啥水平?Coze一手实测来了
Coze Agent真能挤爆字节服务器?三天深度实测,从配置到API集成,揭秘其真实性能:指令精准、插件实用,技术写作与代码辅助表现亮眼,但创造力与长文本仍有限。非营销噱头,而是值得开发者投入的高效工具。
|
运维 负载均衡 算法
硬件负载均衡和软件负载均衡的价格有什么差异?
硬件负载均衡和软件负载均衡的价格有什么差异?
689 127
|
机器学习/深度学习 人工智能 编解码
告别潜在空间的黑箱操作,直接在原始像素空间建模!PixelFlow:港大团队开源像素级文生图模型
香港大学与Adobe联合研发的PixelFlow模型,通过流匹配和多尺度生成技术实现像素级图像生成,在256×256分辨率任务中取得1.98的FID分数,支持端到端训练并突破传统模型对预训练VAE的依赖。
983 36
告别潜在空间的黑箱操作,直接在原始像素空间建模!PixelFlow:港大团队开源像素级文生图模型
|
机器学习/深度学习 人工智能 自然语言处理
自适应Prompt技术:让LLM精准理解用户意图的进阶策略
自适应Prompt技术通过动态意图解析与反馈驱动优化,将LLM从“机械执行者”进化为“认知协作者”。企业落地时需聚焦垂直场景,结合自动化工具链快速验证价值。
1002 9
|
机器学习/深度学习 人工智能 自然语言处理
《从语言学理论到自然语言处理:筑牢技术根基》
在人工智能时代,自然语言处理(NLP)技术如智能语音助手、机器翻译等深刻改变生活与工作方式。其背后离不开语言学理论支撑,包括句法学解析句子结构、语义学解锁语言意义、语用学融入语境理解。句法学通过依存关系分析帮助计算机识别语法成分;语义学利用语义角色标注和向量表示提升语义理解;语用学结合对话历史和背景知识,实现更自然的交互。语言学与NLP协同发展,共同推动技术进步。
527 48
|
机器学习/深度学习 人工智能 自然语言处理
AI第三极之争:生成式人工智能(GAI)认证如何重塑青年竞争力与时代担当
本文探讨了AI时代青年面临的机遇与挑战,强调跨学科知识、创新思维及伦理意识的重要性,并提出GAI认证对提升青年就业竞争力的意义。通过加强教育衔接、校企合作及政策支持,助力青年在AI领域成长,成为推动社会进步的重要力量。
|
XML 前端开发 Android开发
Android View的绘制流程和原理详细解说
Android View的绘制流程和原理详细解说
671 3
|
移动开发 数据安全/隐私保护 Python
100行代码手把手带你实现Feisitel加密算法
Feistel 加密算法,或者叫做 Feistel 网络,是一种块加密(block cipher)模型,很多常见的加密算法都具有 Feistel 结构,如 DES、blowfish 等。 Feistel 将明文分割成固定大小(block size)的块(如 32bit、64bit),然后对于每个块进行若干轮操作,每轮操作需要用到一个 key,因此总计需要循环轮数个 key。解密时需要用相同的 keys,因此这是一种对称加密算法。
|
机器学习/深度学习 自然语言处理 机器人
基于深度学习的智能语音机器人交互系统设计方案
**摘要** 本项目旨在设计和实现一套基于深度学习的智能语音机器人交互系统,该系统能够准确识别和理解用户的语音指令,提供快速响应,并注重安全性和用户友好性。系统采用分层架构,包括用户层、应用层、服务层和数据层,涉及语音识别、自然语言处理和语音合成等关键技术。深度学习模型,如RNN和LSTM,用于提升识别准确率,微服务架构和云计算技术确保系统的高效性和可扩展性。系统流程涵盖用户注册、语音数据采集、识别、处理和反馈。预期效果是高识别准确率、高效处理和良好的用户体验。未来计划包括系统性能优化和更多应用场景的探索,目标是打造一个适用于智能家居、医疗健康、教育培训等多个领域的智能语音交互解决方案。
|
机器学习/深度学习 人工智能 自然语言处理
阿里巴巴资深算法专家张伟:百科类知识图谱构建和应用已到深水区,行业和多模态知识图谱引关注
知识图谱是近年来人工智能技术蓬勃发展的核心驱动力之一,已广泛应用在金融、电商、医疗、政务等众多领域,经过短短几年的发展,热度依旧不减,未来,知识图谱又将面临哪些新的挑战?又有哪些发展趋势呢?

热门文章

最新文章