码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 分布式复制系统设计-总结


    复制或多副本技术的目的:

    • 高可用

      即使某台机器(或多台机器,或整个IDC)故障,系统也能保持正常运行

    • 连接断开与容错

      允许应用程序在网络中断时继续工作

    • 低延迟

      将数据放置在距离用户较近地,以更快交互

    • 可扩展性
      采用多副本,大幅提高系统的读吞吐量

    多台机器保留多份相同的数据副本,需仔细考虑并发和所有可能出错并处理。至少,需处理好:

    • 节点不可用
    • 网络中断

    这里甚至不考虑更隐蔽的失效场景,如由于bug导致的无提示的数据损坏。

    多副本方案:

    • 主从复制

      所有客户端将写都发到单主节点,该节点将数据更改事件发送到其他副本(从节点)。每个副本都能接收读请求,但内容可能过期

    • 多主复制
      客户端发送每个写入到几个领导节点之一,任一都能接受写。领导者将数据更改事件流发送给彼此及所有跟随者节点

    • 无主复制
      客户端发送每个写到几个节点,并从多个节点并行读取,以检测和纠正具有陈旧数据的节点

    每种方法都有优、缺点。单主复制很流行,因为易理解,无需担心冲突。出现故障节点,网络中断和延迟峰值时,多领导者、无领导者复制更稳健,但以更难推理并仅提供非常弱的一致性保证为代价。

    复制可同步、异步,这在故障时对系统有深远影响。尽管系统平稳时异步复制很快,但复制滞后增加和服务器故障时要弄清楚会发生啥。若某领导者失败,且你提升了一个异步更新的追随者成为新的领导者,则最近提交的数据可能丢失。

    一些可能由复制滞后引起的奇怪效应,也讨论了一些有助于决定应用程序在复制滞后时的行为的一致性模型:

    • 写后读
      用户应总看到自己提交的数据。
    • 单调读
      用户在某时间点看到数据后,不该在某更早时间点看到数据。
    • 一致前缀读
      用户应将数据视为具有因果意义的状态:如按正确顺序查看问题及其答复。

    最后讨论多领导者、无领导者复制固有并发问题:因为他们允许多个写并发,这可能冲突。我们研究了一个DB可能使用的算法来确定:

    • 一个操作是否发生在另一个操作之前
    • 或它们是否同时发生

    通过合并并发更新来解决冲突。

  • 相关阅读:
    Python实现的直线段生成算法和圆弧生成算法
    c语言:sprintf() 函数用法示例
    基于卫星高度计海面高度异常资料获取潮汐调和常数方法及应用matlab代码
    DarkNet网络结构
    有没有免费将XPS转Word的方法?
    金仓数据库 KingbaseES 插件identity_pwdexp
    Linux shell编程学习笔记5:变量命名规则、变量类型、使用变量时要注意的事项
    【从零开始的Java开发】2-10-3 JSP入门:JSP介绍、语法和页面重用
    手持振弦采集仪VH03各种接口使用说明
    【Datawhale组队学习:Sora原理与技术实战】使用KAN-TTS合成女生沪语音频
  • 原文地址:https://blog.csdn.net/qq_33589510/article/details/126449999
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号