WiredTiger

《万亿级数据库MongoDB集群性能数十倍提升优化实践》核心17问详细解答

好久不见. 提交于 2021-02-20 10:33:09
《万亿级数据库MongoDB集群性能数十倍提升优化实践》核心17问详细解答 说明: 为了更好的理解背景,请提前阅读oschina分享的 《万亿级数据库MongoDB集群性能数十倍提升及机房多活容灾实践》 一文。 本文是2020年深圳Qcon全球软件开发大会 《专题:现代数据架构》 专场 、 dbaplus专场:万亿级数据库MongoDB集群性能优化实践 、mongodb2020年终盛会 分享 后,获得一致好评。本文收集了会后众多mongodb用户提的比较频繁的17个问题,并对每个问题进行了详细解答,一并整理到本文中。 分享内容回顾如下: MongoDB在OPPO互联网推广经验分享-如何把一个淘汰边缘的数据库逐步变为公司主流数据库 谈谈当前国内对MongoDB误解(丢数据、不安全、难维护)? MongoDB跨机房多活方案-实现成本、性能、一致性"三丰收" MongoDB线程模型瓶颈及其优化方法 并行迁移:MongoDB内核扩容迁移速率数倍/数十倍提升优化实践 百万级高并发读写/千亿级数据量MongoDB集群性能数倍提升优化实践 万亿级数据量MongoDB集群性能数十倍提升优化实践 磁盘80%节省-记某服务接口千亿级数据迁移MongoDB,近百台SSD服务器节省原理 关于作者 前滴滴出行技术专家,现任OPPO文档数据库mongodb负责人

用最少人力玩转万亿级数据,我用的就是MongoDB!

。_饼干妹妹 提交于 2021-01-28 12:40:07
本文根据杨亚洲老师在〖deeplus直播第258期〗线上分享演讲内容整理而成。 (文末有获取本期PPT&回放的方式,不要错过) 杨亚洲 OPPO MongoDB负责人 负责OPPO数万亿级数据量文档数据库MongoDB内核研发、性能优化及运维工作,一直专注于分布式缓存、高性能服务端、数据库、中间件等相关研发。 本文主要 分享内容如下: MongoDB在OPPO互联网推广经验分享-如何把一个淘汰边缘的数据库逐步变为公司主流数据库; 谈谈当前国内对MongoDB误解(丢数据、不安全、难维护)? MongoDB跨机房多活方案-实现成本、性能、一致性"三丰收"; MongoDB线程模型瓶颈及其优化方法; 并行迁移:MongoDB内核扩容迁移速率数倍/数十倍提升优化实践; 百万级高并发读写/千亿级数据量MongoDB集群性能数倍提升优化实践; 万亿级数据量MongoDB集群性能数十倍提升优化实践; 磁盘800%节省-记某服务接口千亿级数据迁移MongoDB,近百台SSD服务器节省原理; 展望:借助MongoDB完善的分布式、高可用、机房多活等功能,如何实现NoSQL、NewSQL融合; 其他-那些年我们踩过的坑。 一、如何把MongoDB从淘汰边缘变为公司主流数据库? 背景 入职前多个大数据量业务使用MongoDB,使用中经常超时抖动; 多个核心业务忍受不了抖动的痛苦,准备迁移回MySQL;

NoSQL概述-从Mongo和Cassandra谈谈NoSQL

强颜欢笑 提交于 2021-01-27 07:21:33
分两部分介绍NoSQL - NoSQL 概览 1. RDBMS VS NoSQL 2. NoSQL 种类 3. NoSQL 的一些名词 - 结合Mongo,Cassandra谈谈NoSQL的设计和应用 1. 部署架构 2. 分片 3. 数据存储与维护 4. 读写分析 5. 数据模型 关系型数据库 VS NoSQL VS New SQL 关系型数据库:元组关系(ER),提供了一套标准的接口,SQL NoSQL: non-relational,Not-Only SQL,致力于解决关系型数据库扩展的问题 New SQL: 结合RDBMS 与NoSQL的优势(还没有看到一个清晰的概念定义) NoSQL 种类 数据模型|相关数据库|典型应用|优势|劣势| ----|:----:|----:|----:|----:| key-value|Redis|缓存|快速查询|存储数据缺乏结构化 列族|Cassandra,Hbase|分布式的文件系统,大规模的数据存储|易于分布式扩展|功能受限 document|Mongo,CouchDB||free-schema|可扩展性查 图|Neo4J|社交网络|利用图结构相关算法|不易扩展 key-value 结构 wide-column(两级映射) document mongo应用 NoSQL 主要概念 1. 不支持事务和join 2. BASE VS ACID

