scylla读取路径和cassandra读取路径有什么区别?

2023-11-27

Scylla 读取路径和 Cassandra 读取路径有什么区别?当我强调 Cassandra 和 Scylla 时,Scylla 的读取性能比使用 16 核和普通 HDD 的 Cassandra 差 5 倍。

与使用普通 HDD 的 Cassandra 相比,我预计 Scylla 的读取性能会更好,因为我的公司不提供 SSD。

有人可以确认一下,使用普通硬盘是否可以实现更好的读取性能?

如果是,需要对 scylla 配置进行哪些更改?请指导我!


其他一些回复侧重于写入性能,但这不是您询问的问题 - 您询问的是读取性能。

在 Cassandra 和 Scylla 中,HDD 上的未缓存读取性能必然很差,因为从磁盘读取都需要several在 HDD 上进行寻道,即使是最好的 HDD 每秒也只能进行 200 次寻道。即使使用多个此类磁盘组成的 RAID,您也很少能够执行每秒 1000 个以上的请求。由于现代多核可以比每秒 1000 个请求执行更多数量级的 CPU 工作,因此在 Scylla 和 Cassandra 情况下,您可能会看到空闲的 CPU。因此,Scylla 的主要优点是每个请求使用更少的 CPU,甚至当磁盘成为性能瓶颈时也不再重要。在这种情况下,我预计 Scylla 和 Cassandra 的性能(我假设您在谈论性能时正在测量吞吐量?)应该大致相同。

如果您仍然看到 Cassandra 的吞吐量比 Scylla 更好,那么除了其他响应中提出的一般客户端错误配置问题之外,还有几个细节可以解释原因:

  1. 如果你有少量对于可以放入内存的数据,Cassandra 的缓存策略更适合您的工作负载。 Cassandra 使用操作系统的页面缓存,它会读取整个磁盘页面,并可能在一次读取中缓存多个项目以及多个索引条目。而 Scylla 的工作方式不同,并且具有行缓存 - 仅缓存读取的特定数据。 Scylla 的缓存对于内存装不下的大量数据来说比较好,但当数据可以装进内存时就差很多,直到整个数据集都被缓存了(所有东西都被缓存之后,它又变得非常高效)。

  2. 在 HDD 上,压缩的细节对于读取性能非常重要 - 如果在一种设置中需要读取更多 sstable,则可能会增加读取次数并降低性能。这可能会根据您的压缩配置而变化,甚至会随机变化(取决于上次运行压缩的时间)。您可以通过在两个系统上进行主要压缩(“nodetoolcompact”)并随后检查读取性能来检查这是否可以解释您的性能问题。您可以将压缩策略切换为 LCS,以确保随机访问读取性能更好,但代价是更多的写入工作(在 HDD 上,这可能是一个值得的妥协)。

  3. 如果您正在测量扫描性能(读取整个表)而不是读取单个行,则其他问题就会变得相关:正如您可能听说过的那样,Scylla 将每个节点细分为分片(每个分片是一个 CPU)。这对于受 CPU 限制的工作来说非常棒,但对于扫描不太大的表可能会更糟,因为每个 sstable 现在更小,并且在需要再次查找之前可以读取的连续数据量也更少。

我不知道这些差异中的哪一个(或其他原因)导致 Scylla 中用例的性能降低,但我请记住,无论您修复什么,HDD 的性能总是会很差。通过 SDD,我们过去在单个节点上测量了每秒超过一百万个随机访问读取请求。 HDD 无法与之相媲美。如果您确实需要最佳性能或性价比,那么 SDD 确实是您的最佳选择。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

