当前位置:网站首页>多主复制的适用场景(2)-需离线操作的客户端和协作编辑
多主复制的适用场景(2)-需离线操作的客户端和协作编辑
2022-07-31 15:27:00 【华为云】
3.1.2 需离线操作的客户端
应用在断网后仍需继续工作。
如手机、PC和其他设备上的日历应用。无论设备当前是否连网,都需随时查看:
- 当前会议日程(读请求)
- 添加新会议(写请求)
离线状态下进行的任何更改,会在设备下次上线时,与服务器和其他设备同步。
此时,每个设备都有一个充当M的本地DB(接受写请求),并在所有设备之间采用异步方式同步这些多M上的副本,同步滞后可能是几h或数天,具体时间取决于设备何时再联网。
架构上,这种设置类似IDC之间的多主复制,只不过每个设备都是个“IDC”,而它们之间的网络连接极不可靠。从日历同步功能的这些破烂实现也能看出,多主可以得到结果,但中间依旧很多未知数。
有一些工具就是为了使多主配置更容易,如CouchDB。
3.1.3 协作编辑
实时协作编辑应用程序允许多人同时编辑文档。如Google Docs。通常不会将协作式编辑完全等价于数据库复制问题,但与前面提到的离线编辑案例类似。
当一个用户编辑文档时,所做更改将立即应用到本地副本(Web浏览器或客户端应用程序中的文档状态),并异步复制到服务器和编辑同一文档的任何其他用户。
若要保证不发生编辑冲突,则应用程序必须先锁定文档,然后才能编辑。若另一用户想编辑同一文档,必须等到第一个用户提交修改并释放锁。这种协作模式类似主从复制模型下在主节点执行事务。
为加速协作效率,期望将可编辑粒度设置很小,如一个按键甚至全程无锁。但同时也带来多主复制都有的挑战:解决冲突。
边栏推荐
- Synchronized and volatile interview brief summary
- ASP.NET Core 产生连续 Guid
- R语言ggplot2可视化:使用ggpubr包的ggmaplot函数可视化MA图(MA-plot)、font.legend参数和font.main参数设置标题和图例字体加粗
- R language test whether the sample conforms to normality (test whether the sample comes from a normally distributed population): shapiro.test function tests whether the sample conforms to the normal d
- 大健云仓冲刺美股:增营收反减利润 京东与DCM是股东
- JVM parameter analysis Xmx, Xms, Xmn, NewRatio, SurvivorRatio, PermSize, PrintGC "recommended collection"
- SIGABRT 报错时的注意事项和解决方法
- Public Key Retrieval is not allowed error solution when DBeaver connects to MySQL 8.x
- TRACE32——常用操作
- 做事软件开发-法的重要性所在以及合理结论的认识
猜你喜欢
随机推荐
ASP.NET Core 产生连续 Guid
R language moves time series data forward or backward (custom lag or lead period): use the lag function in the dplyr package to move the time series data forward by one day (set the parameter n to a p
What is the difference between BI software in the domestic market?
JVM参数解析 Xmx、Xms、Xmn、NewRatio、SurvivorRatio、PermSize、PrintGC「建议收藏」
Kubernetes原理剖析与实战应用手册,太全了
json到底是什么(c# json)
radiobutton的使用
Kubernetes常用命令
四象限时间管理有多好用?
R language ggplot2 visualization: use the ggboxplot function of the ggpubr package to visualize the box plot, use the font function to customize the font size, color, style (bold, italic) of the legen
Efficient use of RecyclerView Section 3
R语言向前或者向后移动时间序列数据(自定义滞后或者超前的期数):使用dplyr包中的lag函数将时间序列数据向前移动一天(设置参数n为正值)
435. 无重叠区间
基于极限学习机(ELM)进行多变量用电量预测(Matlab代码实现)
Delete the disk in good condition (recovery partition)
Ubantu专题4:xshell、xftp连接接虚拟机以及设置xshell复制粘贴快捷键
leetcode303 Weekly Match Replay
看交互设计如何集成到Scrum敏捷流程中
Why don't you make a confession during the graduation season?
SQL、HQL、JPQL 到底有什么区别



![[MySQL] Mysql paradigm and the role of foreign keys](/img/9d/a4295de26683d7bca2b8e9d14f754b.png)





