rows_merged在compactionhistory中意味着什么?

2024-03-26

当我发出

$ nodetool compactionhistory

I get

. . . compacted_at        bytes_in       bytes_out      rows_merged
. . . 1404936947592       8096           7211           {1:3, 3:1}

什么是{1:3, 3:1} mean?我能找到的唯一文档是this http://www.datastax.com/documentation/cassandra/2.1/cassandra/tools/toolsCompactionHistory.html其中指出

合并的分区数

这并不能解释为什么有多个值以及冒号的含义。


所以基本上它意味着 {tables:rows} 例如 {1:3, 3:1} 意味着从一个 sstable (1:3) 中取出 3 行,从 3 (3:1) sstable 中取出 1 行,所有这些都是为了压缩操作中的一个sstable。

我自己尝试了一下,这是一个例子,希望对您有所帮助:

创建键空间和表:

cqlsh> create keyspace space1 WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};

cqlsh> create TABLE space1.tb1 ( key text, val1 text, primary KEY (key));

cqlsh> INSERT INTO space1.tb1 (key, val1 ) VALUES ( 'key1','111');
cqlsh> INSERT INTO space1.tb1 (key, val1 ) VALUES ( 'key2','222');
cqlsh> INSERT INTO space1.tb1 (key, val1 ) VALUES ( 'key3','333');
cqlsh> INSERT INTO space1.tb1 (key, val1 ) VALUES ( 'key4','444');
cqlsh> INSERT INTO space1.tb1 (key, val1 ) VALUES ( 'key5','555');
cqlsh> exit

现在我们刷新以创建 sstable

$ nodetool flush space1

我们看到只创建了该表的一个版本

$ sudo ls -lR /var/lib/cassandra/data/space1

/var/lib/cassandra/data/space1:
total 4
drwxr-xr-x. 2 cassandra cassandra 4096 Feb  3 12:51 tb1

/var/lib/cassandra/data/space1/tb1:
total 32
-rw-r--r--. 1 cassandra cassandra   43 Feb  3 12:51 space1-tb1-jb-1-CompressionInfo.db
-rw-r--r--. 1 cassandra cassandra  146 Feb  3 12:51 space1-tb1-jb-1-Data.db
-rw-r--r--. 1 cassandra cassandra   24 Feb  3 12:51 space1-tb1-jb-1-Filter.db
-rw-r--r--. 1 cassandra cassandra   90 Feb  3 12:51 space1-tb1-jb-1-Index.db
-rw-r--r--. 1 cassandra cassandra 4389 Feb  3 12:51 space1-tb1-jb-1-Statistics.db
-rw-r--r--. 1 cassandra cassandra   80 Feb  3 12:51 space1-tb1-jb-1-Summary.db
-rw-r--r--. 1 cassandra cassandra   79 Feb  3 12:51 space1-tb1-jb-1-TOC.txt

检查 sstable2json 我们看到我们的数据

$ sudo -u cassandra /usr/bin/sstable2json /var/lib/cassandra/data/space1/tb1/space1-tb1-jb-1-Data.db
[
{"key": "6b657935","columns": [["","",1422967847005000], ["val1","555",1422967847005000]]},
{"key": "6b657931","columns": [["","",1422967817740000], ["val1","111",1422967817740000]]},
{"key": "6b657934","columns": [["","",1422967840622000], ["val1","444",1422967840622000]]},
{"key": "6b657933","columns": [["","",1422967832341000], ["val1","333",1422967832341000]]},
{"key": "6b657932","columns": [["","",1422967825116000], ["val1","222",1422967825116000]]}
]

此时,“notetoolcompactionhistory”没有显示该表的任何内容,但无论如何让我们运行compact来看看我们得到了什么(向右滚动)

$ nodetool compactionhistory | awk 'NR == 2 || /space1/'
id                                       keyspace_name      columnfamily_name            compacted_at              bytes_in       bytes_out      rows_merged
5725f890-aba4-11e4-9f73-351725b0ac5b     space1             tb1                          1422968305305             146            146            {1:5}

现在让我们删除两行,并刷新

cqlsh> delete from space1.tb1 where key='key1';
cqlsh> delete from space1.tb1 where key='key2';
cqlsh> exit

$ nodetool flush space1

