自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (6)
  • 问答 (2)
  • 收藏
  • 关注

转载 Mysql MVCC实现原理解析

 MVCC(Multi-Version Concurrency Control | 多版本并发控制) InnoDB通过为每一行记录添加两个额外的隐藏的值来实现MVCC,这两个值一个记录这行数据何时被创建,另外一个记录这行数据何时过期(或者被删除)。但是InnoDB并不存储这些事件发生时的实际时间,相反它只存储这些事件发生时的系统版本号(LSN)。这是一个随着事务的创建而不断增长的数字。每个...

2018-08-22 18:27:36 14006

转载 轻松理解MYSQL MVCC 实现机制-(1)

1. MVCC简介1.1 什么是MVCCMVCC是一种多版本并发控制机制(Multi-Version Concurrency Control)。1.2 MVCC是为了解决什么问题?大多数的MYSQL事务型存储引擎,如,InnoDB,Falcon以及PBXT都不使用一种简单的行锁机制.事实上,他们都和MVCC–多版本并发控制来一起使用. 大家都应该知道,锁机制可以控制并发操作,但是...

2018-08-22 09:02:34 176 1

翻译 深入理解SELECT ... LOCK IN SHARE MODE和SELECT ... FOR UPDATE

概念和区别SELECT ... LOCK IN SHARE MODE走的是IS锁(意向共享锁),即在符合条件的rows上都加了共享锁,这样的话,其他session可以读取这些记录,也可以继续添加IS锁,但是无法修改这些记录直到你这个加锁的session执行完成(否则直接锁等待超时)。SELECT ... FOR UPDATE 走的是IX锁(意向排它锁),即在符合条件的rows上都加了排它锁,...

2018-08-20 19:32:44 815

原创 读者写者问题--使用信号量的读者优先与写者优先程序分析

 千万要注意:readcount,writecount要设成共享变量(因为是进程),要不然可能会导致死锁所谓谁谁优先的问题,我认为主要体现在以下两点中:1.当低优先级进程(线程)获得临界区时,高优先级进程能很快从低优先级的进程中抢得访问权。2.当高优先级的进程获得临界区访问权时,低优先级得等到高优先级全部访问完的空闲时间才能抢得访问权。这两点中, 第一点一定得要,不然无法体现出...

2018-08-20 18:58:03 5049 1

转载 用户空间与内核空间,进程上下文与中断上下文[总结]

1、前言  最近在学习linux内核方面的知识,经常会看到用户空间与内核空间及进程上下文与中断上下文。看着很熟悉,半天又说不出到底是怎么回事,有什么区别。看书过程经常被感觉欺骗,似懂非懂的感觉,很是不爽,今天好好结合书和网上的资料总结一下,加深理解。2、用户空间与内核空间    我们知道现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的3...

2018-08-20 18:43:16 127

转载 关于 B+tree (附 python 模拟代码)

在之前,我一直只把 b+tree 当成是 btree 的一种变形,或者说是在某种情况下的一种优化,另外一些情况可能还是 btree 好些。但是做完之后才发现,b+tree 在各种情况都可以完全取代 btree,并能够让索引性能得到比 btree 更好的优化。因为 b+tree 设计的核心要点,是为了弥补 btree 最大的缺陷。btree 最大的缺陷是什么?首先,我们知道对于 btree ...

2018-08-16 18:17:56 2688 2

转载 B+树介绍

B+树B+树和二叉树、平衡二叉树一样,都是经典的数据结构。B+树由B树和索引顺序访问方法(ISAM,是不是很熟悉?对,这也是MyISAM引擎最初参考的数据结构)演化而来,但是在实际使用过程中几乎已经没有使用B树的情况了。B+树的定义十分复杂,因此只简要地介绍B+树:B+树是为磁盘或其他直接存取辅助设备而设计的一种平衡查找树,在B+树中,所有记录节点都是按键值的大小顺序存放在同一层的叶节点中...

2018-08-16 18:14:52 1037

转载 分布式之数据库和缓存双写一致性方案解析

【本文转自博客园 作者:孤独烟 原文链接:https://www.cnblogs.com/rjzheng/p/9041659.html】为什么写这篇文章?  首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。  但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库...

2018-08-16 09:23:43 1299

原创 cloud-init实现自动扩展 磁盘分区

背景说明cloud-init 的一项功能是自动扩展linux的指定分区。比如linux镜像是20G,在部署instance时选择的flavor磁盘定义是40G,那么instance部署时cloud-init会自动将制定分区扩到 40G。 环境准备1) 该功能依赖growpart,所以需要在开始前,在镜像中安装包: yum install –y cloud-utils-gro...

2018-08-09 16:34:56 7373

转载 布隆过滤器(Bloom Filter)原理以及应用

