
数据库
zl.qian
talk is cheap ,show me the bug
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
分布式事务框架Seata的实现原理
介绍 分布式事务相关概念 事务: 并发控制的单元,是用户定义的一组操作序列,需要满足ACID属性。 本地事务:事务由本地资源管理器管理。 分布式事务:事务的操作位于不同的节点。 分支事务:在分布式事务中,由资源管理器管理的本地事务。 全局事务:一次性操作多个资源管理器完成的事务,由一组分支事务组成。 分布式事务实现规范 对于本地事务,可以借助DBMS系统来实现事务的管理,但是对于分布式事务,它就无能为力了。对于分布式事务,目前主要有2种思路:XA协议的强一致规范以及柔性事务的最终一致性规范。原创 2020-10-12 21:48:42 · 1496 阅读 · 0 评论 -
mysql高可用之orchestrator的作用
mysql高可用的方案 MHA 在每个mysql节点部署mha node节点,上报mysql信息给mha manager节点,完成故障切换 MGR mysql5.7之后官方支持的基于paxos协议实现的mysql集群 PXC 非mysql官方的mysql集群方案 orchestrator的用武之地 在mha方案中,mha manager并不是一个完善的分布式方案,存在单点问题。orchestrator类似于mha方案中分布式的mha manager的角色。基于raft协议,orchestrator实现了原创 2020-07-30 16:19:33 · 1859 阅读 · 0 评论 -
mysql-表分区的种类:range&list&hash&key
分区的目的 当单表的数据量较大,需要进行定期的数据归档删除时,或者提高查询性能,都可以采用分区 分区的种类 range分区 list分区 hash分区 key分区 range分区 区间分区,常用与跟日期相关的,例如: create table table_demo ( id int, create_date datetime ) partition by range (to_days(...原创 2020-04-10 14:19:52 · 1193 阅读 · 0 评论 -
原生canal简单使用测试
mysql上创建database、创建table、插入数据 use test; CREATE TABLE `canal_test` ( `id` bigint(20) unsigned zerofill NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL COMMENT '姓名', PRIMARY KEY (`id`) )...原创 2020-03-27 18:25:10 · 707 阅读 · 0 评论 -
DataBus-入门介绍-1
背景 在it存储系统中,可以分为OLTP/OLAP方案,其中OLTP用于主系统,OLAP用于离线分析系统;但是在追求实时性的系统中OLAP很难满足业务的需求; 因此我们需要OLTP的系统数据变更实时的同步到OLAP存储中; 方案 可以通过业务双写,同时写入2个存储中 事务控制复杂 通过数据库日志同步 介绍 通过拉取、解析database的变更日志形成事件缓存在环形buffer中,实现客...原创 2020-03-23 15:02:48 · 3524 阅读 · 1 评论 -
简单介绍canal,从binlog说起
binlog 对于Mqsql的主从复制能力实现是通过binlog来实现,其工作原理如下: 主数据库叫做master,从数据叫做slave master 操作日志-save-> binlog (binlog有保留时间,所以是一种增量日志) slave -request-> master 获取binlog slave binlog-save-> relay log(中继日志) sl...原创 2020-03-17 11:21:20 · 766 阅读 · 0 评论 -
NoSql数据库:几款key-value数据库
redis c语言实现 都知道redis是非常强大的内存数据库, 由于所有的数据都存储在内存中,其操作非常的快。但是由于内存比较昂贵,不可能把所有的数据都放到内存中,因此往往redis都用来做缓存。 这带来什么问题呢,缓存的有效性如何保证,在持久化存储的更新发生时,需要同步更新缓存,在高并发的情况下,很可能带来不一致性的问题。(当然得有一定的并发量) 如果redis可以把持久化存储的工作干了,是不...原创 2020-03-16 14:11:12 · 3051 阅读 · 0 评论