我在一个由三台机器组成的集群上使用cassandra 2.1.12,每台机器都有32 GB的RAM和4个内核(在Amazon AWS上)
我使用的是cassandra的所有默认配置。
我用它来进行我的网站事件分析(时间序列数据),每天的数据约为1 GB,复制因子为3。
我的数据在每台机器上已经增长到85 GB左右,现在它的读取延迟约为4.5秒(4000毫秒)
我的行很少更新,所以,我没有使用Levelorder Compaction。我的写入性能良好,延迟约为.03ms
编辑:
以下是ColumnFamily的定义:
CREATE TABLE TimeSeriesData(
logyear int,
logmonth int,
logdate int,
logdatetime timestamp,
cookie text,
sessionid text,
...
PRIMARY KEY (logyear, logmonth, logdate, logdatetime, cookie)
) WITH CLUSTERING ORDER BY (logmonth ASC, logdate ASC, logdatetime ASC, cookie ASC)
AND bloom_filter_fp_chance = 0.01
AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}
AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}
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';
根据我的分区键(当前是logy-time)。所以,我的整个数据都在一个分区中。分区器负责在集群中的节点之间分配行组(按分区键)。
在这种情况下,它是不是一个sinlge节点?
另外,为什么尽管从单个分区读取数据,但读取延迟却非常差?
一个SSTable可以有多个分区吗?反之亦然?
我正在使用org。阿帕奇。卡桑德拉。dht。随机分区器
Moverover,对于上面提到的每天增量数据为1GB的列系列,空闲分区键应该是什么。
你正在发布你认为是一个问题的帖子,但它可能涉及更多问题——可能有许多不同的问题,都表现为高延迟。
最有可能的解释是由于糟糕的数据模型导致的高垃圾回收机制。然而,你给我们的信息很少。
查看nodetool cfstats
——cfstats中的延迟是否与您看到的延迟相匹配?最大分区大小是多少?
我已经建立了一个具有3个节点的Cassandra。在客户端,我使用的是Datasatx java驱动程序,我的查询如下 正如我们在上面的查询中看到的,我希望最大的“cluster_column”小于10。我有宽行。所以当数据在行间增长时,读取延迟会增加。 我只使用密钥缓存和级别压缩策略。MemTable大小保持为2048 MB。 我可以调整什么参数来降低服务器级别的读取延迟。 请回复 提前感谢
大家好,已经有人问过类似的问题,但我想我们有点不同的问题: 我们使用Cassandra 2.2.6一个节点安装(并将升级到最新的)。现在我们有可怕的查询时间,有时会写超时。 为了进行比较,有一个不同的表包含大约10万条记录,其构造与上述非常相似 区别在于第一个包含大量地图和UDT。在dev center中进行简单测试选择*from。。。限制999;(省略任何Lucene索引等)最后一个显示183m
我把来自https://bitnami.com/stack/cassandra的卡珊德拉安装在云机器上。我克隆了这台机器,所以我有2台机器。一个运行cassandra服务器(1节点cassandra集群),另一个充当客户端并向第一个服务器发出查询。 我使用YCSB-https://github.com/brianfrankcooper/YCSB来执行基准测试。我观察到服务器上的读取延迟非常低,只有
我正在开发Azure Managed Cassandra,目前正在观察从一个分区读取数据时的读取性能问题。卡珊德拉密钥空间 在一个RF为3的数据中心中使用SimpleStrategy创建了密钥空间。下面是表格说明: 对于单分区查询,响应时间大约为300到400毫秒。 我启用了跟踪来检查系统跟踪,下面是观察结果 对于上述项目 ID(1001),我们有 2000 条记录。 当我们将RF指定为3时,为什
我们有一个20节点的Cassandra集群,运行大量读取请求(峰值约900k/sec)。我们的数据集相当小,所以所有内容都是直接从内存(OS页面缓存)提供的。我们的数据模型非常简单(只是一个键/值),所有读取都是在一致性级别1(RF 3)下执行的。 我们将JavaDatastax驱动程序与TokenAware策略一起使用,因此所有的读取都应该直接到达一个拥有请求数据的节点。 这些是从其中一个节点提
我正在用一个简单的模型测试卡桑德拉的性能。 我使用pycassa,get/xget函数()获取行键的100列。但在服务器上读取延迟约为15毫秒。 nodetool cfstats 这种类型的延迟是惊人的!当nodetool信息显示读取直接命中行缓存时。 谁能告诉我为什么cassandra在读取行缓存时要花这么多时间?