了解 cassandra 复制因子与一致性级别

2024-04-11

我想澄清 Cassandra 中复制因子和一致性级别的基本概念。如果有人可以回答以下问题,我们将不胜感激。

RF-复制因子 RC-读一致性 WC- 写一致性

2 个 cassandra 节点(例如:A、B) RF=1、RC=ONE、WC=ONE 或 ANY

  • 我可以将数据写入节点A并从节点B读取数据吗?
  • 如果 A 宕机会发生什么?

3 个 cassandra 节点(例如:A、B、C) RF=2、RC=QUORUM、WC=QUORUM

  • 我可以将数据写入节点 A 并从节点 C 读取数据吗?
  • 如果节点 A 宕机会发生什么?

3 个 cassandra 节点(例如:A、B、C) RF=3、RC=QUORUM、WC=QUORUM

  • 我可以将数据写入节点 A 并从节点 C 读取数据吗?
  • 如果节点 A 宕机会发生什么?

简短摘要:复制因子描述了存在多少数据副本。一致性级别描述了客户端看到的行为。也许有更好的方法来对它们进行分类。

例如,您可以将复制因子设置为 2。当您写入时,假设有足够的节点已启动,则始终会存储两个副本。当节点关闭时,对该节点的写入会被隐藏起来,并在它恢复时写入,除非它关闭的时间足够长,以至于 Cassandra 认为它已经永远消失了。

现在假设在该示例中您使用一致性级别 ONE 进行编写。对一个节点进行写入操作后,客户端将收到成功确认,而无需等待第二次写入。如果您使用 CL 为 ALL 进行写入,则对客户端的确认将等到两个副本均写入后。还有很多其他一致性级别选项,太多而无法涵盖此处的所有变体。阅读数据税务文档 https://docs.datastax.com/en/archived/cassandra/2.0/cassandra/dml/dml_config_consistency_c.html不过,它很好地解释了它们。

在同一示例中,如果您以一致性级别 ONE 进行读取,则响应将在单个副本响应后发送到客户端。另一个副本可能有较新的数据,在这种情况下,响应将不是最新的。在许多情况下,这已经足够了。在其他情况下,客户端将需要最新的信息,并且您将在读取时使用不同的一致性级别 - 也许是 ALL 级别。这样,Cassandra 和其他后关系数据库的一致性就可以通过关系数据库通常无法调整的方式进行调整。

现在回到你的例子。

示例一:是的,您可以写入 A 并从 B 读取,即使 B 没有自己的副本。 B 将代表您的客户向 A 索取。对于节点全部启动的其他情况也是如此。当它们全部完成后,您可以向其中一个写入并从另一个读取。

对于写入,在 WC=ONE 的情况下,如果单个副本的节点已启动并且是您要连接的节点,则写入将会成功。如果是其他节点,则写入会失败。如果您使用 ANY,写入将会成功,假设您正在与正在运行的节点通信。我认为您还必须为此启用暗示切换。关闭的节点稍后会获取数据,并且在此之后您将无法读取数据,甚至无法从运行的节点读取数据。

在其他两个示例中,复制因子将影响最终写入的副本数量,但不会影响超出我上面描述的客户端行为。 QUORUM 将影响客户端行为,因为您必须有足够数量的节点启动并响应写入和读取。如果幸运的话,您需要的节点中至少有 (nodes/2) + 1 个节点已启动,那么写入和读取就会成功。如果没有足够的节点来启动副本,则读取和写入将会失败。总体而言,如果某个节点发生故障,假设不需要该节点来存储副本,或者其中断仍然留下足够的副本节点可用,则某些 QUORUM 读取和写入可能会成功。

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

了解 cassandra 复制因子与一致性级别 的相关文章

