数据库性能测试 windows 测试环境: 系统:win7 ,内存:16G , CPU:Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3.40GHz ,p25单节点写(每条数据大小50Byte):速率(不间断写入):25000条/秒写入上限:1200w条 无锁读(单 ...
分类:
其他好文 时间:
2017-06-28 23:20:27
阅读次数:
348
一、mysql架构 mysql是一个单进程多线程架构的数据库。 二、存储引擎 InnoDB: 支持事务 行锁 读操作无锁 4种隔离级别,默认为repeatable 自适应hash索引 每张表的存储都是按主键的顺序记性存放 支持全文索引(InnoDB1.2.x - mysql5.6) 支持MVCC(多 ...
分类:
数据库 时间:
2017-06-18 22:02:38
阅读次数:
259
无锁是一种乐观策略,使用CAS(compare and swap)来鉴别线程冲突,如果发生冲突,就重试当前操作直到没有冲突为止。 CAS(V,E,N) V要更新的变量,E表示预期值,N表示心值 仅当V=E时,才会将V设置为N 如果V!=E 说明已经有其他线程做了更新 当前线程什么也不做 CAS操作即 ...
分类:
编程语言 时间:
2017-06-14 13:06:47
阅读次数:
251
http://www.cnblogs.com/sigm/p/6186401.html 一、ConcurrentLinkedQueue 是一个适用于高并发场景下的队列,通过无锁的方式,实现了高并发状态下的高性能,通常ConcurrentLinkedQueue性能好于BlockingQueue。它是一个 ...
分类:
编程语言 时间:
2017-06-14 11:42:04
阅读次数:
212
并发队列的选择 Java的并发包提供了三个常用的并发队列实现,分别是:ArrayBlockingQueue、ConcurrentLinkedQueue 和 LinkedBlockingQueue 。 ArrayBlockingQueue是初始容量固定的阻塞队列,我们可以用来作为数据库模块成功竞拍的队 ...
分类:
其他好文 时间:
2017-06-07 18:53:18
阅读次数:
182
这两天学习无锁的并发模式,发现相比于传统的 同步加锁相比,有两点好处1.无锁 模式 相比于 传统的 同步加锁 提高了性能 2.无锁模式 是天然的死锁免疫 下来介绍无锁的Vector LockFreeVector 它的结构是: 从这里我们可以看到,它的内部是采用的是 无锁的引用数组, 数组嵌套数组 相 ...
分类:
其他好文 时间:
2017-05-23 00:36:01
阅读次数:
227
CopyOnWriteArrayList是Java并发包中提供的一个并发容器,它是个线程安全且读操作无锁的ArrayList,写操作则通过创建底层数组的新副本来实现,是一种读写分离的并发策略,我们也可以称这种容器为"写时复制器",Java并发包中类似的容器还有CopyOnWriteSet。本文会对C ...
分类:
其他好文 时间:
2017-05-21 16:08:29
阅读次数:
169
CopyOnWriteArrayList是Java并发包中提供的一个并发容器,它是个线程安全且读操作无锁的ArrayList,写操作则通过创建底层数组的新副本来实现,是一种读写分离的并发策略,我们也可以称这种容器为"写时复制器",Java并发包中类似的容器还有CopyOnWriteSet。本文会对C ...
分类:
其他好文 时间:
2017-05-21 16:08:00
阅读次数:
161
AtomicInteger可以保证硬件上的原子操作 1.主要原理 CAS操作 在进行数据更新的时候,会进行与内存中的地址进行比较,若预期值与内存中的值相同,则进行数据上的更新,若值不同,则更新失败, CAS就是Compare and Swap的意思,比较并操作 AtomicInteger主要是调用了 ...
分类:
其他好文 时间:
2017-05-21 16:02:52
阅读次数:
98
对于并发控制而言, 锁是一种悲观的策略。它总是假设每一次的临界区操作会产生冲突,因此,必须对每次操作都小心翼翼。如果有多个线程同时需要访问临界区资源,就宁可牺牲性能让线程进行等待,所以说锁会阻塞线程执行。 而无锁是一种乐观的策略,它会假设对资源的访问是没有冲突的。既然没有冲突,自然不需要等待,所以所 ...
分类:
其他好文 时间:
2017-05-18 23:56:30
阅读次数:
292