scylla读取路径和cassandra读取路径有什么区别? 的相关文章

  • rows_merged在compactionhistory中意味着什么?

    当我发出 nodetool compactionhistory I get compacted at bytes in bytes out rows merged 1404936947592 8096 7211 1 3 3 1 什么是 1
  • Cassandra 和 Tombstones:创建行、删除行、重新创建行 = 性能?

    有人可以解释一下 以下过程对墓碑有什么影响 1 使用键 1 创建 行 字段 用户 密码 日期 2 删除键为 1 的 行 3 使用键 1 创建 行 字段 用户 密码 登录计数 该序列在一个线程中按顺序执行 因此这种情况以相对较高的 速度 发生
  • 使用 Cassandra API 获取所有键——类似于“SELECT id FROM table;”

    Cassandra 命令行实用程序sstablekeys可用于从物理 SSTABLE 文件中提取所有定义的行键 sstablekeys cassandra data Keyspace1 Standard1 N Data db Cassand
  • 在 DSE 中何时使用 Cassandra 与 Solr?

    我使用 DSE 进行 Cassandra Solr 集成 以便数据存储在 Cassandra 中并在 Solr 中建立索引 很自然地分别使用 Cassandra 处理 CRUD 操作和使用 Solr 进行全文搜索 并且 DSE 确实可以简化
  • 使用 cassandra-cli 创建两个复合列

    我的列族需要两个复合列 关键数据类型是BytesType 以下是使用 CQL 的表定义 CREATE TABLE stats gid blob period int tid blob sum int uniques blob PRIMARY
  • 安装cassandra时出错

    我正在尝试按照此处的说明在 ubuntu 16 04 LTS 上安装 apache cassandra gt http docs datastax com en cassandra 3 x cassandra install install
  • 如何读取cassandra数据而不区分大小写

    我需要从 cassandra 获取数据而不区分大小写 请帮我 Cassandra 中没有区分大小写的概念 所有数据都存储为byte 所以它甚至不是一个字符串 您可以制作自定义比较器 参见API http wiki apache org ca
  • Cassandra 查询失败:尝试查询的所有主机均失败(未尝试任何主机)

    我无法对 Cassandra 节点进行查询 我能够连接到集群并进行连接 但是 在执行查询时 它失败了 Caused by com datastax driver core exceptions NoHostAvailableExceptio
  • 库存管理系统的 SQL 与 NoSQL

    我正在开发一个基于 JAVA 的网络应用程序 主要目的是拥有在多个称为渠道的网站上销售的产品的库存 我们将担任所有这些渠道的管理者 我们需要的是 用于管理每个渠道的库存更新的队列 库存表 其中包含每个通道上分配的正确快照 将会话 ID 和其
  • 如何在Cassandra中搜索不相等的二级索引?

    我需要能够仅使用 对二级索引执行搜索 据我所知 Cassandra 至少需要一个等式索引子句 因为它会迭代该等式索引的所有结果 是否有任何技巧可以仅使用 执行操作 至少在概念上 这是一个坏主意吗 另外 有人知道 Cassandra 是否有计
  • 可以在 UUID 列上创建索引吗?

    是否可以在 Cassandra 中的 UUID TIMEUUID 列上创建索引 我正在测试一个模型设计 该设计在 UUID 列上有一个索引 但对该列的查询始终返回找到的 0 行 我有一个这样的表 create table some data
  • 如何从 Spark UI 检索输出大小和写入记录等指标?

    如何在任务或作业完成后立即在控制台 Spark Shell 或 Spark 提交作业 上收集这些指标 我们使用 Spark 将数据从 Mysql 加载到 Cassandra 数据非常庞大 例如 200 GB 和 600M 行 当任务完成后
  • 是否可以仅从复制因子为 3 的 Cassandra 集群中的单个节点读取数据?

    我知道 Cassandra 有不同的读取一致性级别 但我还没有看到一种一致性级别允许仅从一个节点按键读取数据 我的意思是 如果我们有一个复制因子为 3 的集群 那么我们在读取时总是会询问所有节点 即使我们选择一致性级别 1 我们也会询问所有
  • 哪个 CQL 版本对应哪个 Cassandra 版本?

    CQL 文档是根据 CQL 版本而不是 Cassandra 产品版本来组织的 显然 我想阅读与我正在使用的 Cassandra 版本相对应的 CQL 文档 但我找不到有关哪个 CQL 版本对应于哪个 Cassandra 版本的全面信息 CQ
  • TaskSchedulerImpl:初始作业尚未接受任何资源;

    这就是我正在尝试做的事情 我创建了DataStax企业集群的两个节点 在其上创建了一个java程序来获取一张表 Cassandra数据库表 的计数 该程序是在 eclipse 中构建的 实际上是来自 windows 盒子 从 Windows
  • 将数据作为 RDD 保存回 Cassandra

    我试图从 Kafka 读取消息 处理数据 然后将数据添加到 cassandra 中 就像它是 RDD 一样 我的麻烦是将数据保存回 cassandra 中 from future import print function from pys
  • Cassandra Pojo Sink Flink 中的动态表名称

    我是 Apache Flink 的新手 我正在使用 Pojo Sink 将数据加载到 Cassandra 中 现在 我在以下命令的帮助下指定表和键空间名称 Table注解 现在 我想在运行时动态传递表名称和键空间名称 以便可以将数据加载到用
  • Redis是如何实现高吞吐量和高性能的?

    我知道这是一个非常普遍的问题 但是 我想了解允许 Redis 或 MemCached Cassandra 等缓存 以惊人的性能极限工作的主要架构决策是什么 如何维持连接 连接是 TCP 还是 HTTP 我知道它完全是用C写的 内存是如何管理
  • Apache Nifi/Cassandra - 如何将 CSV 加载到 Cassandra 表中

    我每天都会收到多次传入的各种 CSV 文件 存储来自传感器的时间序列数据 这些传感器是传感器站的一部分 每个 CSV 均以其来源的传感器站和传感器 ID 命名 例如 station1 sensor2 csv 目前 数据存储如下 gt cat
  • cassandra 中的突变是什么?

    cassandra 中的突变是什么 它在做什么 我没有找到任何有关它的完整信息 您可以回答或分享带有手册或说明的链接吗 谢谢 Mutation 是一个由 thrift 生成的类 定义在cassandra thrift文件 您可以在以下位置找

