热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

我们为什么要从MongoDB迁移到TokuMX

MongoDB使用情况作为最初使用MongoDB的用户之一,我们线上MongoDB版本从MongoDB1.8到MongoDB2.0到MongoDB2.2再到MongoDB2.4,我们经历了几乎所有使用MongoDB的用户会遇到的问题,也随着MongoDB版本更新,看到MongoDB这几年取得的改进。近期随着MongoDB

MongoDB使用情况 作为最初使用MongoDB的用户之一,我们线上MongoDB版本从MongoDB 1.8到MongoDB 2.0到MongoDB 2.2再到MongoDB 2.4,我们经历了几乎所有使用MongoDB的用户会遇到的问题,也随着MongoDB版本更新,看到MongoDB这几年取得的改进。 近期随着MongoDB

MongoDB使用情况
作为最初使用MongoDB的用户之一,我们线上MongoDB版本从MongoDB 1.8到MongoDB 2.0到MongoDB 2.2再到MongoDB 2.4,我们经历了几乎所有使用MongoDB的用户会遇到的问题,也随着MongoDB版本更新,看到MongoDB这几年取得的改进。
近期随着MongoDB 2.6版本的发布,在国内外又掀起了一股热(tu)潮(cao),然后这一次我们可能不会立即升级或部署新的MongoDB 2.6版本,但我们会保持关注。
去年(2013)6月份我们开始对TokuMX 1.0版本进行测试,关注,一直进行了半年多的观察。在今年2月份在正式在生产环境迁移看了第一套TokuMX 版本1.4.0。为什么是1.4.0?因为之前的版本还不是很完善,不是很友好,也有一些bug没解决。
一直到近期,线上比较重要的系统已陆续迁移到TokuMX 1.4.1(主要使用工具mongosync),开始较大规模的开始使用,并且新上线的系统无特殊原因默认使用TokuMX。

为什么要迁移到TokuMX
尽管TokuMX宣称了很多很好的特性,真正使得我们迁移的原因是如下几种:

  • 压缩。MongoDB BSON格式的带来的存储空间消耗实在是太大了,使用TokuMX 默认的zlib压缩可以减少大量的磁盘空间占用(1/3-1/20)。
  • 更好的存储空间利用效率。MongoDB 空间释放是个麻烦的事情(需要drop 整个个数据库或者repair),TokuMX drop collect或者index即可释放空间。
  • 更好的内存管理。MongoDB nmap简单,但是不方便分配固定内存。caching和 IO都交由操作系统去调度,时间长了,数据大了容易造成内存泄露。TokuMX 通过参数指定cacheSize分配固定大小的内存(多实例环境这个非常适用,虽然不推荐使用多实例)。
  • 写优化。这个是TokuMX 最基础最根本的东西,在大数据量的情况下写入速度基本保持不变。MongoDB在超过1亿记录后或在数据比较大的情况下,写性能衰减得比较厉害,这一切归因于40年的B-tree索引,也正是TokuMX 分形树索引优化的地方。
  • 其他的特性,如document 级别的锁,事务支持等,这些不是我们所重的,实际效果还需时间检验。

TokuMX目前带来的成本或缺点
尽快TokuMX解决了一系列的问题,但也并非是完美的方案。

  • 增加运维成本。对于从MongoDB迁移过来,肯定是需要更多的学习成本和运维成本的,比如新的问题的产生,新的运维工具的开发与支持。从企业角度说,目前国内大多都没有购买原厂支持的情况下,这个可能并不那么突出。
  • 查询性能?由于压缩或多或少影响查询性能,目前从我们使用看,没有影响。
  • 目前部分功能不支持,如geo索引,全文索引。
推荐阅读
  • MongoDB用户验证auth的权限设置及角色说明
    本文介绍了MongoDB用户验证auth的权限设置,包括readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase、cluster相关的权限以及root权限等角色的说明和使用方法。 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • step1.为mongodb添加admin管理员root@12.154.29.163:~#mongoMongoDBshellversionv3.4.2connectingto:mo ... [详细]
  • 一、前言在数据库中,慢查询日志通常是用来进行优化数据库,MySQL中存在慢查询,Mongodb中也是如此。在Mongo中的慢查询属于Mon ... [详细]
  • Abp+MongoDb改造默认的审计日志存储位置
    一、背景在实际项目的开发当中,使用AbpZero自带的审计日志功能写入效率比较低。其次审计日志数据量中后期十分庞大,不适合与业务数据存放在一起。所以我们可以重新实现A ... [详细]
  • “你永远都不知道明天和‘公司的意外’哪个先来。”疫情期间,这是我们最战战兢兢的心情。但是显然,有些人体会不了。这份行业数据,让笔者“柠檬” ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • MACElasticsearch安装步骤及验证方法
    本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
author-avatar
mobiledu2502883463
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有