【问题标题】:how to determine if the partition being deleted existed or not如何判断被删除的分区是否存在
【发布时间】:2019-06-26 23:13:35
【问题描述】:

如果分区存在,有没有办法确定delete 操作是否真的删除了一个分区?我正在运行以下cql 查询。我希望在指定无效分区时会出现错误,但我没有

cqlsh:mypartition> select * from users;

 bucket | email         | authprovider | firstname | lastname | confirmed | hasher     | id                                   | password     | salt
--------+---------------+--------------+-----------+----------+-----------+------------+--------------------------------------+--------------+------
      1 | test@test.com |  credentials |        fn |       ln |     False | someHasher | 11111111-1111-1111-1111-111111111111 | somePassword |

(1 rows)
cqlsh:mypartition> DELETE FROM users WHERE bucket=1 AND email='test1@test.com';
cqlsh:mypartition> select * from users;

 bucket | email         | authprovider | firstname | lastname | confirmed | hasher     | id                                   | password     | salt
--------+---------------+--------------+-----------+----------+-----------+------------+--------------------------------------+--------------+------
      1 | test@test.com |  credentials |        fn |       ln |     False | someHasher | 11111111-1111-1111-1111-111111111111 | somePassword |

(1 rows)
cqlsh:mypartition> DELETE FROM users WHERE bucket=1 AND email='test@test.com';
cqlsh:codingjedi> select * from users;

 bucket | email | authprovider | firstname | lastname | confirmed | hasher | id | password | salt
--------+-------+--------------+-----------+----------+-----------+--------+----+----------+------

(0 rows)
cqlsh:codingjedi>

【问题讨论】:

    标签: cassandra-3.0


    【解决方案1】:

    你不能。删除只是写入,Cassandra 会在压缩中对其进行排序。

    【讨论】:

    • 对。请注意,这并不是一个不幸的缺失功能,而是设计使然:这就是 Cassandra 实现其快速写入性能的方式。特别是在低 IOPS 旋转磁盘上。在 Cassandra 中,写入(和删除,它只是写入删除 - 也称为“墓碑”)只是被写入内存和顺序文件 - 但不需要读取来检查以前的值。
    猜你喜欢
    • 2011-05-19
    • 2022-01-23
    • 2015-05-02
    • 1970-01-01
    • 2013-05-12
    • 2014-08-06
    • 1970-01-01
    • 2012-02-05
    • 2012-06-02
    相关资源
    最近更新 更多