第一章 (二十一)——Sharding 分片模式.pdfVIP

第一章 (二十一)——Sharding 分片模式.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(⼆⼗⼀)——Sharding 分⽚模式 云计算设计模式 (⼆⼗⼀)——Sharding 分⽚模式 将⼀个数据存储到⼀组⽔平分区或碎⽚。存储和访问⼤量数据时,这个模式可以提⾼ 可 展性。 背景和问题 由⼀个单⼀的服务器托管的数据存储区可能会受到以下限制: 存储空间。⼀种数据存储为⼀个⼤型云应⽤可以预期含有数据量巨⼤,可以随 着时间的推移显著增加。服务器通常提供的磁盘存储仅是有限的,但它可以是 能与较⼤的取代现有的磁盘,或者添加另外的磁盘的机器作为数据量的增加。 然⽽,由此,不能够容易地增加⼀个给定的服务器上的存储容量的系统最终将 达到⼀个硬限制。 计算资源。云应⽤程序可能需要⽀持⼤量并发⽤户,每⼀个运⾏检索的数据存 储信息的查询。⼀个单⼀的服务器托管的数据存储可能⽆法提供所需的计算能 ⼒,以⽀持该负载,从⽽延长反应时间,为⽤户和故障频作为应⽤程序试图存 储和检索数据超时。它可能会增加存储器或升级的处理器,但是当其不能够提 ⾼计算资源的任何进⼀步的系统将达到极限。 ⽹络带宽。最后,在单个服务器上运⾏的数据存储区的性能是通过在该服务器 可以接收请求并发送回复率的约束。这是可能的⽹络流量的量可能会超过⽤于 连接到该服务器,从⽽导致失败的请求的⽹络的容量。 地理。可能需要为存储由特定的⽤户在同⼀个区域中产⽣的那些⽤户为合法, 合规性,或性能原因,数据,或减少数据访问延滞。如果⽤户在不同的国家或 地区的分散,也未必能够存储整个数据为在⼀个单⼀的数据存储区中的应⽤。 垂直缩放通过添加更多的磁盘容量,处理能⼒,内存和⽹络连接可能会推迟⼀些这些 限制的效果,但它很可能是只是⼀个临时的解决⽅案。能够⽀持⼤量⽤户和⼤量数据 的商业云应⽤程序必须能够 展⼏乎⽆限,所以垂直缩放不⼀定是最好的解决⽅案。 解决⽅案 划分数据存储到⽔平分区或碎⽚。每个碎⽚都有相同的模式,但保存的数据其独特的 ⼦集。甲碎⽚是在⾃⼰的权利 (它可以包含许多不同类型的实体的数据)的数据存储 器,⽤作存储节点的服务器上运⾏。 这种模式具有以下优点: 您可 展系统,通过添加额外的存储节点上运⾏的进⼀步碎⽚。 系统可以使⽤现成的商品硬件,⽽不是专门的 (和昂贵)的计算机为每个存储 节点。 您可以通过平衡跨越碎⽚的⼯作量减少争⽤和改进的性能。 在云中,碎⽚可以位于物理上接近将要访问数据的⽤户。 何时将⼀个数据存储成碎⽚,决定哪些数据应该被放置在每个碎⽚。甲碎⽚通常包含 倒在数据中的⼀个或多个属性所确定的指定范围内的物品。这些属性形成的分⽚密钥 (有时也被称为分区键)。分⽚的关键应该是静态的。它不应该根据可能发⽣变化的 数据。 分⽚⾝体组织的数据。何时⼀个应⽤程序存储和检索数据,该分⽚的逻辑指⽰应⽤到 相应的碎⽚。此拆分逻辑可在应⽤程序中被实现为数据访问代码的⼀部分,或者它可 以由数据存储系统中实现,如果它透明地⽀持分⽚。 抽象的拆分逻辑的数据的物理位置提供了⼀个⾼层次的控制在其上的碎⽚包含的数 据,并且使数据分⽚之间迁移,⽽再加⼯的应⽤程序的业务逻辑应该需要在碎⽚的数 据后⾯将要引⼊的 (例如,如果碎⽚变得不平衡)。的折衷是在确定的每个数据项的 位置,因为它被检索所需的附加数据存取的开销。 为了确保最佳的性能和可 展性,分裂的数据的⽅式,适合的查询类型的应⽤程序执 ⾏是重要的。在许多情况下,这是不可能的拆分计划将完全符合每个查询的要求。例 如,在⼀个多⽤户系统中的应⽤,可能需要通过使⽤承租者ID来检索租户数据,但它 也可能需要基于其它属性这个数据查找,如承租⼈的名称或位置。为了处理这些情 况,实⾏分⽚策略,即⽀持最常⽤的查询执⾏的⼀个⼦库的关键。 如果查询通过使⽤属性值的组合来定期检索数据,这可能是可以定义通过将属性⼀起 的复合分⽚键。另外,使⽤模式,如索引表,以提供快速的查找到未覆盖的碎⽚关键 基础属性数据。 分⽚策略 选择所述分⽚密钥,并决定如何跨碎⽚分发数据时的三种策略是常⽤的。注意,并不 需要成为碎⽚和承载它们 - 在单个服务器可以承载多个分块中的服务器之间的⼀对⼀ 的对应关系。这些战略包括: 查找策略。在上述策略中,分⽚的逻辑实现了⼀个图,路由对数据的请求到包 含碎⽚,通过使⽤分⽚密钥数据。在⼀个多⽤户应⽤将租户的所有数据可能通 过使⽤租户 ID 作为分⽚密钥⼀起存储在⼀个

文档评论(0)

xuefei111 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档