问题标签 [data-consistency]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
16 浏览

postgresql - PostgreSQL 在不同时区访问相同数据

我正在使用 postgreSQL 将我的数据存储在不同时区的用户可以访问的地方。

但是,数据不一致。

例如,来自加拿大的用户 A 和来自澳大利亚的用户 B 如果同时尝试访问数据,则可能会看到相同数据的不同内容。有没有办法确保数据一致,以便来自不同时区的人可以同时看到相同的数据内容?

创建表时,我已经在时区中添加了时间戳

0 投票
2 回答
167 浏览

aerospike - Aerospike 集群在不同一致性模式下的行为?

我想了解 aerospike 在不同一致性模式下的行为。

考虑一个运行有 3 个节点和复制因子 3 的 aerospike 集群。

AP modes is simple and it says

Aerospike 将允许在每个子集群中进行读写。

And Maximum no. of node which can go down < 3 (replication factor)

对于 aerospike 强一致性,它说

请注意,唯一成功的写入是在复制因子数量的节点上进行的。其他所有写入都不成功

这是否真的意味着如果可用节点 < 复制因子,则不允许写入。

然后同一份文件说

在系统向客户端返回成功之前,所有写入都提交到每个副本。如果其中一个副本写入失败,master 将确保写入完成到集群内适当数量的副本(或子集群,以防系统受到损害)。

什么appropriate number of replica means

因此,如果我从具有强一致性和复制因子 3 的 3 节点集群中丢失一个节点,我将无法写入数据?

0 投票
0 回答
47 浏览

apache-zookeeper - Zookeeper:客户端的更新是否会导致数据过时?

例如,zkClient A 连接到 zkServer X。zkClient A 发出请求将 znode "/a" 从 0 更新为 1。zkServer X 收到该请求后,将其转发给领导者。

然后领导者将这个更新提议广播给所有的 zkServer。在达到一定数量的 zkServer 提交更新请求后,更新成功。

然后zkClient A发出读取请求,获取znode“/a”的值。zkServer X 接收到这个读请求。

因此,如果 zkServer X 不在 quorum 中,并且 zkServer X 没有提交更新以赶上领导者,那么 zkClient A 仍然有可能获得 znode "/a" 的陈旧值。在这种情况下,返回值为 0。

我的理解正确吗?

0 投票
3 回答
570 浏览

database - 跨多个重复数据的微服务的数据一致性

我目前正在尝试进入微服务架构,并且遇到了数据一致性问题。我读过,在多个微服务之间复制数据是个好主意,因为它使每个服务更加独立。

但是,我无法弄清楚在以下情况下该怎么做才能提供一致性:

  1. 我有一个具有 RegisterCustomer 方法的客户服务。
  2. 当我注册客户时,我想通过 RabbitMQ 发送一条消息,以便其他服务可以获取此信息并存储在其数据库中。

我的代码看起来像这样:

所以我想知道,当应用程序发送消息但无法自行保存数据时,我该如何处理这种情况?当然,我可以交换DbContextSavePublishMessage方法,但问题仍然存在。我的数据存储方法有问题吗?

0 投票
1 回答
174 浏览

ravendb - RavenDB 一致性 - WaitForIndexesAfterSaveChanges() / WaitForNonStaleResultsAsOfNow

我正在使用 RavenDB 3.5。我知道查询实体不是acid,而是按 ID 加载。显然写入 DB 也是acid. 到目前为止,一切都很好。现在一个问题:我找到了一些代码:

来这里打电话的目的是WaitForIndexesAfterSaveChanges() 什么?这是因为执行命令吗?还是因为可能依赖/消耗查询应该立即赶上所做的更改?如果是这种情况,我可以WaitForIndexesAfterSaveChanges()在此代码块中删除并添加WaitForNonStaleResultsAsOfNow()查询,不是吗?如果WaitForIndexesAfterSaveChanges()我的关键查询已经用 标记,我什么时候首先使用WaitForNonStaleResultsAsOfNow()

0 投票
1 回答
66 浏览

mysql - 分布式爬虫和一致性

案例是我们有多个服务器(40+)同时抓取一个相同的 URL(以确保我们有最小的遗留)并将数据保存到数据库(MySQL)中。

现在的问题是:数据来回切换。例如,由于爬虫/数据库遗留问题,内容将在几秒钟内变为 A <-> B <-> A <-> B <-> A。

有什么好的方法可以预防吗?我们正在用 Perl 编写爬虫,但任何语言都适合我们,因为我们可以借用背后的想法。

任何提示将不胜感激。雷迪斯?零MQ?

谢谢

0 投票
1 回答
54 浏览

java - 保持内存图数据库中的所有实例同步

我们正在构建一个 java 应用程序,它将使用嵌入式 Neo4j 进行图遍历。以下是我们要使用嵌入式版本而不是集中式服务器的原因

  1. 此应用程序不是数据所有者。数据将通过其他应用程序在其上摄取。将数据保存在本地将有助于我们进行快速计算,因此它将改进我们的 api sla。
  2. 由于数据足迹很小,我们不想维护集中式服务器,这将产生额外的成本和维护。
  3. 不需要额外的缓存

现在这种架构带来了两个挑战。首先如何在嵌入式 Neo4j 应用程序的所有实例中同时更新数据。其次,如何确保所有实例同步,即使用相同版本的数据。

我们想用 Kafka 来解决第一个问题。想法是在所有实例中使用具有不同 groupid 的 kafka 侦听器(以确保所有获取更新)。每当有更新时,事件都会在 kafka 中发布。所有实例都会监听事件并执行更新操作。

然而,我们仍然没有任何可靠的设计来解决第二个问题。由于各种原因,其中一个实例可能会错过事件(它的消费者已关闭)。一种方法是通过调用数据所有者应用程序的 api 来不断检查最新版本。如果版本落后于重播事件。但这带来了维护所有更新的事件日志的额外复杂性。你们认为是否可以以更好,更简单的方式完成?

0 投票
1 回答
85 浏览

acid - 使用 delta Lake 表作为对另一个变化的 delta 表的查找

我有一个场景,我使用一个增量表作为另一个增量表的查找表。如果在查找期间,在操作期间将查找值添加到基础表中,它会在我的查找连接中被拾取吗?

0 投票
2 回答
294 浏览

typescript - 打字稿联合类型一致性

有一个联合类型的 Typescript 变量A

我可以正确地将属性分配x给正确的类型,方法是使用 if 判别块检查属性b值类型以保护type A一致性

然而,外部判别块v.x似乎正确number | string
,编译器不会抱怨分配给xnumber | string尽管这会破坏type A一致性

有没有办法强制编译器拒绝这个?
在 typescriptlang.org/play 上查看

0 投票
2 回答
380 浏览

python - 更改 mdf-object 中的特定值(python,asammdf)

我想更改 mdf 文件中的一些值(具体来说,我想检查一致性,因为测量仪器出于某种原因10**10会在找不到值时写入)。我不知道如何访问特定值并更改它们。我想出了如何在通道名称中包含通道单元,它的工作速度相当快:

不幸的是,gp.channels似乎没有办法访问数据,每个频道只有一些元数据(或者至少我无法弄清楚属性或方法)。

我已经尝试转换为数据帧,这很容易,但是文件非常大,因此筛选所有数据点需要很长时间 - 我的猜测是,如果在直接mdf。

下采样解决了耗时过长的问题,但这也不是真正的解决方案,因为我确实需要原始采样率。访问数据不是问题,因为我可以使用select()orget()方法,但我无法更改值 - 我不知道如何。理想情况下,我会将 any 更改10**10np.nan.