Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra 卡桑德拉墓碑跨过门槛_Cassandra_Tombstone - Fatal编程技术网

Cassandra 卡桑德拉墓碑跨过门槛

Cassandra 卡桑德拉墓碑跨过门槛,cassandra,tombstone,Cassandra,Tombstone,在日志中,我看到了墓碑警告阈值 从ks.tbl中读取查询SELECT*的411个活动行和1644个逻辑删除单元格,其中key=XYZ LIMIT 5000参见逻辑删除警告阈值 这是Cassandra 3.11.3,我看到这个表有两个sstables,分区XYZ只存在于一个文件中。现在我使用sstabledump将这个sstable转储到json中。我只提取了这个分区的数据,我看到其中只有411行。所有这些都是活动/实时记录,所以我不知道这些墓碑是从哪里来的 此表具有集合列,并且在插入集合列时,存

在日志中,我看到了墓碑警告阈值

从ks.tbl中读取查询SELECT*的411个活动行和1644个逻辑删除单元格,其中key=XYZ LIMIT 5000参见逻辑删除警告阈值

这是Cassandra 3.11.3,我看到这个表有两个sstables,分区XYZ只存在于一个文件中。现在我使用sstabledump将这个sstable转储到json中。我只提取了这个分区的数据,我看到其中只有411行。所有这些都是活动/实时记录,所以我不知道这些墓碑是从哪里来的

此表具有集合列,并且在插入集合列时,存在集合列的单元格墓碑。在显示的警告中,收集单元墓碑是否被计为墓碑单元

做了一个小测试,看看收集的墓碑是否被算作墓碑,但事实似乎并非如此。所以我想知道在我上面的问题中那些墓碑是从哪里来的

CREATE TABLE tbl (
    col1 text,
    col2 text,
    c1 int,
    col3 map<text, text>,
    PRIMARY KEY (col1, col2)
) WITH CLUSTERING ORDER BY (col2 ASC)

cassandra@cqlsh:dev_test> insert into tbl (col1 , col2 , c1, col3 ) values('3','3',3,{'key':'value'});
cassandra@cqlsh:dev_test> select * from tbl where col1 = '3';
 col1 | col2 | c1 | col3
----------------+----------+----+------------------
              3 |        3 |  3 | {'key': 'value'}
(1 rows)

Tracing session: 4c2a1894-3151-11e9-838d-29ed5fcf59ee
 activity                                                                                 | timestamp                  | source        | source_elapsed | client
------------------------------------------------------------------------------------------+----------------------------+---------------+----------------+-----------
                                                                       Execute CQL3 query | 2019-02-15 18:41:25.145000 | 10.216.1.1 |              0 | 127.0.0.1
                  Parsing select * from tbl where col1 = '3'; [CoreThread-3]              | 2019-02-15 18:41:25.145000 | 10.216.1.1 |            177 | 127.0.0.1
                                                       Preparing statement [CoreThread-3] | 2019-02-15 18:41:25.145001 | 10.216.1.1 |            295 | 127.0.0.1
                                        Reading data from [/10.216.1.1] [CoreThread-3]    | 2019-02-15 18:41:25.146000 | 10.216.1.1 |            491 | 127.0.0.1
                                Executing single-partition query on tbl [CoreThread-2]    | 2019-02-15 18:41:25.146000 | 10.216.1.1 |            770 | 127.0.0.1
                                              Acquiring sstable references [CoreThread-2] | 2019-02-15 18:41:25.146000 | 10.216.1.1 |            897 | 127.0.0.1
 Skipped 0/1 non-slice-intersecting sstables, included 0 due to tombstones [CoreThread-2] | 2019-02-15 18:41:25.146000 | 10.216.1.1 |           1096 | 127.0.0.1
                                 Merged data from memtables and 1 sstables [CoreThread-2] | 2019-02-15 18:41:25.146000 | 10.216.1.1 |           1235 | 127.0.0.1
                                    Read 1 live rows and 0 tombstone cells [CoreThread-2] | 2019-02-15 18:41:25.146000 | 10.216.1.1 |           1317 | 127.0.0.1
                                                                         Request complete | 2019-02-15 18:41:25.146529 | 10.216.1.1 |           1529 | 127.0.0.1
[root@localhost tbl-8aaa6bc1315011e991e523330936276b]# sstabledump aa-1-bti-Data.db 
[
  {
    "partition" : {
      "key" : [ "3" ],
      "position" : 0
    },
    "rows" : [
      {
        "type" : "row",
        "position" : 41,
        "clustering" : [ "3" ],
        "liveness_info" : { "tstamp" : "2019-02-15T18:36:16.838103Z" },
        "cells" : [
          { "name" : "c1", "value" : 3 },
          { "name" : "col3", "deletion_info" : { "marked_deleted" : "2019-02-15T18:36:16.838102Z", "local_delete_time" : "2019-02-15T18:36:17Z" } },
          { "name" : "col3", "path" : [ "key" ], "value" : "value" }
        ]
      }
    ]
  }```

如果使用相同的主键插入集合数据映射/列表/集,Cassandra不知道以前的数据是否存在,只需插入一个墓碑,以防止与以前的版本意外合并。如果更新完整集合而不是集合上的更新操作,也会发生同样的情况。您可以在以下博客文章中找到更多信息

如果不需要对集合执行部分更新,则最好使用冻结的集合:

如果更新/替换它们,则不会为它们生成墓碑 它们更有效地保存在磁盘上并从中读取。
如果使用相同的主键插入集合数据映射/列表/集,Cassandra不知道以前的数据是否存在,只需插入一个墓碑,以防止与以前的版本意外合并。如果更新完整集合而不是集合上的更新操作,也会发生同样的情况。您可以在以下博客文章中找到更多信息

如果不需要对集合执行部分更新,则最好使用冻结的集合:

如果更新/替换它们,则不会为它们生成墓碑 它们更有效地保存在磁盘上并从中读取。
什么是表结构以及如何执行更新/删除?表中有集合,更新/删除不经常发生,只是插入。表结构是什么,以及如何执行更新/删除?表中有集合,更新/删除不经常发生,只是插入。