什么是 SSTable?

在 BigTable/GFS 和 Cassandra 术语中,SSTable 的定义是什么?

81737 次浏览

排序字符串表(借自谷歌)是一个按键排序的键/值字符串对文件

”SSTable 提供从键到值的持久的、有序的不可变映射,其中键和值都是任意字节字符串。提供了查找与指定键关联的值的操作,并在指定键范围内迭代所有键/值对。在内部,每个 SSTable 包含一个块序列(通常每个块的大小为64KB,但这是可配置的)。块索引(存储在 SSTable 的末尾)用于定位块; 当打开 SSTable 时,索引加载到内存中。只需要一个磁盘查找就可以执行查找: 我们首先在内存索引中执行二进制搜索,然后从磁盘读取适当的块,从而找到适当的块。另外,SSTable 可以完全映射到内存中,这样我们就可以在不接触磁盘的情况下执行查找和扫描。”

药片以 SSTables 的形式储存。

SSTable (直接映射到 GFS)是一种基于键值的不可变存储,它存储大量数据,每个大小为64KB。

定义:

  • 键索引: 键和起始位置
  • 块是 GFS 中的一个存储单元,副本管理是按块进行的
  • SSTable (engl.Sorted String Table)是一个键/值字符串文件 对,按键排序。

  • SSTable 提供了从键到 值,其中键和值都是任意字节字符串。

  • 在内部,每个 SSTable 都包含一个块序列(通常是
    每个块的大小为64KB,但这是可配置的)

SSTable 是指基于键-值对的 “已排序的字符串表”。在 Cassandra 中,SSTables 是不可变的,并按键排序。