布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。hash原理 Hash (哈希,或者散列)函数在计算机领域,尤其是数据快速查找领域,加密领域用的极广。其作用是将一个大的数据集映射到一个...

2018-08-09 08:55:42 854

转载 常见的Redis架构设计缺陷 - 缓存穿透

什么是缓存穿透所谓的缓存穿透,简单来讲就是查询某些不存在的key时,缓存和数据库查询结果都为空,而空的结果又不被缓存起来,而导致每次查询都去请求数据库层的情况。过程:缓存不命中,进而导致每次查询都去查询数据库,缓存也就失去了作用,通常表现为服务器负载迅速上升,严重时可能直接宕机。常见场景日常网站开发中,我们通常会将一些访问频繁的页面缓存起来,比如文章详情页、商品详情页等,而...

2018-08-08 20:12:26 422

转载 Raft一致性算法

Why Not PaxosPaxos算法是莱斯利·兰伯特(LeslieLamport,就是 LaTeX 中的”La”,此人现在在微软研究院)于1990年提出的一种基于消息传递的一致性算法。由于算法难以理解起初并没有引起人们的重视,使Lamport在八年后1998年重新发表到ACM Transactions on Computer Systems上(The Part-TimeParliament...

2018-08-08 20:11:13 159

转载 linux内存源码分析 - 内存回收(lru链表)

概述         linux使用修改过的LRU算法简要介绍:       对于整个内存回收来说,lru链表是关键中的关键,实际上整个内存回收,做的事情就是处理lru链表的收缩,所以这篇文章就先说说系统的lru链表。  内存回收的核心思想,就是如果一些数据能够保存到磁盘,在内存不足时就把这些数据写到磁盘中,这样这些数据占用的内存页就可以作为空闲内存页给予系统使用了。  当...

2018-08-08 19:45:10 1207

转载 Linux用户空间与内核空间(理解高端内存)

Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。 Linux内核地址映射模型x86 CPU采用了段页式地址映射模型。进程代码中的地址为逻辑地址,经过段页式地址映射后,才真正访问物理内存。段页式机制如下图。 ...

2018-08-01 08:56:10 464

logstash-filter-translate-3.0.4.zip

logstash 处理json格式的字符串 # 需要用到 logstash-filter-translate,有以下两种加载方式,第二种需要先从已经装好的环境导出来 # 1,/usr/share/logstash/bin/logstash-plugin install logstash-filter-translate # 2,/usr/share/logstash/bin/logstash-plugin install file:///elk/logstash-filter-translate-3.0.4.zip

2018-04-21

Python Cookbook 第三版中文v1.0.2.mobi

Python Cookbook 第三版中文,使用python3进行描述的文档。

2018-03-06

MySQL技术内幕:InnoDB存储引擎.mobi

《MySQL技术内幕:InnoDB存储引擎(第2版)》由国内资深MySQL专家亲自执笔,国内外多位数据库专家联袂推荐。作为国内唯一一本关于InnoDB的专著,《MySQL技术内幕:InnoDB存储引擎(第2版)》的第1版广受好评,第2版不仅针对最新的MySQL 5.6对相关内容进行了全面的补充,还根据广大读者的反馈意见对第1版中存在的不足进行了完善,《MySQL技术内幕:InnoDB存储引擎(第2版)》大约重写了50%的内容。《MySQL技术内幕:InnoDB存储引擎(第2版)》从源代码的角度深度解析了InnoDB的体系结构、实现原理、工作机制,并给出了大量最佳实践,能帮助你系统而深入地掌握InnoDB,更重要的是,它能为你设计管理高性能、高可用的数据库系统提供绝佳的指导。

2018-03-06

Redis设计与实现数据库技术丛书.mobi

本书对Redis的大多数单机功能以及所有多机功能的实现原理进行了介绍,展示了这些功能的核心数据结构以及关键的算法思想。通过阅读本书,读者可以快速、有效地了解Redis的内部构造以及运作机制,这些知识可以帮助读者更好、更高效地使用Redis。本书主要分为四大部分。第一部分“数据结构与对象”介绍了Redis中的各种对象及其数据结构,并说明这些数据结构如何影响对象的功能和性能。第二部分“单机数据库的实现”对Redis实现单机数据库的方法进行了介绍,包括数据库、RDB持久化、AOF持久化、事件等。第三部分“多机数据库的实现”对Redis的Sentinel、复制(replication)、集群(cluster)三个多机功能进行了介绍。第四部分“独立功能的实现”对Redis中各个相对独立的功能模块进行了介绍,涉及发布与订阅、事务、Lua脚本、排序、二进制位数组、慢查询日志、监视器等。

2018-03-06

juno-swift 安装文件

openstack juno swift的安装依赖文件以及源码

2015-11-12

libc-2.11.3 源码

libc-2.11.3 源码,非常完整,需要的看看

2013-12-22

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除