$ sudo ls -l /var/lib/cassandra/data/space1/tb1/
[sudo] password for datastax: 
total 64
-rw-r--r--. 1 cassandra cassandra   43 Feb  3 12:58 space1-tb1-jb-2-CompressionInfo.db
-rw-r--r--. 1 cassandra cassandra  146 Feb  3 12:58 space1-tb1-jb-2-Data.db
-rw-r--r--. 1 cassandra cassandra  336 Feb  3 12:58 space1-tb1-jb-2-Filter.db
-rw-r--r--. 1 cassandra cassandra   90 Feb  3 12:58 space1-tb1-jb-2-Index.db
-rw-r--r--. 1 cassandra cassandra 4393 Feb  3 12:58 space1-tb1-jb-2-Statistics.db
-rw-r--r--. 1 cassandra cassandra   80 Feb  3 12:58 space1-tb1-jb-2-Summary.db
-rw-r--r--. 1 cassandra cassandra   79 Feb  3 12:58 space1-tb1-jb-2-TOC.txt
-rw-r--r--. 1 cassandra cassandra   43 Feb  3 13:02 space1-tb1-jb-3-CompressionInfo.db
-rw-r--r--. 1 cassandra cassandra   49 Feb  3 13:02 space1-tb1-jb-3-Data.db
-rw-r--r--. 1 cassandra cassandra   16 Feb  3 13:02 space1-tb1-jb-3-Filter.db
-rw-r--r--. 1 cassandra cassandra   36 Feb  3 13:02 space1-tb1-jb-3-Index.db
-rw-r--r--. 1 cassandra cassandra 4413 Feb  3 13:02 space1-tb1-jb-3-Statistics.db
-rw-r--r--. 1 cassandra cassandra   80 Feb  3 13:02 space1-tb1-jb-3-Summary.db
-rw-r--r--. 1 cassandra cassandra   79 Feb  3 13:02 space1-tb1-jb-3-TOC.txt

让我们检查表内容

$ sudo -u cassandra /usr/bin/sstable2json /var/lib/cassandra/data/space1/tb1/space1-tb1-jb-2-Data.db
[
{"key": "6b657935","columns": [["","",1422967847005000], ["val1","555",1422967847005000]]},
{"key": "6b657931","columns": [["","",1422967817740000], ["val1","111",1422967817740000]]},
{"key": "6b657934","columns": [["","",1422967840622000], ["val1","444",1422967840622000]]},
{"key": "6b657933","columns": [["","",1422967832341000], ["val1","333",1422967832341000]]},
{"key": "6b657932","columns": [["","",1422967825116000], ["val1","222",1422967825116000]]}
]

$ sudo -u cassandra /usr/bin/sstable2json /var/lib/cassandra/data/space1/tb1/space1-tb1-jb-3-Data.db
[
{"key": "6b657931","metadata": {"deletionInfo": {"markedForDeleteAt":1422968551313000,"localDeletionTime":1422968551}},"columns": []},
{"key": "6b657932","metadata": {"deletionInfo": {"markedForDeleteAt":1422968553322000,"localDeletionTime":1422968553}},"columns": []}
]

现在让我们紧凑

$ nodetool compact space1

正如预期的那样,现在只有一个稳定的

$ sudo ls -l /var/lib/cassandra/data/space1/tb1/
total 32
-rw-r--r--. 1 cassandra cassandra   43 Feb  3 13:05 space1-tb1-jb-4-CompressionInfo.db
-rw-r--r--. 1 cassandra cassandra  133 Feb  3 13:05 space1-tb1-jb-4-Data.db
-rw-r--r--. 1 cassandra cassandra  656 Feb  3 13:05 space1-tb1-jb-4-Filter.db
-rw-r--r--. 1 cassandra cassandra   90 Feb  3 13:05 space1-tb1-jb-4-Index.db
-rw-r--r--. 1 cassandra cassandra 4429 Feb  3 13:05 space1-tb1-jb-4-Statistics.db
-rw-r--r--. 1 cassandra cassandra   80 Feb  3 13:05 space1-tb1-jb-4-Summary.db
-rw-r--r--. 1 cassandra cassandra   79 Feb  3 13:05 space1-tb1-jb-4-TOC.txt

现在让我们检查新马厩的内容,我们可以看到墓碑

$ sudo -u cassandra /usr/bin/sstable2json /var/lib/cassandra/data/space1/tb1/space1-tb1-jb-4-Data.db
[
{"key": "6b657935","columns": [["","",1422967847005000], ["val1","555",1422967847005000]]},
{"key": "6b657931","metadata": {"deletionInfo": {"markedForDeleteAt":1422968551313000,"localDeletionTime":1422968551}},"columns": []},
{"key": "6b657934","columns": [["","",1422967840622000], ["val1","444",1422967840622000]]},
{"key": "6b657933","columns": [["","",1422967832341000], ["val1","333",1422967832341000]]},
{"key": "6b657932","metadata": {"deletionInfo": {"markedForDeleteAt":1422968553322000,"localDeletionTime":1422968553}},"columns": []}
]

最后让我们检查压缩历史记录(向右滚动)

$ nodetool compactionhistory | awk 'NR == 2 || /space1/'
id                                       keyspace_name      columnfamily_name            compacted_at              bytes_in       bytes_out      rows_merged
5725f890-aba4-11e4-9f73-351725b0ac5b     space1             tb1                          1422968305305             146            146            {1:5}
46112600-aba5-11e4-9f73-351725b0ac5b     space1             tb1                          1422968706144             195            133            {1:3, 2:2}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

rows_merged在compactionhistory中意味着什么? 的相关文章

