向cassandra db集群(当前只有一个节点)添加一个新节点和超过500GB的数据

向cassandra db集群(当前只有一个节点)添加一个新节点和超过500GB的数据,cassandra,Cassandra,在一个项目中,我有一个cassandra实例正在生产中运行,我使用c#cassandradriver连接了数十万个传感器,将数据转储到cassandra服务器 服务器有一个2 TB的SSD 到目前为止,我没有遇到任何性能问题,但我计划添加更多传感器, 我只有一个键空间,该键空间中只有一个表。该表的结构如下 CREATE TABLE xxxxkeyspace.sensorreadings ( signalid int, monthyear int, fromtime

在一个项目中,我有一个cassandra实例正在生产中运行,我使用c#cassandradriver连接了数十万个传感器,将数据转储到cassandra服务器

服务器有一个2 TB的SSD

到目前为止,我没有遇到任何性能问题,但我计划添加更多传感器, 我只有一个键空间,该键空间中只有一个表。该表的结构如下

    CREATE TABLE xxxxkeyspace.sensorreadings (
    signalid int,
    monthyear int,
    fromtime bigint,
    totime bigint,
    avg decimal,
    insertdate bigint,
    max decimal,
    min decimal,
    readings text,
    PRIMARY KEY (( signalid, monthyear ), fromtime, totime)
    ) WITH bloom_filter_fp_chance = 0.01
AND comment = ''
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99.0PERCENTILE'
AND caching = {
    'keys' : 'ALL',
    'rows_per_partition' : 'NONE'
}
AND compression = {
    'chunk_length_in_kb' : 64,
'class' : 'LZ4Compressor',
'crc_check_chance' : 1.0,
'enabled' : true
}
AND compaction = {
'bucket_high' : 1.5,
'bucket_low' : 0.5,
'class' : 'SizeTieredCompactionStrategy',
'enabled' : true,
'max_threshold' : 32,
'min_sstable_size' : 50,
'min_threshold' : 4,
'tombstone_compaction_interval' : 86400,
'tombstone_threshold' : 0.2,
'unchecked_tombstone_compaction' : false
};
当我运行nodetool状态时,它会显示键空间在SSD上占用了超过550GB的数据


如果我在运行时向集群添加更多节点,在生产过程中是否会出现任何问题。注:我不能容忍停机时间超过一小时。

您可以在不停机的情况下添加新节点,一旦在现有环中添加新节点,范围移动开始,一旦在新节点引导过程中复制与所获取令牌对应的所有数据,范围移动完成。新节点的引导过程完成后,所有负责的写入请求将根据其令牌转发到此节点。

现在唯一剩下的就是清理旧节点中的数据,以查找已移动到新节点的令牌,这可以在以后随时使用nodetool cleanup命令完成

您可以在不停机的情况下添加新节点,一旦在现有环中添加了新节点,范围移动就会开始,一旦在新节点引导过程中复制了与所获取令牌对应的所有数据,范围移动就会开始。新节点的引导过程完成后,所有负责的写入请求将根据其令牌转发到此节点。
现在唯一剩下的就是清理旧节点中的数据,以查找已移动到新节点的令牌,这可以在以后随时使用nodetool cleanup命令完成

相关的:相关的: