前两天,我熬夜看完了整场国足对阵伊朗的亚洲杯八分之一决赛,最后的比分是国足0:3告负,无缘8强。结果确实不尽人意,其实每个中国球迷心里都知道,这场比赛凶多吉少,但为啥还是想看,因为一颗不死的心,因为希望有奇迹的发生。因为我心中有国足队长郑智。

想看这位真爱足球的国足老队长踢完国家队的这最后一场比赛。整场比赛的三个丢球现在再去抱怨是由于后卫的低级失误所导致的,已经变得很索然无味了。    我们要敢于承认差距,敢于接受错误与批评。

有些事儿想要成功,并不是简简单单通过花钱请一个高水平的教练就能解决的。像我们这些做技术的兄弟们也一样,做好技术是一条漫长而又艰辛的道路。怎么理解什么叫技术呢?“技”:就是我们所学习的专业知识;“术“:就是要把所学习知识到发扬出去,让更多的人受益。

今天选择给大家介绍一下MongoDB的核心Wired Tiger插件式存储引擎。也宣告我的个人公众号”我不叫那谁”正式成立。未来会与大家一起学习主流技术,后续会陆续更新MySQL,PG,MongoDB,python,go,hadoop等学习文章。(有兄弟抱怨我说,老分享MySQL和MongoDB的文章,能不能分享点PG,python等相关知识,放心各位老铁,下次就会更新!)

Wired Tiger存储引擎架构模型图如下:

MongoDB从3.0开始引入了WiredTiger存储引擎,但对于原来的MMAP V1(3.0版本默认)也有改动。

但WiredTiger无论是从锁的粒度(库级别锁提升为文档级别锁)通过MVCC实现文档级别的并发控制,允许多个客户端请求同时更新一个集合内存的多个文档,再也不需要在排队等待库级别的写锁。这在提升数据库读写性能的同时,也大大提高了系统的并发处理能力。

还有在存储方式上(WiredTiger在集合和索引级别分配文件,数据库中的所有集合和索引均存储在单独的文件中,集合或者索引删除后,对应的存储文件随即删除。方便回收磁盘空间)、还支持磁盘数据压缩也大大节约了磁盘使用成本。

所以从3.2版本起把WiredTiger作为默认的存储引擎。到此4.0版本支持多文档事务,4.2要支持分片级别的事务。

既然说到支持事务,那么就必须满足事务的ACID特性和应该有的事务隔离级别。


WiredTiger支持快照型的事务隔离级别(snapshot)

什么是事务的snapshot?这里给大家简单聊一些,其实就是事务开始或者进行操作之前对整个wired tiger存储引擎内部正在执行或者将要执行的事务进行一次快照,

保存当时整个引擎所有事务的状态,确定哪些事务是自己可见的,哪些事务是不可见。然后通过MVCC来实现事务的冲突检测。如图所示;

每个事务开始操作,都会记录它所操作的该条记录的版本号信息。事务a更新完之后,会把事务标号加1。然而这时的事务b就需要在加1的基础上去更新新的数据,来实现冲突检测。

Wired Tiger对内存的管理;

wiredTiger对内存使用会分为两大部分,一部分是内部内存,另外一部分是文件系统的缓存。如下图

内部内存可以默认值是物理内存的50%(忽略内存小于1G的情况)。那么剩下来的内存交由文件系统使用,对于wired tiger数据保存是压缩完之后的状态。所以数据从磁盘读到内存,是需要经历如下图;数据所呈现的格式是不一样的。MongoDB会把经常使用到的数据放到IC中,WiredTiger会通过文件系统缓存,自动使用其他所有的空闲内存,放在文件系统缓存里面的数据,与磁盘上的数据格式一致,可以有效减少磁盘I/O。

cache结构梳理图:

数据在内存中是以btree的结构形式进行存储,会通过wired tiger块管理器把数据先读取到IC中,然后更新它之后,页会变成脏页。最后再次调用块管理器,MongoDB内部默认60s会把脏data刷到磁盘。

以上就是我对于Wired Tiger的理解分析。

我们做技术的兄弟们,很不容易,每天面临各种各样的挑战与生活压力带给我们的心酸与痛楚。想要成功,自己的基本功还是要过硬。希望国足的失利能带给你我一些深刻的反思与未来成功的启示。


资源下载

关注公众号:数据和云(OraNews)回复关键字获取

2018DTCC , 数据库大会PPT

2018DTC,2018 DTC 大会 PPT

DBALIFE ,“DBA 的一天”海报

DBA04 ,DBA 手记4 电子书

122ARCH ,Oracle 12.2体系结构图

2018OOW ,Oracle OpenWorld 资料

产品推荐

云和恩墨Bethune Pro企业版,集监控,巡检,安全于一身,你的专属数据库实时监控和智能巡检平台,漂亮的不像实力派,你值得拥有!

