关于卡桑德拉TWCS压实的问题

时间:2017-01-04 04:47:23

标签: cassandra

  1. 为了在C * 2.2中使用TWCS,我从https://github.com/jeffjirsa/twcs代码行构建了jar并将其添加到我的lib目录中。 Cqlsh适用于TWCS,但看起来python驱动程序不能识别新的类和配置选项。我将cassandra-env.sh中的CLASSPATH设置为lib目录。

    import ssl
    from cassandra.cluster import Cluster
    from cassandra.auth import PlainTextAuthProvider
    
    ap = PlainTextAuthProvider(username='cassandra', password='cassandra')
    ip = '127.0.0.1'
    ca_path = '/a/ca.pem'
    cluster = Cluster(contact_points=[ip], port=9042, protocol_version=2, auth_provider=ap, ssl_options={'ca_certs': ca_path, 'cert_reqs': ssl.CERT_REQUIRED})
    session = cluster.connect()
    
    create_statement = "CREATE TABLE IF NOT EXISTS test.agg_errors(time timestamp, timeid uuid, datacenter text,app_name text, error_message text, PRIMARY KEY(time,timeid))  WITH CLUSTERING ORDER BY (timeid DESC)  AND  default_time_to_live = 86400 AND compaction = { 'class':'com.jeffjirsa.cassandra.db.compaction.TimeWindowCompactionStrategy','compaction_window_unit': 'HOURS','compaction_window_size': '1' , 'unchecked_tombstone_compaction':'true'} AND gc_grace_seconds = '43200'"
    
    session.execute(create_statement)
    
  2. 我收到错误:

        ConfigurationException: Failed to validate compaction options: {compaction_window_unit=HOURS, compaction_window_size=2}
    

    另外,在进一步调试时,我注意到这种行为并不一致。上面的脚本在十次运行中运行良好,执行的其余部分抛出错误。

    1. 我可以将STCS的子属性添加到TWCS,以调整窗口内的STCS行为吗?

    2. 我的窗口大小比ttl小得多,让我们说窗口1小时和1天,在这种情况下是从磁盘中删除1天后过期的SStables?检查过期的SStables的间隔是多少?

    3. 我在一篇关于控制上述行为的exprired_sstable_check_frequency_seconds的博文中读到过?这可以用来控制支票的频率吗?

    4. 根据哪些建议我可以选择相对于表格的ttl的最佳compaction_window_size?

    5. 注意:我的Cassandr版本2.2.4。补丁中的版本是2.2.5,我希望这不应该是一个问题。

0 个答案:

没有答案