随机推荐

  • Microsoft Bot Framework - 机器人进入睡眠状态。有办法预防吗?

    我的基于机器人框架的机器人运行得很好 但是 当我在一段时间不活动 假设一天 后首次与机器人交互时 机器人似乎需要很长时间 大约 10 45 秒 才能发回其第一个回复 回复之后 回复时间又恢复得很好了 对我来说 后端服务似乎进入某种睡眠模式
  • 如何在不使用 setter 的情况下为类变量设置值

    我想插入一个值到Object变量而不使用设置器 如果可以的话怎么可能 这是一个例子 Class X String variableName getters and setters 现在我有一个函数 其中包含variable name the
  • FileProvider.getUriForFile 返回 NullPointerException

    我正在尝试编写我的第一个 Android 应用程序 其中涉及拍照并用它做一些事情 在查看了几个在线教程后 我整理了一些代码 但每当单击按钮时都会收到以下 NullPointerException 10 03 14 48 00 284 263
  • 如何在C89中获得SIZE_MAX

    我想得到SIZE MAX in C89 我想到了下面的方法来查找SIZE MAX const size t SIZE MAX 1 由于标准 6 2 1 2 ANSI C 规定 当有符号整数转换为相同或更大大小的无符号整数时 如果有符号整数的
  • 条件检查:if(x==0) 与 if(!x)

    有什么区别if x 0 vs if x 或者它们总是等价的 对于不同的 C 内置类型x bool int char pointer iostream 假设存在从类型到支持的类型的转换if x or if x 那么只要没有不同的转换opera
  • 有没有办法在 Spring Webflux 和 Spring Data React 中实现分页

    我试图理解 spring 5 的反应部分 我创建了简单的休息端点来使用 spring 查找所有实体web flux和 spring data reactive mongo 但没有看到任何如何实现分页的方法 这是我在 Kotlin 中的简单示
  • Hibernate:无法访问 TransactionManager 或 UserTransaction 来进行物理事务委托

    我使用 Servlet PostgreSQL 和 Hibernate 以及 EntityManager 来构建 Web 应用程序 一切正常 直到我将项目移动到基于 Maven 的项目 现在 每次我尝试从 EntityManagerFacto
  • 如何将sql DATE映射到LocalDate

    我想存储一个LocalDate in a DATE列并按原样检索它 两个都DATE and LocalDate根据定义 它们是 本地 类型 因此 概念timezone不应以任何方式干涉 下面的代码是一个最小的示例 它创建一个带有DATE内存
  • 生成随机唯一数字的性能问题

    我遇到一种情况 我需要创建数以万计的唯一数字 但是这些数字必须是 9 位数字并且不能包含任何 0 我当前的方法是生成 9 个数字 1 9 并将它们连接在一起 如果该数字尚未在列表中 则将其添加到列表中 例如 public void gene
  • 使用 Unity IoC 注册和解析 SignalR 集线器

    我想我错过了一些非常简单的东西 也许只是需要一双新的眼睛 我有一个 ASP NET MVC 应用程序 在该应用程序中 我使用 Unity 作为 IoC 来处理依赖项注入 我的每个存储库都需要注入一个数据库工厂 并且每个数据库工厂都需要注入一
  • 如何缓存来自 Web 服务器的 okHTTP 响应?

    我想知道如何缓存来自Web服务器的okHTTP响应 返回json数据 我希望我的应用程序下载 RecycleView 所需的所有数据 并在用户第一次运行该应用程序时对其进行缓存 如果数据未更改 则避免从 Web 服务器重新下载和解析所有相同
  • 更好的解决方案而不是 Java 中的嵌套同步块?

    我有一个Bank类有一个列表Account 该银行有一个transfer 将价值从一个帐户转移到另一个帐户的方法 这个想法是锁定两个from and to转账内的账户 为了解决这个问题 我有以下代码 请记住 这是一个非常简单的示例 因为它只
  • React Native - 渲染没有返回任何内容

    我的应用程序存储在 src index js 中 但我还有一个 App js 和一个 index js 我不知道它们之间的区别 我认为这就是我收到此错误的原因 index js import AppRegistry from react n
  • Restful API认证推荐?

    我正在开发几个 RESTful API 供第三方调用 这些 API 需要身份验证 基于 apikey 和密钥 和授权 基于 HTTP 方法和 URI 是否有任何我们可以重用的现有软件会阻止我推出我们自己的安全层实现 HTTP 为您提供了对此
  • Python 中的小数模块和复数

    有没有办法使用 python 以超过浮点精度的方式操作复数 例如 为了获得更好的实数精度 我可以轻松使用Decimal模块 但它似乎不适用于复数 免责声明 我维护 gmpy2 gmpy2支持扩展精度整数 有理数 实数和复数 它还支持多种科学
  • 如何通过谷歌日历API“添加访客”到活动?

    您能给我一个关于如何通过 google calendar api 共享单个事件的提示吗 That is I d like to invite other users to see the event programmatically wit
  • 哈希键中的 JavaScript 关键字

    In V8基于 JS 引擎 您可以在属性键中使用不带引号的关键字 例如 delete 1 而在Rhino或其他JS引擎中 它会抛出错误 这怎么可能 正确的行为应该是什么 spaceman spaceman laptop rhino Rhin
  • 使用 JavaScript 创建 Instagram 式的过滤器?

    我可以使用 JavaScript 创建 Instagram 风格的过滤器吗 图像可以在客户端或服务器端 node js 进行处理 我可以用 css 覆盖一些 png 和 box shadows 以获得有限数量的类似效果 但我想知道是否有任何
  • Firebase 云消息传递 click_action 格式是否特定于平台?

    我正在使用 Firebase Cloud Messaging 向我的应用程序的客户端发送通知 客户端可以是三个受支持平台 ios android web 中的任何一个 我希望用户能够单击通知来启动应用程序 为此 我必须在通知中指定 clic
  • scylla读取路径和cassandra读取路径有什么区别?

    Scylla 读取路径和 Cassandra 读取路径有什么区别 当我强调 Cassandra 和 Scylla 时 Scylla 的读取性能比使用 16 核和普通 HDD 的 Cassandra 差 5 倍 与使用普通 HDD 的 Cas