当前位置: 首页 > news >正文 泊头哪里建网站呢龙岩网站设计找哪家公司 news 2025/11/5 17:51:42 泊头哪里建网站呢,龙岩网站设计找哪家公司,最近的十大新闻,dede网站模版在上篇内容中#xff0c;老夫着重讲了高性能图存储系统的特点#xff0c;咱们继续往下讲重点——高性能存储架构的设计思路#xff01;#xff01; 2.高性能存储架构设计思路 首先呢#xff0c;存储架构以及核心数据结构的设计思路通常围绕如下4个维度来进行#xff1a…在上篇内容中老夫着重讲了高性能图存储系统的特点咱们继续往下讲重点——高性能存储架构的设计思路 2.高性能存储架构设计思路 首先呢存储架构以及核心数据结构的设计思路通常围绕如下4个维度来进行 一是外存与内存使用占比角色分配及分配比例 ·是否利用缓存如何优化缓存 ·是否进行数据或记录的排序如何排序 ·是否允许数据或记录的更改可变性以及如何更改。 1内外存占比 100%使用外存的数据库是极为罕见的甚至可以说和高性能数据库关系不大。同样地100%使用内存的数据库也非常罕见即便存在“内存数据库”这一门类通常作为关系型数据库的一个子类或键值库数据也会持久化在外存之上原因不外乎是内存的“易失性”。 在绝大多数现代数据库的架构设计中都会利用外存与内存中的数据结构特性来实现某种存储加速。除了缓存设计、排序与否和数据可变性之外对于图数据库而言因为其存在特殊的数据空间网络拓扑结构所以内存用来存放一些关键数据如元数据、映射数据、临时算法数据、索引、需要实时计算的元数据之属性类数据等外存用来存放不需要实时计算的海量剩余数据。这种内、外存按照一定比例来搭配的方式通常会实现性能较大幅度的提升。 内外存占比并没有固定的方式。在很多传统的IT架构中服务器的内存资源都占比较低并且这种情况在云化的过程中愈演愈烈不得不说是一种倒退——在数据库的应用场景中内存的占比不应当低于外存的1/812.5%也就是说如果有1TB的外存至少应该有128GB的内存。而在高性能计算场景中内外存占比可以达到1/425%以上如果有2TB的外存持久化层数据内存至少可以是512GB。在这一点上很多私有云部署的场景由于无法分配大内存也无法管理大内存的虚拟机因此不得不说这种云虚拟化本身是与高性能计算背道而驰的。 需要注意的是为了磁盘访问而优化的数据库数据结构和代码逻辑虽然可以直接在固态硬盘上运行但是存在大量的优化和调整空间这些细节也是数据库架构设计最为繁杂之处。如果我们再把持久化内存的硬件方案引入就会让问题更复杂。很显然一套代码逻辑、一套数据结构要泛化并适配到全部的硬件架构之上并且都能获得最佳的性能是不太现实的。在实际的数据库架构设计中我们总在不断地取舍平衡包括面向底层硬件而做出相应的适配。我们认为那种忽略底层硬件而一味相信硬件透明的数据库设计方案是不可行的——尽管作为数据库下层的文件系统与操作系统已经做了很多抽象、适配的工作然而高性能数据库依然需要面向具体的硬件环境进行精准的数据结构、架构及性能调优。 2缓存 存的目的本质上是为了降低I/O数量提高系统吞吐率。几乎所有的落盘数据结构都会利用缓存来加速帮助更快速地定位、读取或回写。另外缓存的设计与数据可变性以及排序与否经常需要通盘考虑因为是否允许数据被更改以及数据是否需要排序后存储直接影响了缓存的设计逻辑与实现反之亦然。 图数据库的存储引擎对于缓存的利用似乎较其他类型的数据库更多这里不妨罗列一下可能用到缓存的情况数据写入、数据读出、元数据索引、全文搜索索引、近邻数据、中间操作结果以及高并发、多版本维护场景等。 需要注意的是无论是机械硬盘还是固态硬盘读取与写入的最小单位是块block。机械硬盘通常在硬件层面用扇区sector表示如下图所示但是在操作系统层面和固态硬盘一样统一用块表示一个块通常可设定为固定大小例如4KB可能包含多个扇区。在Linux操作系统中下面两个命令可以方便地判断block与sector的大小 fdisk - 1 | grep Sector size blockdev - getbsz/dev/sda 图3 机械硬盘的存储部件示意图 在机械硬盘上活动部件的寻址与磁盘转动时间占到了每次操作的90%以上而在固态硬盘及持久化内存、动态内存中由于不存在这个物理部件移动而消耗时间的环节也因此指数级地缩短了每次操作的时耗如图4所示时间消耗从每次数毫秒降低到了几十到几百微秒约40倍以上的性能提升。 图4机械硬盘与固态硬盘访问时延分解对比示意图 在固态硬盘中最小颗粒度的存储单位是Cell其次是String、Array、Page、Block、Plane、Die、Solid State DriveSSD最后的SSD就是我们熟知的固态硬盘图5。而可编程写、可读取的最小单位是Page页最小可擦除erase的存储单位是Block块每个Block通常由64512个Pages构成。 图5固态硬盘的存储单元间的层层嵌套关系示意图 无论是机械硬盘还是固态硬盘读写的单位不是操作系统、文件系统与数据库存储逻辑层面所需要存储的最细颗粒度的数据记录——比特甚至都不是字节或者多个字节所构成的字符、整数、浮点数或字符串。在硬件层面这么设计是为了提高存储效率。举个例子一个人从家里到公司的距离是20km打车需要1小时他需要从家里带10本书到公司可以一次性运送10本书去公司也可以多次运送从运输成本、时间成本上综合考量显然是一次性运送最划算。同样地在面对存储媒介的时候缓存设计就是这种“一次性”批量运送存取技术手段。类似地在分布式架构设计中如果每个操作都涉及网络请求与传输过程合理地合并多个操作后再统一传输不失为一种优化方案。 下图示意的是缓存与物理I/O之间的“反比”关系理论上缓存越多I/O越低但实际上缓存量到达C点后对于I/O降低性能提升的效果就不明显了。这个C点就是我们在设计存储缓存时的一个“高规格”目标而B或A则是低成本投入时的“中低规格”目标。 图6缓存与I/O之间的“反比”关系 总之缓存是一个贯穿整个计算机硬件和软件发展历程的核心技术。即便是在最极端的情况下比如在数据库或应用软件设计中没有主动使用任何缓存技术底层的文件系统、操作系统、像硬盘、CPU等硬件依然会通过缓存来实现存取与计算加速。缓存的出现让系统架构设计变得更为复杂因为系统有更多的组件需要管理例如保持更新、提升命中率、清空重置等。 3排序与否 数据排序是一个随着数据记录数量增长而越来越常见的存储优化技术。是否排序取决于具体的业务场景。如果是对插入数据进行排序那么在连续存储类型的数据结构中可以直接使用地址下标来以最低延迟访问一条记录或者快速读取一段地址空间内存放的数据记录。再结合缓存的加速策略连续存放的数据记录可以更充分、有效地利用缓存技术但如果中间需要插入或删除一条记录操作成本会比较昂贵。 在之前的内容中老夫就介绍过“近邻无索引”存储数据结构可以以O(1)的时间复杂度来从任意一个顶点去定位它的近邻即一度以内的邻居顶点。这种数据结构设计本身的存取效率已经高于索引。在不考虑并发锁等复杂的情况下增量写入、读取、更新效率都可以做到O(1)但是删除的复杂度会更大。因为像数组这类连续存储的数据结构从中间位置删除记录会导致整个后序数据记录移位。这个时候如果数据记录可以不按照Key或ID排序则可以考虑在定位要被删除的数据记录后与末尾的记录置换完成置换后再删除尾部记录。这个操作称为接入-删除swtich-on-delete操作其复杂度依然可以等同于O(1)实际复杂度是最低延迟的O(1)的710倍操作示意图如图7所示。 图7接入— 删除操作 非连续存放的特点是可以把数据结构设计为删除单个记录效率可能较高如O(log N)通常这一数值不大于5但是连续读取的多条记录的范围查询成本则很高例如读取K条记录的时耗为KO(log N)。 范围查询在很多应用场景中被大量使用但它似乎与非排序存储方式相冲突。在之前的内容中我们介绍过LSMT这里介绍一种基于LSMT优化的WiscKeyWisc是University ofWisconsin-Madison的缩写Key指的是一种Key-Value Store的存储优化方案数据结构可以兼顾写的效率与非排序存储的空间利用优势。 首先针对磁盘而言LSMT的特点如下 ·批量、顺序写入 ·顺序访问高通量顺序访问的效率是随机访问的数以百倍计 ·读写放大效应并没有面向SSD优化记录读写都会被放大很多倍。 其次固态硬盘的特点如下 ·随机读性能高 ·并行操作能力。 WiskKey的设计核心理念是键值分离仅键需要排序它包含如下几个面向固态硬盘的优化策略图8、图9 图8 LSMT与WiscKey 图9WiscKey中LSMT与vLog分离 ·拆分排序与GC垃圾回收 ·利用固态硬盘在范围查询时并发的能力 ·在线、轻量级GC·最小化I/O放大 ·崩溃一致性。 经过WiskKey优化的固态硬盘上的顺序、随机访问性能如下图所示。可以看到当访问的数据大小在64K256KB范围内的时候32线程并发访问的吞吐率已经和串行访问不相上下了。 图10 ”WiscKey串行、单线程随机、32线程随机范围查询性能比较 WiscKey是基于LevelDB的核心代码优化的经过优化后WiscKey在随机访问和顺序访问上都有一定程度的性能提升特别是在键所对应值的占用空间大于4KB之后下图11。 当然有多少实际业务中的键值需要4KB以上的存储空间是个需要具体探讨的问题。以老夫的经验实际键值普遍在1KB以内。这个时候WiscKey与常规的LSMT的性能相差无几。 图11基于对LevelDB代码优化的WiscKey与LevelDB查询性能比较 4数据可变与否 数据是否可变mutability指的是数据记录的更新采用追加模式append-only还是允许本地更改。不同的模式适用于不同的场景也因此而衍化出了不同的“加速”模式。 例如最早在Linux内核设计中实现的Copy-on-Write模式COW即不更改原数据采用先拷贝再更改的方式。LSMT与B-Tree之间的区别也通常被归纳为不可变与就地更改两种缓存加速模式的区别。 COW所采用的一个技巧被称为无锁式记录更新如图3-12所示。具体操作步骤如下 图12无锁式更新变量记录 1定位变量记录A内容为X 2拷贝A至A′非深度拷贝指针级拷贝创建内容为Y 3在一个原子级操作compare-and-swap中A指向Y切断A′与该变量关联关系之前的X记录被GC垃圾回收。 把上面的操作放在一颗二叉树中也是一样的逻辑COW的核心在于尽可能地避免深度拷贝deep-copy使用指针来通过轻量级的操作实现浅层拷贝copy-by-reference并只在必要的时候再进行深度拷贝以及精准的记录更新操作。 在Linux操作系统的内核中当父进程需要衍生子进程时就使用了这种COW的技术节省了内存与CPU时钟的消耗。 B-Tree类型的数据结构虽然实现了就地更新记录in-place update的功能但是带来了写放大write-amplification的问题以及处理锁和并发时的设计复杂度较高。Bw-Tree由此应运而生它的全称是Buzzword-Tree是一种内存级、可变页大小、高并发、无锁数据结构。 Bw-Tree有4个核心设计图13 ·基点base nodes和变化链delta chains。 ·映射关系表。 ·合并与垃圾回收。 ·结构化更改SMO为了实现无锁化。 确切地说这4个设计都是为了实现无锁式高并发当然代价就是使用了更多的内存空间。其示范意义在于高性能系统的设计思路无外乎以下几点 1使用和适配更快的存储设备包括内存、包括分级存储 2尽可能实现更高的并发配合数据结构支持 图13Bw-Tree的内部逻辑关系 3避免使用过多的、颗粒度太粗的锁 4避免频繁地拷贝数据等操作数据利用率太低 5贴近底层硬件避免过多的虚拟化和过多的中间环节。 老夫在上一篇文章中就说过高性能存储架构设计思路要聊的东西非常多、非常细。今儿还没聊完下一篇咱们接着叙——高性能图计算架构 今天先这样已经洋洋洒洒快五千字了大家先吸收一下明天或后天继续码字。 · END · 文/Ricky - HPC高性能计算与存储专家、大数据专家、数据库专家及学者 文章转载自: http://www.morning.rnngz.cn.gov.cn.rnngz.cn http://www.morning.zlgr.cn.gov.cn.zlgr.cn http://www.morning.kghss.cn.gov.cn.kghss.cn http://www.morning.ykmkz.cn.gov.cn.ykmkz.cn http://www.morning.rhph.cn.gov.cn.rhph.cn http://www.morning.ynwdk.cn.gov.cn.ynwdk.cn http://www.morning.dbfj.cn.gov.cn.dbfj.cn http://www.morning.lxcwh.cn.gov.cn.lxcwh.cn http://www.morning.lgznf.cn.gov.cn.lgznf.cn http://www.morning.hrqfl.cn.gov.cn.hrqfl.cn http://www.morning.kgxyd.cn.gov.cn.kgxyd.cn http://www.morning.dpjtn.cn.gov.cn.dpjtn.cn http://www.morning.lzqtn.cn.gov.cn.lzqtn.cn http://www.morning.yqpck.cn.gov.cn.yqpck.cn http://www.morning.tbwsl.cn.gov.cn.tbwsl.cn http://www.morning.skkln.cn.gov.cn.skkln.cn http://www.morning.ldpjm.cn.gov.cn.ldpjm.cn http://www.morning.qlckc.cn.gov.cn.qlckc.cn http://www.morning.xkpjl.cn.gov.cn.xkpjl.cn http://www.morning.rcgzg.cn.gov.cn.rcgzg.cn http://www.morning.ctbr.cn.gov.cn.ctbr.cn http://www.morning.jzlfq.cn.gov.cn.jzlfq.cn http://www.morning.qmmfr.cn.gov.cn.qmmfr.cn http://www.morning.syqtt.cn.gov.cn.syqtt.cn http://www.morning.ghslr.cn.gov.cn.ghslr.cn http://www.morning.mnwsy.cn.gov.cn.mnwsy.cn http://www.morning.yrmpr.cn.gov.cn.yrmpr.cn http://www.morning.dmwjl.cn.gov.cn.dmwjl.cn http://www.morning.lbgsh.cn.gov.cn.lbgsh.cn http://www.morning.fphbz.cn.gov.cn.fphbz.cn http://www.morning.jkbqs.cn.gov.cn.jkbqs.cn http://www.morning.zfrs.cn.gov.cn.zfrs.cn http://www.morning.tndhm.cn.gov.cn.tndhm.cn http://www.morning.fpczq.cn.gov.cn.fpczq.cn http://www.morning.rnpnn.cn.gov.cn.rnpnn.cn http://www.morning.mnccq.cn.gov.cn.mnccq.cn http://www.morning.zqbrw.cn.gov.cn.zqbrw.cn http://www.morning.tkryt.cn.gov.cn.tkryt.cn http://www.morning.mpxbl.cn.gov.cn.mpxbl.cn http://www.morning.bdgb.cn.gov.cn.bdgb.cn http://www.morning.hxbjt.cn.gov.cn.hxbjt.cn http://www.morning.mmosan.com.gov.cn.mmosan.com http://www.morning.fxqjz.cn.gov.cn.fxqjz.cn http://www.morning.lrgfd.cn.gov.cn.lrgfd.cn http://www.morning.qyllw.cn.gov.cn.qyllw.cn http://www.morning.hsdhr.cn.gov.cn.hsdhr.cn http://www.morning.jbpodhb.cn.gov.cn.jbpodhb.cn http://www.morning.dmzzt.cn.gov.cn.dmzzt.cn http://www.morning.oioini.com.gov.cn.oioini.com http://www.morning.wjtwn.cn.gov.cn.wjtwn.cn http://www.morning.kmqjx.cn.gov.cn.kmqjx.cn http://www.morning.bbmx.cn.gov.cn.bbmx.cn http://www.morning.pskjm.cn.gov.cn.pskjm.cn http://www.morning.fxygn.cn.gov.cn.fxygn.cn http://www.morning.jbztm.cn.gov.cn.jbztm.cn http://www.morning.gklxm.cn.gov.cn.gklxm.cn http://www.morning.zckhn.cn.gov.cn.zckhn.cn http://www.morning.zxqxx.cn.gov.cn.zxqxx.cn http://www.morning.wfkbk.cn.gov.cn.wfkbk.cn http://www.morning.jksgy.cn.gov.cn.jksgy.cn http://www.morning.qkwxp.cn.gov.cn.qkwxp.cn http://www.morning.qblcm.cn.gov.cn.qblcm.cn http://www.morning.nfbkz.cn.gov.cn.nfbkz.cn http://www.morning.tkxyx.cn.gov.cn.tkxyx.cn http://www.morning.mjqms.cn.gov.cn.mjqms.cn http://www.morning.rknjx.cn.gov.cn.rknjx.cn http://www.morning.ymjrg.cn.gov.cn.ymjrg.cn http://www.morning.xbnkm.cn.gov.cn.xbnkm.cn http://www.morning.xkzr.cn.gov.cn.xkzr.cn http://www.morning.mnwmj.cn.gov.cn.mnwmj.cn http://www.morning.bzgpj.cn.gov.cn.bzgpj.cn http://www.morning.bgygx.cn.gov.cn.bgygx.cn http://www.morning.nspzy.cn.gov.cn.nspzy.cn http://www.morning.gybnk.cn.gov.cn.gybnk.cn http://www.morning.dtnjr.cn.gov.cn.dtnjr.cn http://www.morning.nbgfk.cn.gov.cn.nbgfk.cn http://www.morning.jsphr.cn.gov.cn.jsphr.cn http://www.morning.znqztgc.cn.gov.cn.znqztgc.cn http://www.morning.jxlnr.cn.gov.cn.jxlnr.cn http://www.morning.dnbhd.cn.gov.cn.dnbhd.cn 查看全文 http://www.tj-hxxt.cn/news/280048.html 相关文章: 淮南市城乡建设档案馆网站网站怎么做付费项目 产品展示网站源码wordpress 同步公众号 最简单网站开发软件网站的开发流程分哪几步 阿里云网站部署手机app怎么开发的 一个网站可以做几级链接happytug wordpress 做网站第一步wordpress自动缩略图插件 网站备案和不备案的区别wordpress 缓存加速 国外做鞋子的网站吗建设设计网站公司网站 云浮营销建站公司省企联网站建设要求 网站做系统叫什么怎么做一个网站多少钱 枝江市住房和城乡建设局网站网站建设费可以一次性冲费用吗 网站建设的会计核算org是国外的网站吗 物流手机网站模板厦门排名推广 单位做网站的目的WordPress仿制 电商网站建设功能需求wordpress相关文章代码 智能优化网站wordpress 无插件主题 做的比较唯美的网站有哪些网站建设通用代码 商丘哪里有网站建设建设厅安全员c证 wordpress站点标题删除成都有做网站的公司吗 个人做网站的注意事项推广公司好做吗 校园网站建设教程wordpress自定义分类 建材 网站 模板亿图在线制作流程图 冒险岛2做乐谱网站我的个人网站 的网页设计 莆田网站制作公司做外贸网站注意 横店八上信息书做网站的内容昊杰南宫网站建设 yy头像在线制作网站左右结构网站 阿里云公司网站制作智能建站价格 wordpress 网站制作做冻品海鲜比较大的网站有哪些 厦门礼品网站商城制作案例wordpress 快速发布 外贸网站建设升上去html制作个人简历代码案例