2020年MongoDB中文社区年终线上大会全纪录【附PPT及视频回放】

风流意气都作罢 提交于 2021-01-18 19:37:51
2021年1月8日,MongoDB中文社区联合MongoDB官方、锦木信息、Tapdata和华为开展2020年MongoDB中文社区年终大会。 (文末附本次大会PPT资料包) 点击下方链接 即可观看线上会议回放 http://www.itdks.com/Home/Act/apply?id=5533 大会要点回顾 会议开场由社区常委会委员、北京分会主席李丹给大家介绍社区的基本情况,MongoDB中文社区是由技术大会、技术培训、技术问答、原创博客、文档翻译和线上活动板块组成,是专注于MongoDB的技术交流平台。 MongoDB究竟是一个怎样的数据库? 话不多说,MongoDB究竟是一个怎样的数据库? MongoDB中文社区委员及 WiredTiger存储引擎专栏作者郭远威为我们进行整体解读: 在云数据库和NewSQL时代,该有的的核心特性MongoDB早就有了, 而且更好用! 将集群中的分片部署成复制集,实现故障自动恢复和高可用性。 原生分布式架构,通过分片Shard实现水平弹性伸缩。 3.6的版本以后MongoDB就向ACID 4个特性的事务看齐了,所以MongoDB不仅适用于分布式数据库场景,也支持传统关系型数据库应用场景。 MongoDB多种“读参考”模式,实现灵活的读写分离。 MongoDB模式自由,类JSON格式存储(最接近真实对象模型),对开发者友好。

mongodb意外断电,非正常关闭, 造成不可启动, 日志出现WT_ERROR: non-specific WiredTiger error, terminating

左心房为你撑大大i 提交于 2020-12-30 11:35:08
今天启动MongoDB, /**/mongod -f /**/mongodb.conf 今天服务器突然都断电了, 我重新启动的时候, 已经启动不成功, 去log文件夹下面, 看了一下日志: 2020-12-28T12:51:29.423+0800 I CONTROL [initandlisten] target_arch: x86_64 2020-12-28T12:51:29.423+0800 I CONTROL [initandlisten] options: { config: "/home/**/mongodb/conf/mongodb.conf", net: { port: 27017 }, processManagement: { fork: true, pidFilePath: "/home/**/mongodb/data/mongodb.pid" }, repair: true, replication: { oplogSizeMB: 512 }, storage: { dbPath: "/home/**/mongodb/data/" }, systemLog: { destination: "file", logAppend: true, path: "/home/**/mongodb/log/mongodb.log" } } 2020-12-28T12:51:29

mongodb数据库恢复 mongo数据库无法启动恢复 mongodb数据库断电数据恢复

百般思念 提交于 2020-12-21 20:27:13
数据类型 mongodb 3.x 数据容量 140 GB 故障类型 服务器断电导致WiredTiger.wt文件损坏 启动报错 Detected data files in E:\DTLFolder\MongoDB\data created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'. 2018-05-08T16:10:09.755+0800 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=18G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0), 2018-05-08T16:10:09.765+0800 E STORAGE

mongodb数据库恢复 mongo数据库无法启动恢复 mongodb数据库断电数据恢复

◇◆丶佛笑我妖孽 提交于 2020-12-21 20:26:34
数据类型 mongodb 3.x 数据容量 140 GB 故障类型 服务器断电导致WiredTiger.wt文件损坏 启动报错 Detected data files in E:\DTLFolder\MongoDB\data created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'. 2018-05-08T16:10:09.755+0800 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=18G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0), 2018-05-08T16:10:09.765+0800 E STORAGE

