当前位置:网站首页>多主复制的适用场景(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浏览器或客户端应用程序中的文档状态),并异步复制到服务器和编辑同一文档的任何其他用户。
若要保证不发生编辑冲突,则应用程序必须先锁定文档,然后才能编辑。若另一用户想编辑同一文档,必须等到第一个用户提交修改并释放锁。这种协作模式类似主从复制模型下在主节点执行事务。
为加速协作效率,期望将可编辑粒度设置很小,如一个按键甚至全程无锁。但同时也带来多主复制都有的挑战:解决冲突。
边栏推荐
- Why don't you make a confession during the graduation season?
- 更新数据表update
- border控件的使用
- SIGABRT 报错时的注意事项和解决方法
- TRACE32 - SNOOPer-based variable logging
- WPF project - basic usage of controls entry, you must know XAML
- Visualize GraphQL schemas with GraphiQL
- 贪吃蛇项目(简单)
- Gorm—Go language database framework
- 数据库的范式(第一范式,第二范式,第三范式,BCNF范式)「建议收藏」
猜你喜欢
随机推荐
update data table update
长得很怪的箱图
AVH Deployment Practice (1) | Deploying the Flying Paddle Model on Arm Virtual Hardware
Efficient use of RecyclerView Section 3
abaqus find contact pairs报错:surface name is already in use
Unity中实现点选RenderTexture中的3D模型
RecyclerView高效使用第三节
【MySQL】Mysql范式及外键作用
DBeaver连接MySQL 8.x时Public Key Retrieval is not allowed 错误解决
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
Kubernetes common commands
四象限时间管理有多好用?
The principle of hough transform detection of straight lines (opencv hough straight line detection)
R语言ggplot2可视化:使用ggpubr包的ggboxplot函数可视化箱图、使用font函数自定义图例标题文本(legend.title)字体的大小、颜色、样式(粗体、斜体)
TRACE32 - Common Operations
[CUDA study notes] First acquaintance with CUDA
腾讯云部署----DevOps
763.划分字母区间——之打开新世界
STM32(十)------- SPI通信
基于极限学习机(ELM)进行多变量用电量预测(Matlab代码实现)