- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在考虑在 Cassandra 中实现一个具有很长行(每行数十万到数百万列)的 CF。
使用完全虚拟的数据,我已将 200 万列插入到一行中(均匀间隔)。如果我执行切片操作以获得 20 列,那么当您在行的更下方执行切片操作时,我会注意到性能大幅下降。
对于大多数列,我似乎能够在 10-40 毫秒内提供切片结果,但是当您接近行尾时,性能遇到瓶颈,响应时间从 1,800,000 标记处的 43 毫秒逐渐增加到 214 毫秒在 1,900,000 和 435ms 在 1,999,900! (所有切片的宽度相等)。
我无法解释为什么当您到达行尾时性能会出现这种大幅下降。有人可以就 Cassandra 在内部做什么来造成这样的延迟提供一些指导吗?行缓存已关闭,几乎所有内容都是默认的 Cassandra 1.0 安装。
它应该能够支持每行多达 20 亿列,但以这种速度提高性能意味着它不能在实际情况下用于非常长的行。
非常感谢。
警告,我一次并行处理 10 个请求,这就是为什么它们比我预期的要慢一点,但这是对所有请求的公平测试,甚至只是串行执行它们,这很奇怪第 1,800,000 次和第 1,900,000 次记录之间的退化。
我还注意到,当每行只有 200,000 列时,仅对单个项目执行反向切片时的性能非常差:
query.setRange(end, start, false, 1);
最佳答案
一个很好的资源是 Aaron Morton 在 Cassandra 上的博客文章 Reversed Comparators .从文章:
Recall from my post on Cassandra Query Plans that once rows get to a certain size they include an index of the columns. And that the entire index must be read whenever any part of the index needs to be used, which is the case when using a Slice Range that specifies start or reversed. So the fastest slice query to run against a row was one that retrieved the first X columns in a row by only specifying a column count.
Reversed Comparator
它以降序存储您的列。这将为您提供更好(和更一致)的查询性能。
关于长行的 Cassandra 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9741522/
我正在使用 grep 仅返回多个文件中模式 (-o) 之间的字符串,例如 grep -i -r -o 'Rows="[^#][^"]*"' * 我希望它在第一个匹配模式后停止,我试过 grep -m
我是一名优秀的程序员,十分优秀!