1.三级封锁协议 一级封锁协议 事务在修改数据时必须先加X锁,在事务结束之后释放X锁。 这样可以解决丢失修改的问题。因为不能有两个事务同时修改同一个数据,所以不会有修改被覆盖的问题。 二级封锁协议 在一级的基础上,要求读取数据A之前必须加上S锁,读取A之后立即释放S锁。 这样可以解决读脏数据的问题。 ...
分类:
数据库 时间:
2020-05-09 09:18:12
阅读次数:
105
分布式系统项目,服务器集群,Java分布式系统高并发解决方案 ...
分类:
编程语言 时间:
2020-05-05 12:39:34
阅读次数:
118
数据预处理的主要内容包括数据清洗、数据集成、数据变换、数据规约。 数据清洗主要是删除原始数据集中的无关数据、重复数据,平滑噪声数据,筛选掉与挖掘主题无关的数据,处理缺失值和异常值。 数据质量分析是检查数据中是否存在一些脏数据,例如:缺失值、异常值和不一致的值等。 数据缺失有很多原因,例如数据无法获得 ...
分类:
其他好文 时间:
2020-05-03 16:39:32
阅读次数:
136
由于并发,如果不加以控制,就会出现以下问题:丢失修改,不可重复读,幻读(读脏数据)。 解决方法: 1)一级封锁协议 做法:修改对象之前必须加X锁,直到事务结束才能释放。 好处:可防止丢失修改。 2)二级封锁协议 做法:在一级锁的基础上,读取数据之前必须先对其加 S 锁,读完后即可释放 S 锁。 事务 ...
分类:
其他好文 时间:
2020-05-03 10:22:33
阅读次数:
77
1. 【强制】业务上具有唯一特性的字段,即使是多个字段的组合,也必须建成唯一索引。 说明:不要以为唯一索引影响了 insert 速度,这个速度损耗可以忽略,但提高查找速度是明显的;另外,即使在应用层做了非常完善的校验控制,只要没有唯一索引,根据墨菲定律,必然有脏数据产生。 2. 【强制】超过三个表禁 ...
分类:
其他好文 时间:
2020-04-27 11:43:32
阅读次数:
143
秒杀大家都不陌生。自2011年首次出现以来,无论是双十一购物还是 12306 抢票,秒杀场景已随处可见。简单来说,秒杀就是在同一时刻大量请求争抢购买同一商品并完成交易的过程。 从架构视角来看,秒杀系统本质是一个高性能、高一致、高可用的三高系统。而打造并维护一个超大流量的秒杀系统需要进行哪些关注,就是 ...
分类:
其他好文 时间:
2020-04-18 09:48:00
阅读次数:
92
本文不是一个吹嘘的文章,不会讲很多高深的架构,相反,会讲解很多基础的问题和写法问题,如果读者自认为基础问题和写法问题都是不是问题,那请忽略这篇文章,节省出时间去做一些有意义的事情。
分类:
编程语言 时间:
2020-04-16 11:45:07
阅读次数:
91
并发导致数据出现的问题1.脏读(Drity Read)释义:已知有两个事务A和B, A读取了已经被B更新但还没有被提交的数据,之后,B回滚事务,A读取的数据就是脏数据。注:即事务b读取了事务a在内存中修改的数据(未提交写入数据库的磁盘)即READ_UNCOMMITTED(读未提交隔离机制)即可发生的 ...
分类:
数据库 时间:
2020-04-13 21:10:25
阅读次数:
99
最近在修改同事代码时,经常遇到莫名的问题,比如查询结果集中出现上一次请求中的脏数据,我就排查啊,总觉得是代码哪个地方写的不严谨,后来想到了,可能是action对象成单例造成的。看了下spring配置文件,果然,全部没有加 scope="prototype"。加上后,问题顺利解决。 ps:不写scop ...
分类:
其他好文 时间:
2020-04-08 18:48:12
阅读次数:
69
我们知道,Linux用cache/buffer缓存数据,且有个回刷任务在**适当时候**把脏数据回刷到存储介质中。什么是适当的时候?换句话说,什么时候触发回刷?是脏数据达到多少阈值还是定时触发,或者两者都有?不同场景对触发回刷的时机的需求也不一样,对IO回刷触发时机的选择,是IO性能优化的一个重要方... ...
分类:
系统相关 时间:
2020-04-08 09:53:35
阅读次数:
77