旧·时光 | Time

Something that stays in your mind will someday spring up in your life.

一天半,黄山 + 宏村

花了一天半的时间走了一圈黄山加宏村,原以为时间会很紧张,可能会走的很累,结果玩下来感觉时间上还是挺充裕的,就是一些行程安排上还可以再优化。本篇写一下我的行程总结,想去黄山玩一玩的同学可以借鉴一下。 写在前面 黄山天气多变,光看天气预报多数时候不准,因此要做两手准备。例如 05-31 周五天气预报一直是雷阵雨,但实际上只有早上六点多下了一会,我七点多出发的时候已经停了,索道到达白鹅岭站大概是...

Seata TCC 分布式事务源码分析

Seata 是什么 Seata 是阿里近期开源的分布式事务框架,地址:https://github.com/seata/seata。框架包括了集团的 TXC(云版本叫 GTS)和蚂蚁金服的 TCC 两种模式,短短数月 Github 上的 star 数已经接近一万,算是目前唯一有大厂背书的分布式事务解决方案。 TXC 在 Seata 中又叫 AT 模式,意为补偿方法是框架自动生成的,对用户...

MySQL InnoDB MVCC 机制的原理及实现

多版本并发控制,是现代数据库引擎实现中常用的处理读写冲突的手段,目的在于提高数据库高并发场景下的吞吐性能。

什么是 MVCC MVCC (Multiversion Concurrency Control) 中文全程叫多版本并发控制,是现代数据库(包括 MySQL、Oracle、PostgreSQL 等)引擎实现中常用的处理读写冲突的手段,目的在于提高数据库高并发场景下的吞吐性能。 如此一来,不同事务并发过程中,SELECT 操作可以不加锁而是通过 MVCC 机制读取指定的版本历史记录,并通过一...

MySQL InnoDB 中的 redo/undo log

讲到 InnoDB、MVCC 等概念时,我们时常听到 redo log 和 undo log 的名字,那么二者的作用是什么呢

写在前面 讲到 InnoDB、MVCC 等概念时,我们时常听到 redo log 和 undo log 的名字,那么二者的作用是什么呢?其实二者并非事务操作独有,索引更新时也会记录 redo/undo log,甚至记录 undo log 时也会记录 redo log,而本文聚焦于事务方面的 redo/undo log。 什么是 redo log MySQL 中使用了大量内存 Cache...

MySQL 索引机制背后的隐藏之道

索引的 “哲学思想” 我们为什么需要索引? 显而易见,使用索引可以加快我们检索数据的速度,生活中书籍的目录、图书馆里的各种书架编号、号码簿上的检索页等,都少不了索引的身影。 回到计算机的世界,任何一种数据结构都不是凭空产生的,一定会有它的诞生背景和解决的问题。我们先举个最简单的例子,下图是一个有序递增的数组,里面包含十个元素,没有重复。 如果我想要查找元素 24 ,该怎么...