腾讯TcaplusDB核心引擎技术揭秘——存储篇
导言 数据库是应用系统的基石,数据库中存储着大量的数据信息,数据库的稳定性、性能、扩展性,对业务的运营起着至关重要的作用。很多人用过数据库,但是很少有人设计和实现过一个数据库,特别是实现一个分布式数据库。了解数据库的实现原理和细节,一方面可以提高个人技术,对构建其他系统有帮助,另一方面也有利于用好数据库。研究一门技术最好的方法是研究其技术原理,数据库也不例外。由于分布式数据库自身的复杂性,很多人并不能很好的理解整个数据库,所以我们希望能通过一系列文章,自顶向下,由浅入深,讲述一些技术原理,包括用户可见的技术以及大量隐藏在 SDK 界面后用户不可见的技术点。为了便于读者理解,文章以腾讯自研分布式NoSQL数据库TcaplusDB为例展开。 正文 数据库最核心的功能是把数据存储下来,并提供快速读、写能力。保存数据的方法多种多样,最直接的方法是在内存中建一个数据结构,保存数据。比如用一个List,每当收到一条数据就向List中追加一条记录。这个方案非常简单,性能良好,但问题是数据存放在内存中,一旦服务器停机或重启,数据就会永久丢失。为了解决数据丢失问题,可以把数据持久化存放在非易失存储介质(...