网络共享数据方案

文章探讨了在网络共享数据库中,多进程读写权限导致的数据同步问题,提出了两种解决方案:一是数据写保护法,二是统一数据库操作线程法。第二种方法在实测中表现出较高的执行效率,能有效解决数据冲突问题,确保系统长期稳定。这种方法虽需对数据库进行封装,但能适应不同场景的读写需求。
摘要由CSDN通过智能技术生成

一、问题

网络共享数据库数据可以理解为多个进程对同一数据库的操作,如果只有1方是具有写权限而其它方只是读权限时,这类系统很好处理。但当多方都具有写的权限时,有存在读-修改-写的同步问题,如下:
在这里插入图片描述
B方存在所读数据不同步的问题。这个问题将来会在应用中,如多个设备同享一个数据库,由于存在数据不同步,此将引起数据的不可靠,放大的说将导致很大的经济纠纷。

二、分析

虽当前项目遇到这种偶发事件机率极低,但作为一个长期稳定的系统来说,必须得解决,所以经过一段时间的研究,总结出以下两种方法:
第一种方法:当要修改数据时,先对数据库某条数据进行单独写保护,写完成退出保护,
优点:可对其中一条数据进行写保护,而不影响其它数据的读写。
缺点:不适合于长时间占用写保护。比如,用户进入界面显示数据,然后花了10分钟修改了数据,之后再保存。在这种系统方式下,别的用户体验会很糟糕。
另外有些数据库还不支持这种方式,需要对数据库进行封装建模管理。对外接口上就属于非标准化了,存在与第三方对接的工作。
第二种方法:1、数据库统一由一个线程操作。此线程接受来自不同线程或进程(网络)的操作事件,并按事件进行执行
2、对于修改的操作事件,必须在事件输入信息中提供原始数据。只有原始数据与当前数据库相同时,才可能正常候改。
优点1:可解多方修改数据导致不同步的问题,应用端的调用也是比较简单。
优点2:不再被所选用数据库的功能而限制了。
缺点1:需要对数据库进行封装建模管理。对外接口上就属于非标准化了,存在与第三方对接的工作。
缺点2:增加了数据库操作的事件方式。
缺点3:将加对数据库中当前数据的读的时间,但以可忽略的时间换系统的长期稳定来说,是值的。
在设计时,另外要注意多种不同组合数据存在同时读取与写入时,要注意分组打包,以免设计出太多的事件方式。

三、实测情况

通过模拟各种突发事件测试,结论为:第2种方法解决了网络共享和多线程对同一数据操作的冲突问题,执行效率也是比较高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值