在近期的开发中,针对客户端程序是否支持离线操作及在进行离线操作后数据的一致性的问题,进行了一段时间学习,以下是近期学习内容的分享:
数据冲突处理的分类:并发执行时的冲突及数据合并是的冲突;前者的一半解决方案是在进行数据处理时,对正在处理的数据进行加锁,后者则需要程序员通过编码进行解决。
这里重点聊一聊并发执行时的冲突,其主要处理方式分为两种开放式并发和保守式并发,相对于效率而言开放式并发要远远高于保守式并发,在这里先介绍以下保守式并发,这里的主要实现思路是当用户对数据库中某一条数据进行处理,那么由客户端会对该数据进行锁定,在锁定期间,其他用户不能修改数据,这样来保证数据完整性,这样一来带来的弊端就是可用性低,不支持多用户对数据进行操作;开放式并发处理时在处理该数据是不进行锁定,当进行提交中,判断该数据是否发生更改,当出现与原始数据出现差异中,通常会出现错误并询问用户希望如何处理,用户可选择放弃更改数据或是覆盖已更改的数据。
数据冲突处理的分类:并发执行时的冲突及数据合并是的冲突;前者的一半解决方案是在进行数据处理时,对正在处理的数据进行加锁,后者则需要程序员通过编码进行解决。
这里重点聊一聊并发执行时的冲突,其主要处理方式分为两种开放式并发和保守式并发,相对于效率而言开放式并发要远远高于保守式并发,在这里先介绍以下保守式并发,这里的主要实现思路是当用户对数据库中某一条数据进行处理,那么由客户端会对该数据进行锁定,在锁定期间,其他用户不能修改数据,这样来保证数据完整性,这样一来带来的弊端就是可用性低,不支持多用户对数据进行操作;开放式并发处理时在处理该数据是不进行锁定,当进行提交中,判断该数据是否发生更改,当出现与原始数据出现差异中,通常会出现错误并询问用户希望如何处理,用户可选择放弃更改数据或是覆盖已更改的数据。
转载于:https://blog.51cto.com/85608547/536382