You may not be clear about LevelDb, but if you are an IT engineer and do not know the following two great-level engineers, your leadership may not be able to Hold IT anymore: JeffDean and SanjayGhemawat. These two are Google's heavyweight engineers, few of whom are GoogleFellow. JeffDean: Google's large-scale distributed platform
You may not be clear about LevelDb, but if you are an IT engineer and do not know the following two great-level engineers, your leadership may not be able to Hold IT anymore: JeffDean and SanjayGhemawat. These two are Google's heavyweight engineers, few of whom are GoogleFellow. JeffDean: Google's large-scale distributed platform
You may not be clear about LevelDb, but if you are an IT engineer and do not know the following two great-level engineers, your leadership may not be able to Hold IT anymore: Jeff Dean and Sanjay Ghemawat. These two are Google's heavyweight engineers and few are Google Fellow's two.
Jeff Dean: major design and implementers of Google's large-scale distributed platform Bigtable and MapReduce.
Sanjay Ghemawat: major design and implementation engineers of Google's large-scale distributed platform GFS, Bigtable, and MapReduce.
LevelDb is an open-source project launched by these two powerful engineers. In short, LevelDb is a C ++ library that can process Key-Value persistent storage of billions of data records. As mentioned above, these two are the design and implementers of Bigtable. If you know about Bigtable, you should know that there are two core parts in this influential distributed storage system: master Server and Tablet Server. The Master Server manages data storage and distributed scheduling. The actual distributed data storage and read/write operations are performed by the Tablet Server, levelDb can be understood as a simplified Tablet Server.
LevelDb has the following features:
First, LevelDb is a KV System with persistent storage. Unlike the memory-type KV system such as Redis, LevelDb does not eat as much memory as Redis, but stores most of the data on disks.
Secondly, LevleDb stores data in sequence based on the recorded key values, that is, the adjacent key values are stored in sequence in the stored files ,, applications can customize key size comparison functions. LevleDb stores these records in sequence according to user-defined comparison functions.
Again, like most KV systems, the operation interface of LevelDb is very simple. Basic operations include writing records, reading records, and deleting records. It also supports atomic batch operations for multiple operations.
In addition, LevelDb supports the snapshot function, so that the read operation is not affected by the write operation, and consistent data can always be seen during the reading operation.
In addition, LevelDb also supports data compression and other operations, which directly helps reduce storage space and increase IO efficiency.
LevelDb has outstanding performance. The official website reports that its random write performance reaches 0.4 million records per second, while the random read performance reaches 60 thousand records per second. In general, write operations of LevelDb are much faster than read operations, while sequential read/write operations are much faster than random read/write operations. As for the reason, we have read our subsequent LevelDb daily records, and you will probably understand the internal reasons.
For the use of LevelDB, see the previous blog: LevelDB: a fast and lightweight key-value repository.
Next section describes the overall architecture of the LevelDB Series