一.InnoDB 体系架构 1.1后台线程 master thread:刷新内存中的数据到磁盘 io thread:处理 IO 请求,AIO purge thread:清理undo 页的回收 page cleaner thread:刷新脏页 1.2内存 LRU list:最近最少使用算法管理缓冲池 ...
分类:
数据库 时间:
2019-03-13 19:49:05
阅读次数:
210
Ⅰ、缓冲池介绍 innodb存储引擎缓冲池(buffer pool) ,类似于oracle的sga,里面放着数据页 、索引页 、change buffer 、自适应哈希 、锁(5.5之前)等内容 综上所示: 每次读写数据都是通过Buffer Pool 当Buffer Pool中没有用户所需要的数据时 ...
分类:
其他好文 时间:
2019-01-08 00:57:24
阅读次数:
193
在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务 ...
分类:
编程语言 时间:
2019-01-07 00:20:14
阅读次数:
170
1.定义:提供了减少对象数量从而改善应用所需的对象结构的方式; 运用共享技术有效地支持大量细粒度的对象。 2.类型:结构型 3.适用场景:常常应用于底层的开发,以便解决系统的性能问题; 系统有大量相似对象、需要缓冲池的场景。 4.优点:减少对象的创建,降低内存中对象的数量,降低系统的内存,提高效率; ...
分类:
其他好文 时间:
2019-01-06 18:02:50
阅读次数:
203
预读机制 两种预读算法 1、线性预读 2、随机预读 对预读的监控 一、预读机制 InnoDB在I/O的优化上有个比较重要的特性为预读,预读请求是一个i/o请求,它会异步地在缓冲池中预先回迁多个页面,预计很快就会需要这些页面,这些请求在一个范围内引入所有页面。InnoDB以64个page为一个exte ...
分类:
数据库 时间:
2018-12-26 17:47:42
阅读次数:
224
后台线程 1.Master Thread 2.IO Thread 3.Purge Thread 4.Page Cleaner Thread 内存 重做日志在以下三种情况下将重做日志缓存中的内容刷新到外部磁盘的重做日志文件: Master Thread 每一秒将重做日志缓存刷新到重做日志文件; 每个事 ...
分类:
数据库 时间:
2018-12-21 18:43:23
阅读次数:
249
继经典线程同步问题之后,我们来看看生产者消费者问题及读者写者问题。生产者消费者问题是一个著名的线程同步问题,该问题描述如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个具有多个缓冲区的缓冲池,生产者将它生产的产品放入一个缓冲区中,消费 ...
分类:
编程语言 时间:
2018-12-11 11:25:27
阅读次数:
226
如果 初始化缓冲池时 innodb_buffer_pool_chunk_size* innodb_buffer_pool_instances大于当前缓冲池大小, innodb_buffer_pool_chunk_size 则截断为 innodb_buffer_pool_size/ innodb_bu ...
分类:
数据库 时间:
2018-12-09 01:06:18
阅读次数:
269
和Bitcoin类似,以太坊的转账流程基本是这样的: 1.发起交易:指定目标地址和交易金额,以及必需的gas/gasLimit 2.交易签名:使用账户私钥对交易进行签名 3.提交交易:验签交易,并将交易提交到交易缓冲池 4.广播交易:通知以太坊虚拟机吧交易信息广播给其他节点 Eth Transact ...
分类:
其他好文 时间:
2018-11-30 20:17:38
阅读次数:
138
1、生产者—消费者问题 互斥、同步 1、无论生产者、消费者使用缓冲池时应保证互斥使用(互斥信号量mutex )2、生产者和消费者间交叉有序:有序的控制最根源在产品数量上。设置两个信号量:分别针对生产者、消费者设置不同的信号量,empty和full分别表示缓冲池中空缓冲池和满缓冲池(即产品)的数量。e ...
分类:
其他好文 时间:
2018-11-25 16:26:51
阅读次数:
211