Programming Tips [关于编程的有用提示]
这里总结了关于计算机编程的一些有用的提示和计算机程序的一些原理。笔者认为非常有用。
这里总结了关于计算机编程的一些有用的提示和计算机程序的一些原理。笔者认为非常有用。
本文是之前介绍GNU Make的一个进阶,介绍了一些稍微高级的用法。
make是一个工具,可以自动化编译一个大型的项目[一个大型的项目往往包含,几十几百甚至上千个源文件,手动编译肯定是不现实的],一旦写好makefile文件,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。其中make也有很多发行版本[就像Linux也有ubuntu,mint等众多发行版本],GNU Make是目前使用最为广泛的发行版本。
Log-Structured Merge Trees[以下简称LSM Tree]是一种能够支持海量数据的索引结构,但是,千万不要被它的名字迷惑,LSM Tree虽然可以算是索引,但跟B-Tree这种树状结构的索引算法没有半毛钱关系。
Snowflake算法是Twitter提出,为了快速生成全局唯一且总体有序的ID,且ID生成过程不依赖任何中间件,无网络通信[其性能每秒生成300w+]。
Write Amplification 写入放大,Write Amplification Factor写入放大系数。写放大系数的含义:当我们的host要求向ssd写入A大小的有效资料,而实际上由于flash的特性,我们真正写入flash的资料大小是B,那么B/A就是写放大系数。
数据库中的锁[lock]是用于并发控制[concurrency control]的重要机制,其本质是对特定数据的控制。一般来说,在应用了锁机制的数据库系统中,如果想要访问/修改任何一个数据,则一定是要先对该数据加锁,访问之后再释放锁。锁主要有两种形式,共享锁[shared lock]和排它锁[exclusive lock]。