随机推荐

  • 获取Streamreader的长度

    我怎样才能得到a的长度StreamReader 据我所知 不会再向其中写入任何内容 我想也许我可以将所有数据传递给MemoryStream 它有一个名为Length 但我陷入了如何将 byte 附加到 a 的问题上MemoryStream
  • 具有多个控件和 generic.xaml 的自定义控件库

    如果我在一个自定义控件库中为两个不同的控件定义两种默认样式 我会收到错误 一个库中是否可以有两个或多个具有默认 generic xaml 的控件 Thanks 对的 这是可能的 推荐的方法是将每个控件的样式放置在其自己的资源字典中 并拥有一
  • 返回用于在 using C# 中使用的变量

    我返回在 using 语句内的 using 语句中创建的变量 听起来很有趣 public DataTable foo using DataTable properties new DataTable do something return
  • 如何在 MVC3 中使用 ViewBag 更改或刷新数据

    我想使用 ViewBag 刷新视图中的数据 是否有可能或者我可以使用其他技术 这是我的示例代码 在我的视图页面中 家庭详情 ViewBag Details 0 Name 在我的控制器中 public ActionResult FamilyD
  • 使用命名范围依赖于下拉列表值的文本框值的 Excel VBA 代码

    我拥有的 我有一个 Excel VBA 自定义用户表单 该表单包含一个下拉列表 行业类别 和文本框 对应行业规范者 对于每个行业类别有一个行业规范者 该类别的缩写版本 The 行业类别 and 行业规范者将始终位于同一行 下拉列表由单元格名
  • iPhone - 如何在按下按钮时制作动画?

    有没有办法在点击 iPhone 按钮时制作自定义动画 我想要类似 App Store 按钮的东西 它会显示价格 然后当您单击它时 它会改变颜色并且文本会更改为 立即购买 然后当您再次单击它时 它会完成购买 UIViewAnimationTr
  • 如何从 java 类(在 Lucee 中)中的方法返回 Coldfusion 结构?

    我正在编写一个java类 并且想从方法返回一个coldfusion结构 结构扩展了映射和其他东西 我不是 Java 程序员 所以我不知道如何解决这个问题 这是 lucee java 文档 http javadoc lucee org 当我尝
  • 如何使用Java将生成的PDF文件保存到MySQL数据库?

    我有一个 Java 类 它使用以下命令生成 PDF 文件iText https itextpdf com en图书馆 现在根据我的需要 我必须将生成的 PDF 文件保存到 MySQL 数据库表中 但我不知道该怎么做 我的担忧是 what d
  • Flutter 中的 Widgets 库错误捕获异常

    我在 Flutter 中有这个应用程序 它有两个类来生成笔记列表 这是主类 MyApp 类 import package flutter cupertino dart import package flutter material dart
  • 使用 jQuery.load('url.html') 确定插入图像后何时加载图像

    我目前有与此类似的东西 它在目标页面上加载一个包含图像的 div a galleryNext click function chnage the image to loading info html LOADING currentGal l
  • SQL Server dbo.sysdiagrams 是用户表或系统表

    当在简单数据库中使用数据库图时 SQL Server 在以下位置创建一个 dbo sysdiagrams 表 Table Systam Tables节点 在 Microsoft Management Studio Object Explor
  • 使用自定义颜色代码设置面板背景

    在 WPF 中 我可以使用以下代码设置堆栈面板的背景 stackPanelFlasher Background Brushes Aqua 例如 如何将颜色设置为十六进制颜色代码 C7DFFC BrushConverter bc new Br
  • 延迟加载插件 (jQuery)

    a lightbox hover function if jQuery lightbox required otherwise lightbox js will be loaded on hover each time a lightbox
  • 我的 CryptoJS 加密/解密不起作用

    我有一个 JSON 数组数组 我尝试使用 CryptoJS 对其值进行加密 然后打印以在另一个文件中使用 其中这些值应使用用户给定的密码进行解密 但我做错了什么 在解密 URL 时收到 未捕获错误 格式错误的 UTF 8 数据 加密 js
  • 将时间列拆分为开始时间/结束时间列

    我有一张表格 其中包含有关他们全天所做工作的信息 我需要获取每个任务的开始时间 结束时间 目前 我能够提取每个任务的时间戳 但我希望创建 开始时间 和 结束时间 列 开始时间是前一行的时间戳 结束时间是当前行的时间戳 有什么简单的方法可以做
  • iOS - WebView 和字符串

    我有一个名为 htmlString 的字符串 其中包含一些 html 格式的信息 我需要将这些信息放入加载整个 html 字符串 包含颜色和字体 的 webView 中 我需要知道弦的高度 我能怎么做 你想做类似的事情 webView lo
  • 检查表达式树中的类型转换?

    我正在使用 Expression 创建一些动态生成的代码 我的解决方案有效 但有一个功能除外 我想要进行检查类型转换 如果转换失败 则会抛出 TypeCastException 我找到了 Expression TypeAs 它执行类型转换
  • 将 iOS 9 Today 扩展转换为 iOS 10 的尺寸问题

    晚上好 我在理解今天的扩展时遇到了很大的问题 我读过很多教程和介绍 但没有任何帮助我理解这个问题 在 iOS 9 上 该扩展可以正常工作 在 iOS 10 上则不行 我的大问题是 iOS 10 中小部件的自动调整大小 在 iOS 9 上 小
  • 如何将引导程序形式的输入与输入组插件对齐?

    我有一个非常简单的 Bootstrap 3 表单 当我不使用它时 我可以轻松 自动 对齐input group addons 在我的表单中使用它们后 无法对齐它 由于添加了插件 带有插件的线更宽
  • 了解 cassandra 复制因子与一致性级别

    我想澄清 Cassandra 中复制因子和一致性级别的基本概念 如果有人可以回答以下问题 我们将不胜感激 RF 复制因子 RC 读一致性 WC 写一致性 2 个 cassandra 节点 例如 A B RF 1 RC ONE WC ONE