Programming Tips [关于编程的有用提示]
Published: Apr. 21, 2018
这里总结了关于计算机编程的一些有用的提示和计算机程序的一些原理。笔者认为非常有用。
这里总结了关于计算机编程的一些有用的提示和计算机程序的一些原理。笔者认为非常有用。
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]。
数据库并发控制的一个重要概念就是Serializability[可串行化],先上两个教科书的解释
硬盘数据库就是数据库主体构建在硬盘上,相对的内存数据库是指数据库主体构建在内存中,两者各有优势。这里说的内存管理是指硬盘数据库的内存管理,因为内存数据库整个都在内存中其管理方式必然有着不同的设计。