当前位置: 首页 > news >正文

做瞹瞹小视频网站河南建筑材料信息网

做瞹瞹小视频网站,河南建筑材料信息网,有什么网站专做买生活污水设备,做网站作品是静态B-tree 目前支撑着数据库产业的半壁江山。 50 年来不变而且人们还没有改变它的意向 鉴定一个算法的优劣#xff0c;有一个学派叫 IO复杂度分析 #xff0c;简单推演真假便知。 下面就用此法分析下 B-tree(traditional b-tree) 的 IO 复杂度#xff0c;对读、写 IO 一目了… B-tree 目前支撑着数据库产业的半壁江山。 50 年来不变而且人们还没有改变它的意向 鉴定一个算法的优劣有一个学派叫 IO复杂度分析 简单推演真假便知。 下面就用此法分析下 B-tree(traditional b-tree) 的 IO 复杂度对读、写 IO 一目了然真正明白读为什么快写为什么慢如何优化。 为了可以愉快的阅读本文不会做任何公式推导复杂度分析怎么可能没有公式呢 读IO分析 这里有一个 3-level 的 B-tree每个方块代表一个 page数字代表 page ID。 上图 B-tree 结构是 内存 的一个表现形式如果我们要读取的记录在 leaf-8上read-path 如蓝色箭头所示: root-9 – branch-6 – leaf-8 根-9 -分支-6 -叶-8 下图是 B-tree 在 磁盘 上的存储形式meta page 是起点: 这样读取的随机 IO (假设内存里没有 page 缓存且 page 存储是随机的)总数就是(蓝色箭头): 1(meta-10)IO 1(root-9)IO 1(branch-6)IO 1(leaf-8)IO 4次 IO这里忽略一直缓存的 meta 和 root就是 2  次随机 IO。 如果磁盘 seek 是 1ms读取延迟就是 2ms 。 通过推演就会发现B-tree 是一种读优化(Read-Optimized)的数据结构无论 LSM-tree 还是 Fractal-tree 等在读上只能比它慢因为读放大(Read Amplification)问题。 存储引擎算法可谓日新月异但是大部分都是在跟写优化(Write-Optimized)做斗争那怕是一个常数项的优化那就是突破自从 Fractal-tree 突破后再无来者了 写IO分析 现在写一条记录到 leaf-8。 可以发现每次写都需要先读取一遍如上图蓝色路径所示。 假设这次写入导致 root, branch 都发生了变化这种 in-place 的更新反映到磁盘上就是 基本是 2  次读 IO和写 2  次写 IOWAL fsync粗略为 4  次随机 IO。 通过分析发现B-tree 对写操作不太友好随机 IO 次数较多而且 in-place 更新必须增加一个 page 级的 WAL 保证失败回滚简直是要命。 Write-Optimized B-tree 写优化B树 说到写优化在机械盘的年代大家的方向基本是把随机 IO 转换为顺序 IO充分发挥磁盘的机械优势于是出现一种 Append-only B-tree 更新生成新的 page(蓝色) page 回写磁盘时 append only 到文件末尾 无需 page WAL数据不 overwrite有写放大(Write Amplification)问题需要做空洞重利用机制 Append-only B-tree 节省了回写时的 2 次随机 IO转换为常数级(constant)的1次顺序 IO写性能大幅提升总结起来就是 随机变顺序空间换时间 LSM-tree, Fractal-tree 等写优化算法的核心思想也是这个只不过其实现机制不同。 LSM-trees lsm树 随着 LevelDB 的问世LSM-tree 逐渐被大家所熟知。 LSM-tree 更像一种思想模糊了 B-tree 里 tree 的严肃性通过文件组织成一个更加松散的 tree。 rockdb应用 写入 先写入内存的 C0 后台线程根据规则(Leveled/Sized)进行 mergeC0 – C1, C1 – C2 … CL 写入 C0 即可返回IO 放到后台的 Merge 过程 每次 Merge 是硬伤动作大就抖动作小性能不好每次 Merge 的数据流向不明确 写放大问题 读取 读取 C0 读取 C1 .. CL 读取 C1 . CL 合并记录返回 读放大问题 Fractal-tree 分形树 终于发展到了“终极”优化(目前最先进的索引算法本篇文章参考的是T okuDB 的 Contributor的文章可能有点武断个人想法没有最好的算法只有最适合的算法有时遍历也是最好的方案 )Fractal-tree。 它是在 Append-only B-tree 的基础上对每个 branch 节点增加了一个 message buffer 作为缓冲可以看做是 LSM-tree 和 Append-only B-tree 完美合体。 相对于 LSM-tree 它的优势非常明显: Merge 更加有序数据流向非常分明消除了 Merge 的抖动问题大家一直寻找的 compaction 防抖方案一直存在的 这个高科技目前只有 TokuDB  在使用这个算法可以开篇新介这里不做累述感兴趣的可以参考原型实现 nessDB 。
http://www.hkea.cn/news/14433677/

相关文章:

  • wordpress建立多站点wordpress主题付费
  • 德州极速网站建设百家号有没有什么网站可以直接在网上做试题并且可以给你判出来
  • 网站建设手机端pc端分开semiconductor是什么意思
  • 模拟网站平台怎么做建材类网站建设需要的资料
  • 餐饮网站建设的目的网站建设内容与实现功能
  • 汕头建网站教育网站开发需求说明书
  • 上海网站搜索引擎优化开车网址来一个
  • h5做的分销网站可以自己设计装修的免费软件
  • 做外链音乐网站建筑设计公司资质
  • 有没有免费做网站的网站qq在线代码
  • 河口企业网站开发公司做网站会出现哪些问题
  • 百度站长网站提交提升网页优化排名
  • 网站开发团队 人员优设网app安卓下载
  • 网站建设互诺科技移动互联网站开发与维护
  • 顺企网杭州网站建设买外贸服装去哪个网站
  • 亦庄网站建设公司东莞市住建局官网
  • 网站上线后如何换模版高端网站开发教程
  • 做网站运营有前途吗网站建设目的和意义
  • 网站建设 风险防控上海建智建设工程咨询
  • 纪检部门网站举报建设wordpress开启全站ssl
  • 做翻页电子书的网站水果网站策划书
  • 团购网站建设怎么样建设网站网站建站
  • 泉州网站seo公司手机优化不到100怎么办
  • 如何选择一家好的网站建设公司网络营销方式的优缺点
  • 益阳网站建设网站砚山县住房和城乡建设局网站
  • 给个免费的网站好人有好报wordpress 图片属性
  • 西安网站网页设计郑州启凡网络科技公司
  • 在网站上怎么做招聘信息绵阳房产网
  • 网站空间免费新品发布会流程策划方案
  • 网站前端设计要做什么的wordpress ajax评论