
数据库技术原理与架构
文章平均质量分 93
huaishu
这个作者很懒,什么都没留下…
展开
-
MySQL数据库InnoDB存储引擎中的锁机制
00 – 基本概念当并发事务同时访问一个资源的时候,有可能导致数据不一致。因此需要一种致机制来将访问顺序化。锁就是其中的一种机制。我们用商场的试衣间来做一个比喻。试衣间供许多消费者使用。因此可能有多个消费者同时要试衣服。为了避免冲突,试衣间的门上装了锁。试衣服的人在里边锁住,其他人就不能从外边打开了。只有里边的人开门出来,外边的人才能进去。- 锁的基本类型数据库上的操作可以归纳为两中,读和写。多个事务同时读一个对象的时候,是不会有冲突的。同时读和写或者同时写才会产生冲突。因此为了提高并发转载 2021-01-26 11:43:17 · 260 阅读 · 0 评论 -
CAS以及在Java并发机制中的使用
Java 并发编程中有介绍CAS实现锁的机制,后面再看了一些编译原理方法的书,对锁的实现有一些基本了解。减少上下午切换的方法:无锁并发编程:按Hash算法取模分段,不同的线程处理不同段数据。 CAS算法:CAS算法更新数据,无需加锁。 使用最少线程:尽量用少的线程,不要造成等待。 协程:在单线程里实现多任务的调度。Java并发机制的底层实现Volatile:将当前处理器缓存行数据回写到系统内存,并让其他缓存失效。 synchronized:同步代码块,锁定对象头。monitorente原创 2020-06-26 14:00:53 · 265 阅读 · 1 评论 -
Druid架构以及数据存储
Druid 的目标是提供一个能够在大数据集上做实时数据摄入与查询的平台,然而对于大多数系统而言,提供数据的快速摄入与提供快速查询是难以同时实现的两个指标。例如对于普通的RDBMS,如果想要获取更快的查询速度,就会因为创建索引而牺牲掉写入的速度,如果想要更快的写入速度,则索引的创建就会受到限制。Druid通常是基于时序的事实事件,事实发生后进入Druid,外部系统就可以对该事实进行查询。Drui...原创 2019-07-23 15:16:55 · 3565 阅读 · 0 评论 -
两阶段提交与三阶段提交介绍
背景XAXA是由X/Open组织提出的分布式事务的规范。XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接口。XA接口是双向的系统接口,在事务管理器(Transaction Manager)以及一个或多个资源管理器(Resource Manager)之间形成通信桥梁。XA之所以需要引入事务管理器,是因为...原创 2019-07-22 17:23:45 · 648 阅读 · 0 评论 -
Spring事务的传播机制
事务的传播机制:@Transactional(propagation=Propagation.REQUIRED)如果有事务,那么加入事务,没有的话新建一个(默认情况下)@Transactional(propagation=Propagation.NOT_SUPPORTED)容器不为这个方法开启事务@Transactional(propagation=Propagation.REQU...原创 2019-07-22 12:26:13 · 2461 阅读 · 0 评论 -
MySQL 读提交和重复读隔离级别测试实验
Mysql默认隔离级别可重复读,我们会实验读提交和可重复读。set tx_isolation='read-committed';set tx_isolation='repeatable-read';纸上得来终觉浅,要理解它们必须实践一把,当前读、快照一致性读、MVVC等等这些概念必须在实践中理解。读提交测试实验一:未提交读 mysql>set tx_isolatio...原创 2019-07-10 13:20:23 · 976 阅读 · 4 评论 -
CAP和BASE理论以及分布式事务
回想12年左右刚开始接触Nosql,各种Nosql数据库如雨后春笋般出现,如MongoDB、Redis、Hadoop、CouchDB等等,其中有一篇CAP理论文章非常火。到现在CAP、ACID、BASE各种概念,但分布式事务是必须面对的问题。ACID数据库管理系统中事务(transaction)的四个特性原子性(Atomicity)原子性是指事务是一个不可再分割的工作单元,事务中的操作要...原创 2019-06-21 13:51:27 · 1360 阅读 · 0 评论 -
MySQL之MVCC原理
什么是MVCMVCC(Multi-Version Concurrency Control)(注:与MVCC相对的,是基于锁的并发控制,Lock-Based Concurrency Control)是一种基于多版本的并发控制协议,只有在InnoDB引擎下存在。MVCC是为了实现事务的隔离性,通过版本号,避免同一数据在不同事务间的竞争,你可以把它当成基于多版本号的一种乐观锁。当然,这种乐观锁...原创 2019-05-08 12:16:19 · 31037 阅读 · 12 评论 -
分布式事务----Fescar概览(seata)
Fescar 是阿里巴巴开源的分布式事务中间件,以高效并且对业务0 侵入的方式,解决微服务场景下面临的分布式事务问题。1. 什么是微服务化带来的分布式事务问题?首先,设想一个传统的单体应用(Monolithic App),通过 3 个 Module,在同一个数据源上更新数据来完成一项业务。很自然的,整个业务过程的数据一致性由本地事务来保证。随着业务需求和架构的...转载 2019-05-06 15:14:39 · 1192 阅读 · 0 评论 -
LSM树存储结构优劣——RocksDB
在了解数据库总归要了解索引,了解索引必须理解其数据结构,B-Tree是所有数据库的基本数据结构。哈希存储引擎 是哈希表的持久化实现,支持增、删、改以及随机读取操作,但不支持顺序扫描,对应的存储系统为key-value存储系统。对于key-value的插入以及查询,哈希表的复杂度都是O(1),明显比树的操作O(n)快。B树存储引擎是B树的持久化实现,不仅支持单条记录的增、删、读、改操作,还...原创 2019-02-14 12:46:23 · 1546 阅读 · 0 评论 -
数据库4种事务隔离级别介绍
数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。脏读(读取未提交数据)不可重复读(前后多次读取,数据内容不一致,重点在于update,一般行锁)幻读(前后多次读取,数据总量不一致,重点在于insert和delet...原创 2015-11-04 21:15:08 · 748 阅读 · 0 评论 -
分布式事务 Seata TCC 模式深度解析
2019 年 3 月,蚂蚁金服加入分布式事务 Seata 的社区共建中,并贡献其 TCC 模式。本期是 SOFAChannel 第四期,主题:分布式事务 Seata TCC 模式深度解析,本文根据觉生的直播整理。大家晚上好,我是 Seata Committer 觉生,来自蚂蚁金服数据中间件团队。今天的内容主要分为以下四个部分:Seata TCC 模式的原理解析; 从 TCC 的业务模型与...转载 2019-05-06 13:43:19 · 20965 阅读 · 21 评论 -
数据库索引数据结构总结
数据库查询类型点查:主键ID查询 多点:返回多条记录 范围:大于、小于 匹配查询:like 极值查询:max 排序:order by 分组查询:group by 连接查询:多表联合数据结构B、B-、B+树离根越远的节点越不可能被存放在RAM中,B+树NULL值不在索引中B+ Tree索引优点全值匹配:指的是和索引中所有列进行匹配 匹配最左前缀:假设以(姓...原创 2019-05-08 14:21:18 · 383 阅读 · 0 评论 -
从100PV到1亿级PV网站架构演变
一个网站就像一个人,存在一个从小到大的过程。养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原则。本文结合我自已14年网站人的经历记录一些架构演变中的体会。1:积累是必不可少的架构师不是一天练成的。1999年,我作了一个个人主页,在学校内的虚拟空间,参加了一次主页大赛,几个DREAMWEAVER的页面,几个TABLE作布局,一个DB连接,几行PHP的代码嵌入在转载 2013-07-17 22:54:12 · 1133 阅读 · 0 评论 -
淘宝数据魔方技术架构解析
淘宝网拥有国内最具商业价值的海量数据。截至当前,每天有超过30亿的店铺、商品浏览记录,10亿在线商品数,上千万的成交、收藏和评价数据。如何从这些数据中挖掘出真正的商业价值,进而帮助淘宝、商家进行企业的数据化运营,帮助消费者进行理性的购物决策,是淘宝数据平台与产品部的使命。为此,我们进行了一系列数据产品的研发,比如为大家所熟知的量子统计、数据魔方和淘宝指数等。尽管从业务层面来讲,数据产品的研转载 2012-01-09 11:10:55 · 611 阅读 · 0 评论