随机推荐

  • mvc4 中没有为此对象定义无参数构造函数

    using Michell ClaimsAuditAdmin Models using Mitchell ClaimsAuditAdmin Repositories using Mitchell ClaimsAuditAdmin Web M
  • 为什么 sys.exit() 会导致回溯?

    根据如何在不回溯的情况下退出Python https stackoverflow com q 1187970 3357935 呼叫sys exit 在 Python 脚本中应该静默退出而不进行回溯 import sys sys exit 0
  • 面向 Android 12 及更高版本的应用需要为“android:exported”指定显式值 [Cordova]

    当我在 GitHub 中运行 Apk 时 出现错误 当我在 GitHub 中构建 Apk 时 无法定义清单内的某些内容 因为它每次都是新鲜构建的 我所能做的就是在 Config Xml 文件中 添加后android exported fal
  • 在 Android Edittext 中设置特定文本的文本颜色

    如果用户键入一个字符串并且它包含 我想将文本的颜色更改为红色 我尝试过使用 textwatcher 但出现堆栈溢出错误 我只想在 开头时更改颜色 代码如下 topic addTextChangedListener new TextWatch
  • 可重入锁用例

    我对Java的多线程概念很差 我正在了解 ReentrantLock 的功能和用法 我发现它比同步更灵活 并且添加了更多功能 我可以看到上面提到的例子并且我很好地理解了 我无法弄清楚它到底对业务有何帮助的实时场景 我认为最好避免僵局 有人可
  • 对话框中的 Xtext DSL 嵌入式编辑器

    我是 xtext 的新手 我已经使用 xtext 创建了 DSL 并且生成了工件 这生成了具有许多功能 如内容辅助和语法着色 的编辑器 现在的问题是我想将编辑器嵌入到对话框中 为了实现此目的 我使用嵌入式编辑器 我能够获取嵌入式编辑器并将其
  • C++ 父类对齐

    是否可以指定父类的对齐方式 例如类似的东西 未编译 template
  • 检查是否已经是用户然后插入数据库 php

    如果我想插入数据库 我的代码可以工作 但是我检查用户是否已经存在不起作用 我认为这个想法是检查该用户名是否已经存在一行 如果是 则不要将该用户添加到数据库中 否则 email POST email password password has
  • 全局应用程序中的个人名称:存储什么[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Storing 个人姓名 http en wikipedia org wiki Personal name对于来自许多不同国家的用户使
  • 软件包“pecl.php.net/intl”没有可用的版本

    我正在尝试为 php 安装 intl 当我跑步时sudo pecl install intl它给了我一个错误No releases available for package pecl php net intl 我尝试过清除缓存 也尝试过升
  • 使用 bash 从文本文件中读取字符

    有谁知道如何使用 bash 脚本从文件中读取前两个字符 有问题的文件实际上是一个 I O 驱动程序 其中没有换行符 并且实际上无限长 The read内置支持 n范围 echo Two chars while read n 2 i do e
  • 从 Web 项目中排除 node_modules 目录

    如果我右键单击我的项目并选择 发布 Web 项目 我将收到有关目录名称长度的错误 我已经追踪到了node modules 我想从进程中排除该目录及其内容 我们使用一个 pubxml文件 我尝试添加以下内容之一或以下内容的组合
  • 强制渲染已计算的反应元素

    我正在尝试构建一个闪亮的应用程序 通过不同的 render 函数输出多个结果 问题是其中一个结果需要一些时间来计算 所以我希望shiny能够尽快渲染出快速的结果 这是一些代码来说明 ui R library shiny shinyUI fl
  • C++20 模块导出模板实例化

    我正在创建一个库 并且 C 20 模块内有一个类模板 我想添加一个实例化 以减少使用我的库的每个项目的编译时间 这些不同的实现是否等效 或者是否有更好的方法来实现 1 mod cpp export module mod export tem
  • QProcess未知错误

    我遇到了奇怪的问题 QProcess 只是不工作 并且错误未知 我在标头中有全局变量 QProcess importModule 我得到了这个功能 我尝试了start and startDetached顺便说一句方法 void App op
  • jQuery UI 在搜索之前自动完成显示结果

    我希望在我的项目中在关注自动完成输入之前显示一些初步结果 这些结果应该与自动完成 ajax 请求的结果相同 我可以通过自动完成的标准选项来做到这一点 还是应该编写相同的 JavaScript 代码 您应该设置minLength选项0 如果您
  • 如何使用javascript下载网页[重复]

    这个问题在这里已经有答案了 可能的重复 Javascript 可以读取任何网页的源代码吗 https stackoverflow com questions 680562 can javascript read the source of
  • 打印 C 字符串(UTF-8)时的 NSLog() 与 printf()

    我注意到 如果我尝试使用格式说明符 s 打印包含 UTF 8 字符串表示形式的字节数组 printf 说得对 但是NSLog 得到它乱码 即 每个字节按原样打印 因此例如 被打印为2个字符 这很奇怪 因为我一直认为NSLog 只是print
  • 如何根据条件 $push 字段?

    我试图在 MongoDB 聚合管道的 group 阶段有条件地将字段推入数组 本质上 我有包含用户名的文档以及他们执行的一系列操作 如果我将用户操作分组如下 group id name user name actions push acti
  • rows_merged在compactionhistory中意味着什么?

    当我发出 nodetool compactionhistory I get compacted at bytes in bytes out rows merged 1404936947592 8096 7211 1 3 3 1 什么是 1