催人泪下!做技术打铁还需自身硬相关推荐

  1. 关于团队|打铁还需自身硬

    一个团队需要有一个团队的精神,这个精神是一种传承,是一种在工作中,在做人做事中应该遵守的东西.而我们的团队精神是什么呢? 作为一名大学生, 如果你不多看书,看好书,多看新闻,多去和别人交流,去行走,那 ...

  2. Android Weekly - 42 : 打铁还需自身硬

    技术文章 Android Native | 内存问题的终极武器 --MTE https://juejin.cn/post/7013595058125406238 Android R 常见 GC 类型与 ...

  3. IT人不要一直做技术

    发表于:2009-03-04 09:51:44 楼主 IT人不要一直做技术 [引子]感觉这篇文章很有深意,正是我所想说的话.希望大家有借鉴. [原文] 我现在是自己做,但我此前有多年在从事软件开发工作 ...

  4. 做技术的为什么很难发财?

    ‍ ‍ 大家经常说一个观点,做技术的很难发财.你去观察统计下身边老板,好像大多数也不是做技术出身. 那为什么做技术的人很难发财呢?是不是技术不重要? 我个人觉得这个问题可以从以下几个角度分析.本文仅供 ...

  5. 【深度好文】过了30岁,做技术开发、工程师还有前途吗?

    岁月是把杀猪刀,这话确实不假:80后工程师大部分已开始奔四,90后工程师群体已人到中年,然后00后奔袭而来...在这样一个充满变化.机遇.挑战.竞争的时代,我们每个人仿佛都被卷入历史的滚滚洪流,很难独 ...

  6. 以“术”彰“道”,用匠心做技术—对话阿里云MVP刘洪峰

    云栖号资讯:[点击查看更多行业资讯] 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 简介: 一直以来,我们印象里的刘洪峰都是那个热衷布道的物联网老兵"刘老师".可 ...

  7. 电子行业求职,技术才是硬道理

    http://cv.qiaobutang.com/knowledge/articles/5194a6750cf2f49d1f1de39f 前言: 谈起电子产业(也称电子信息产业),相信每个生活在现代社 ...

  8. 校招生值得去阿里淘系做技术吗?

    在网上看到一个话题:去阿里淘系做技术怎么样?值得应届生毕业去吗? 我们邀请了两位通过校招进入淘系技术的同学来回答这一问题. 空骋:浙大计算机专业硕士毕业,图形学算法方向,2018校招入职淘系技术,至今 ...

  9. 以“术”彰“道”,用匠心做技术—对话阿里云 MVP刘洪峰

    云栖号资讯:[点击查看更多行业资讯] 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 简介: 一直以来,我们印象里的刘洪峰都是那个热衷布道的物联网老兵"刘老师".可 ...

最新文章

  1. Mybatis中Oracle和Mysql的Count字段问题
  2. 配置BIND 9 DNS Views 的原理和需求
  3. python中remove用法_Python 列表 remove() 使用方法及示例
  4. 怎么判断日出时间早晚_早晚都要擦精华液?问了美容师,发现我弄错了!效果差还浪费...
  5. 概率论-4.1 大数定律
  6. 虚拟云服务器有哪些,虚拟云主机和服务器有什么区别
  7. display:none和visiblity:hidden区别
  8. 一种适用于FDD+TDD基站天线阵列的多天线共存方式
  9. 小米平板1android驱动,小米平板3usb驱动
  10. meshlab调整平行光源
  11. BaseAdataer基本设配器
  12. 什么是CAD的模型和布局?
  13. Cousera吴恩达机器学习week5笔记
  14. 【产品管理】产品管理四要素
  15. 文件服务器的配置实训报告,《服务器配置与调试实训报告》要点
  16. 什么是项目管理?范围、时间、成本、质量
  17. 既快又准并且低开销,一作亲解 MICRO 2021论文:一种自动化功耗模拟架构
  18. 【Bluetooth|蓝牙开发】三、一篇文章,带你总览蓝牙协议
  19. 信息安全工程师报考完毕!
  20. ubuntu 更新 apt 源

热门文章

  1. 第三方开源项目名称_如何为您的开源项目选择品牌名称
  2. 牛客网 [编程题]餐馆
  3. Linux强行取消挂载
  4. 四旋翼双环PID控制
  5. java 类文件分析_分析Java .class文件
  6. excel 字符串拼接_Python|处理字符串
  7. 单链表实现一元多项式相加_python面试系列 01如何实现单链表的逆序
  8. php 变量源码,PHP源码中变量存储方式
  9. java 不加锁_在java中,在高并发的时候,不加锁的时候。
  10. java 双声道音频_Android 播放音频如何实现双声道效果