本文介绍MySQL InnoDB下锁的实现以及优化。
【未完待续】
Redis持久化机制包括AOF和RDB两种:
本文详细介绍这两种方式的实现,以及涉及到主从复制的情况。由于持久化涉及Redis文件系统RIO,所以也会对RIO进行介绍。
作为Redis源码分析的系列文章,本文使用的版本和Redis底层对象实现原理分析、Redis Sentinel实现原理分析等文章是相同的。
长沙游记
介绍 Bash
本文介绍 Paxos 算法,包含 Basic Paxos,以及 Raft 作者提出的一个 Multi Paxos 的工程化实现方案。此外,还就 Raft 作者给出的 Paxos 习题进行探讨。
GCC 是 C 和 C++ 的编译器,GLIBC 是 C 库,两个是不同的 Repo。编译顺序是先 GCC 再 GLIBC,这是因为编译 GLIBC 时对 GCC 的版本有要求。
pthread_rwlock系列函数是pthread库的读写锁函数。随着版本的不同,它的实现也不同。
本篇的组织是:
本文介绍在一个较老的环境下编译 V8 引擎,并全静态地链接到既有的游戏服务上。原因是我们需要一个很新的能支持 WebAssembly 的 JS 引擎。经过调研,我们认为使用 V8 是最好的。
游戏服务使用 GCC4.4.6,这是一个非常老的版本,甚至不能完整支持 C++11 标准。而即使是很老版本的 V8 都需要完整的 C++11 支持(GCC 4.8+)。进一步地,最新版本的 V8 需要 C++14 标准的支持:
std::remove_cv_t 的 C++14 的标准库函数因此我们的方案是将游戏中对 V8 强依赖的模块升级成 C++14 标准,主要步骤如下:
下面的一些 git 命令,在使用时常常不知所以,容易混淆,其实原因是对 git 的机制并不了解,因此在本文中介绍相关。
reset hard/soft/mixed
1 | $ git reset --hard |
fetch/pull
1 | $ git fetch |
reset/revert
diff cached/HEAD
1 | $ git diff --cached |
rev-list/log
本文讲解SVN从源码的构建流程,和其中遇到的一些问题。