为什么 MongoDB 使用 B 树?

岁酱吖の 提交于 2020-12-14 04:47:17
点击上方“ 五分钟学算法 ”,选择“星标”公众号 重磅干货,第一时间送达 我们在这一系列前面的文章曾经分析过 为什么 MySQL 使用 B+ 树 ,有读者在文章下面留言,希望能出一个为什么 MongoDB 使用 B 树的对比文章,这是一个比较好的问题,MySQL 和 MongoDB 两种不同类型的数据库使用了相似却不同的数据结构,为什么 MySQL 选择使用 B+ 树而 MongoDB 使用 B 树呢? 概述 MongoDB 是一个通用的、面向文档的分布式数据库[^1],这是官方对 MongoDB 介绍。区别于传统的关系型数据库 MySQL、Oracle 和 SQL Server,MongoDB 最重要的一个特点就是 『面向文档』 ,由于数据存储方式的不同,对外提供的接口不再是被大家熟知的 SQL,所以被划分成了 NoSQL,NoSQL 是相对 SQL 而言的,很多我们耳熟能详的存储系统都被划分成了 NoSQL,例如:Redis、DynamoDB[^2] 和 Elasticsearch 等。 sql-and-nosq NoSQL 经常被理解成没有 SQL(Non-SQL)或者非关系型(Non-Relational)[^3],不过也有人将其理解成不只是 SQL(Not Only SQL)[^4],深挖这个词的含义和起源可能没有太多意义,这种二次解读很多时候都是为营销服务的

MongoDB

*爱你&永不变心* 提交于 2020-12-12 09:18:39
mongodb入门 基本介绍 MongoDB:是一个数据库 ,高性能、无模式、文档性,目前nosql中最热门的数据库,开源产品,基于c++开发。是nosql数据库中功能最丰富,最像关系数据库的。 为什么mongodb很耗内存?读和写都是基于内存的 特性 1.面向集合文档的存储:适合存储Bson(json的扩展)形式的数据 2.格式自由,数据格式不固定,生产环境下修改结构都可以不影响程序运行; 3.强大的查询语句,面向对象的查询语言,基本覆盖sql语言所有能力 4.完整的索引支持,支持查询计划 5.支持复制和自动故障转移 6.支持二进制数据及大型对象(文件)的高效存储 7.使用分片集群提升系统扩展性 8.使用内存映射存储引擎,把磁盘的IO操作转换成为内存的操作 相对关系型数据库结构 mongo实例->库->集合->文档 基础概念 数据库 集合 文档:最大16M 索引 数据类型 null {"key":null} null表示空值或者不存在该字段 布尔 {"key","true"} 布尔类型表示真或者假 32位整数 {"key":8} 存储32位整数,但再shell界面显示会被自动转成64位浮点数 64位整数 {"key":{"floatApprox":8}} 存储64位整数,floatApprox意思是使用64位浮点数近似表示一个64位整数 对象ID {"key":ObjectId(

docker容器安装mongo

戏子无情 提交于 2020-11-18 17:06:19
拉取镜像 docker pull mongo 选择一个合适的文件夹, 创建mongo目录并进入 mkdir mongo && cd mongo 创建配置文件目录 mkdir conf 创建并编辑配置文件 vim conf/mongod.conf mongod.config为mongo配置文件, 示例: storage: journal: enabled: true engine: wiredTiger #如下配置仅对 wiredTiger 引擎生效(3.0 以上版本) wiredTiger: engineConfig: # wiredTiger缓存工作集(working set)数据的内存大小,单位:GB # 此值决定了wiredTiger与mmapv1的内存模型不同,它可以限制mongod对内存的使用量,而mmapv1则不能(依赖于系统级的mmap)。默认情况下,cacheSizeGB 的值为假定当前节点只部署一个mongod实例,此值的大小为物理内存的一半;如果当前节点部署了多个mongod进程,那么需要合理配置此值。如果mongod部署在虚拟容器中(比如,lxc,cgroups,Docker)等,它将不能使用整个系统的物理内存,则需要适当调整此值。默认值为物理内存的一半。 cacheSizeGB: 1.5 systemLog: logAppend: true net: