原文网址:https://github.com/facebook/rocksdb/wiki/Terminology
NOTE for future edits: Please maintain entries in alphabetical order
2PC (Two-phase commit) The pessimistic transactions could commit in two phases: first Prepare and then the actual Commit. See https://github.com/facebook/rocksdb/wiki/Two-Phase-Commit-Implementation
悲观事务可以分两个阶段提交:首先是Prepare,然后是实际的commit。参见https://github.com/facebook/rocksdb/wiki/Two-Phase-Commit-Implementation
Backup: RocksDB has a backup tool to help users backup the DB state to a different location, like HDFS. See https://github.com/facebook/rocksdb/wiki/How-to-backup-RocksDB
RocksDB有一个备份工具,可以帮助用户将数据库状态备份到不同的位置,比如HDFS。参见https://github.com/facebook/rocksdb/wiki/How-to-backup-RocksDB
Block cache: in-memory data structure that cache the hot data blocks from the SST files. See https://github.com/facebook/rocksdb/wiki/Block-Cache
内存中的数据结构,缓存SST文件中的热数据块。参见https://github.com/facebook/rocksdb/wiki/Block-Cache
Block: data block of SST files. In block-based table SST files, a block is always checksummed and usually compressed for storage.
SST文件的数据块。在基于块的表SST文件中,一个块总是被检查和通常被压缩以存储。
Block-based bloom filter or full bloom filter: Two different approaches of storing bloom filters in SST files. Both are features of the block-based table format. See https://github.com/facebook/rocksdb/wiki/RocksDB-Bloom-Filter#new-bloom-filter-format
在SST文件中存储bloom过滤器的两种不同方法。两者都是基于块的表格式的特性。看到https://github.com/facebook/rocksdb/wiki/RocksDB-Bloom-Filter new-bloom-filter-format
Block-Based Table: The default SST file format. See https://github.com/facebook/rocksdb/wiki/Rocksdb-BlockBasedTable-Format
默认SST文件格式。参见https://github.com/facebook/rocksdb/wiki/Rocksdb-BlockBasedTable-Format
Bloom filter: See https://github.com/facebook/rocksdb/wiki/RocksDB-Bloom-Filter
参见https://github.com/facebook/rocksdb/wiki/RocksDB-Bloom-Filter
Checkpoint: A checkpoint is a physical mirror of the database in another directory in the file system. See https://github.com/facebook/rocksdb/wiki/Checkpoints
检查点是文件系统中另一个目录中的数据库的物理镜像。参见https://github.com/facebook/rocksdb/wiki/Checkpoints
Column Family: column family is a separate key space in one DB. In spite of the misleading name, it has nothing to do with the “column family” concept in other storage systems. RocksDB doesn't even have the concept of “column”. See https://github.com/facebook/rocksdb/wiki/Column-Families
列族是一个DB中的一个单独的键空间。尽管名称具有误导性,但它与其他存储系统中的“列族”概念无关。RocksDB甚至没有“专栏”的概念。参见https://github.com/facebook/rocksdb/wiki/Column-Families
Compaction filter: a user plug-in that can modify or drop existing keys during a compaction. See https://github.com/facebook/rocksdb/blob/main/include/rocksdb/compaction_filter.h
可以在压缩期间修改或删除现有键的用户插件。参见https://github.com/facebook/rocksdb/blob/main/include/rocksdb/compaction_filter.h
Compaction: background jobs that merge some SST files into some other SST files. LevelDB's compaction also includes flush. In RocksDB, we further distinguished the two. See https://github.com/facebook/rocksdb/wiki/RocksDB-Overview#multi-threaded-compactions and https://github.com/facebook/rocksdb/wiki/Compaction
合并一些SST文件到其他SST文件的后台作业。LevelDB的压缩也包括刷新。在RocksDB中,我们进一步区分了这两者。参见https://github.com/facebook/rocksdb/wiki/RocksDB-Overview#multi-threaded-compactions和https://github.com/facebook/rocksdb/wiki/Compaction
Comparator: A plug-in class which can define the order of keys. See https://github.com/facebook/rocksdb/blob/main/include/rocksdb/comparator.h
一个可以定义键顺序的插件类。参见https://github.com/facebook/rocksdb/blob/main/include/rocksdb/comparator.h
DB properties: some running status that can be returned by the function DB::GetProperty(). See https://github.com/facebook/rocksdb/blob/main/include/rocksdb/db.h
一些可以由函数DB::GetProperty()返回的运行状态。参见https://github.com/facebook/rocksdb/blob/main/include/rocksdb/db.h
Flush: background jobs that write out data in mem tables into SST files.
将mem表中的数据写入SST文件的后台任务。
Forward iterator / Tailing iterator: A special iterator option that optimizes for very specific use cases. See https://github.com/facebook/rocksdb/wiki/Tailing-Iterator
一个特殊的迭代器选项,它针对非常特定的用例进行优化。参见https://github.com/facebook/rocksdb/wiki/Tailing-Iterator
Immutable memtable: A closed memtable that is waiting to be flushed.
一个关闭的等待刷新的memtable。
Index The index on the data blocks in a SST file. It is persisted as an index block in the SST file. The default index format is the binary search index.
SST文件中数据块的索引。在SST文件中,它被持久化为一个索引块。默认的索引格式是二进制搜索索引。
Iterator: iterators are used by users to query keys in a range in sorted order. See https://github.com/facebook/rocksdb/wiki/Basic-Operations#iteration
迭代器被用户用来按顺序查询一个范围内的键。看到https://github.com/facebook/rocksdb/wiki/Basic-Operations迭代
Leveled Compaction or Level-Based Compaction Style: the default compaction style of RocksDB. [[Leveled Compaction]]
RocksDB的默认压缩样式。[[夷为平地压实]]
LSM level: a logical organization of the DB physical data for maintaining desired LSM-tree shape and structure. See https://github.com/facebook/rocksdb/wiki/Compaction, particularly https://github.com/facebook/rocksdb/wiki/Compaction#lsm-terminology-and-metaphors
数据库物理数据的逻辑组织,用于维护所需的lsm树的形状和结构。参见https://github.com/facebook/rocksdb/wiki/Compaction,特别是https://github.com/facebook/rocksdb/wiki/Compaction#lsm-terminology-and-metaphors
LSM-tree: See the definition in https://en.wikipedia.org/wiki/Log-structured_merge-tree RocksDB is LSM-tree-based storage engine.
RocksDB是基于lsm -tree的存储引擎。
Memtable switch: During this process, the current active memtable (the one current writes go to) is closed and turned into an Immutable memtable. At the same time, we will close the current WAL file and start a new one.
在这个过程中,当前的活动memtable(当前写入的对象)被关闭并变成一个不可变memtable。同时,我们将关闭当前的WAL文件并启动一个新的WAL文件。
Memtable / write buffer: the in-memory data structure that stores the most recent updates of the database. Usually it is organized in sorted order and includes a binary searchable index. See https://github.com/facebook/rocksdb/wiki/Basic-Operations#memtable-and-table-factories
内存中的数据结构,存储数据库的最新更新。通常它是按排序顺序组织的,并包括一个二进制可搜索索引。看到https://github.com/facebook/rocksdb/wiki/Basic-Operations memtable-and-table-factories
Merge operator: RocksDB supports a special operator Merge(), which is a delta record, merge operand, to the existing value. Merge operator is a user defined call-back class which can merge the merge operands. See https://github.com/facebook/rocksdb/wiki/Merge-Operator-Implementation
RocksDB支持一个特殊的操作符Merge(),这是一个增量记录,合并操作数,到现有的值。合并操作符是一个用户定义的回调类,它可以合并合并操作数。参见https://github.com/facebook/rocksdb/wiki/Merge-Operator-Implementation
Partitioned Filters: Partitioning a full bloom filter into multiple smaller blocks. See https://github.com/facebook/rocksdb/wiki/Partitioned-Index-Filters.
将bloom filter划分为多个更小的块。见https://github.com/facebook/rocksdb/wiki/Partitioned-Index-Filters。
Partitioned Index The binary search index block partitioned to multiple smaller blocks. See https://github.com/facebook/rocksdb/wiki/Partitioned-Index-Filters
二分搜索索引块被划分为多个更小的块。参见https://github.com/facebook/rocksdb/wiki/Partitioned-Index-Filters
perf context: an in-memory data structure to measure thread-local stats. It is usually used to measure per-query stats. See https://github.com/facebook/rocksdb/wiki/Perf-Context-and-IO-Stats-Context
内存中的数据结构,用于测量线程本地的统计信息。它通常用于测量每个查询的统计信息。参见https://github.com/facebook/rocksdb/wiki/Perf-Context-and-IO-Stats-Context
Pessimistic Transactions Using locks to provide isolation between multiple concurrent transactions. The default write policy is WriteCommitted.
使用锁在多个并发事务之间提供隔离。默认写策略为“writecomcommitted”。
PlainTable: An alternative format of SST file format, optimized for ramfs. See https://github.com/facebook/rocksdb/wiki/PlainTable-Format
SST文件格式的另一种格式,为ramfs优化。参见https://github.com/facebook/rocksdb/wiki/PlainTable-Format
Point lookup: In RocksDB, point lookup means reading one key using Get() or MultiGet().
在RocksDB中,点查找意味着使用Get()或MultiGet()读取一个键。
Prefix bloom filter: a special bloom filter that can be limitly used in iterators. Some file reads are avoided if an SST file or memtable doesn't contain the prefix of the lookup key extracted by the prefix extractor. See https://github.com/facebook/rocksdb/wiki/Prefix-Seek-API-Changes
一种特殊的bloom过滤器,可以在迭代器中有限地使用。如果SST文件或memtable不包含由前缀提取器提取的查找键的前缀,则可以避免某些文件读取。参见https://github.com/facebook/rocksdb/wiki/Prefix-Seek-API-Changes
Prefix extractor: a callback class that can extract prefix part of a key. This is most frequently used as the prefix used in prefix bloom filter. See https://github.com/facebook/rocksdb/blob/main/include/rocksdb/slice_transform.h
一个可以提取键的前缀部分的回调类。这是最常用的前缀使用前缀bloom过滤器。参见https://github.com/facebook/rocksdb/blob/main/include/rocksdb/slice_transform.h
Range lookup: Range lookup means reading a range of keys using an Iterator.
范围查找意味着使用Iterator读取一个范围内的键。
Rate limiter: it is used to limit the rate of bytes written to the file system by flush and compaction. See https://github.com/facebook/rocksdb/wiki/Rate-Limiter
它用于限制通过刷新和压缩写入文件系统的字节速率。参见https://github.com/facebook/rocksdb/wiki/Rate-Limiter
Recovery: the process of restarting a database after it failed or was closed.
数据库关闭或失败后重新启动数据库的过程。
Sequence number (SeqNum / Seqno): each write to the database will be assigned an auto-incremented ID number. The number is attached with the key-value pair in WAL file, memtable, and SST files. The sequence number is used to implement snapshot read, garbage collection in compactions, MVCC in transactions, and some other purposes.
每次对数据库的写入都会被分配一个自动递增的ID号。在WAL文件、memtable文件和SST文件中,该数字与键值对一起附加。序列号用于实现快照读取、压缩中的垃圾收集、事务中的MVCC以及其他一些目的。
Single delete: a special delete operation which only works when users never update an existing key: https://github.com/facebook/rocksdb/wiki/Single-Delete
一个特殊的删除操作,它只在用户从不更新现有key的情况下起作用:https://github.com/facebook/rocksdb/wiki/Single-Delete
Snapshot: a snapshot is a logical consistent point-in-time view, in a running DB. See https://github.com/facebook/rocksdb/wiki/RocksDB-Overview#gets-iterators-and-snapshots
快照是运行DB中逻辑上一致的时间点视图。看到https://github.com/facebook/rocksdb/wiki/RocksDB-Overview gets-iterators-and-snapshots
SST File (Data file / SST table): SST stands for Sorted Sequence Table. They are persistent files storing data. In the file keys are usually organized in sorted order so that a key or iterating position can be identified through a binary search.
SST表示排序序列表。它们是存储数据的持久文件。在文件中,键通常按排序顺序组织,以便通过二分查找可以识别键或迭代位置。
Statistics: an in-memory data structure that contains cumulative stats of live databases. https://github.com/facebook/rocksdb/wiki/Statistics
一种内存中的数据结构,包含实时数据库的累积统计信息。https://github.com/facebook/rocksdb/wiki/Statistics
Super Version: An internal concept of RocksDB. A super version consists of the list of SST files and blob files (a “version”) and the list of live mem tables at a certain point in time. Either a compaction or flush, or a mem table switch will cause a new “super version” to be created. An old “super version” can continue being used by on-going read requests. Old super versions will eventually be garbage collected after they are not needed anymore.
RocksDB的内部概念。一个超级版本包含SST文件列表和blob文件列表(一个“版本”),以及在某个时间点的活动mem表列表。压缩或刷新,或mem表开关将导致创建一个新的“超级版本”。一个旧的“超级版本”可以被持续的读请求继续使用。旧的超级版本在不再被需要后最终会被垃圾回收。
Table Properties: metadata stored in each SST file(stats block). It includes system properties that are generated by RocksDB and user defined table properties calculated by user defined call-backs. See https://github.com/facebook/rocksdb/blob/main/include/rocksdb/table_properties.h
元数据存储在每个SST文件(stats块)。它包括由RocksDB生成的系统属性和由用户自定义回调计算出的用户自定义表属性。参见https://github.com/facebook/rocksdb/blob/main/include/rocksdb/table_properties.h
Universal Compaction Style: an alternative compaction algorithm. See https://github.com/facebook/rocksdb/wiki/Universal-Compaction
另一种compaction算法。参见https://github.com/facebook/rocksdb/wiki/Universal-Compaction
Version: An internal concept of RocksDB. A version consists of all the live SST files and blob files (when using BlobDB) at a certain point in time. Once a flush or compaction finishes, a new “version” will be created because the list of live SST/blob files has changed. An old “version” can continue being used by on-going read requests or compaction jobs. Old versions will eventually be garbage collected.
RocksDB的内部概念。一个版本由某个时间点上的所有活动SST文件和blob文件(使用BlobDB时)组成。刷新或压缩完成后,将创建一个新的“版本”,因为活动SST/blob文件的列表已经更改。一个旧的“版本”可以被持续的读请求或压缩作业继续使用。旧版本最终将被垃圾回收。
Write stall: When flush or compaction is backlogged, RocksDB may actively slowdown writes to make sure flush and compaction can catch up. See https://github.com/facebook/rocksdb/wiki/Write-Stalls
当flush或compaction被积压时,RocksDB可能会主动减速写操作,以确保flush和compaction能够跟上进度。参见https://github.com/facebook/rocksdb/wiki/Write-Stalls
Write-Ahead-Log (WAL) or log: A log file used to recover data that is not yet flushed to SST files, during DB recovery. See https://github.com/facebook/rocksdb/wiki/Write-Ahead-Log-File-Format
DB恢复过程中,用于恢复尚未写入SST文件的数据的日志文件。参见https://github.com/facebook/rocksdb/wiki/Write-Ahead-Log-File-Format
WriteCommitted The default write policy in pessimistic transactions, which buffers the writes in memory and write them into the DB upon commit of the transaction.
悲观事务中的默认写策略,它将写操作缓冲在内存中,并在事务提交时将其写入数据库。
WritePrepared A write policy in pessimistic transactions that buffers the writes in memory and write them into the DB upon prepare if it is a 2PC transaction or commit otherwise. See https://github.com/facebook/rocksdb/wiki/WritePrepared-Transactions
悲观事务中的写策略,如果是2PC事务,则将写操作缓冲在内存中,并在准备时将其写入数据库,否则提交。参见https://github.com/facebook/rocksdb/wiki/WritePrepared-Transactions
WriteUnprepared A write policy in pessimistic transactions that avoid the need for larger memory buffers by writing data to the DB as they are sent by the transaction. See https://github.com/facebook/rocksdb/wiki/WritePrepared-Transactions
悲观事务中的写策略,在事务发送数据时将数据写入数据库,从而避免需要更大的内存缓冲区。参见https://github.com/facebook/rocksdb/wiki/WritePrepared-Transactions