问题标签 [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.
postgresql - PostgreSQL 在不同时区访问相同数据
我正在使用 postgreSQL 将我的数据存储在不同时区的用户可以访问的地方。
但是,数据不一致。
例如,来自加拿大的用户 A 和来自澳大利亚的用户 B 如果同时尝试访问数据,则可能会看到相同数据的不同内容。有没有办法确保数据一致,以便来自不同时区的人可以同时看到相同的数据内容?
创建表时,我已经在时区中添加了时间戳
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 节点集群中丢失一个节点,我将无法写入数据?
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。
我的理解正确吗?
database - 跨多个重复数据的微服务的数据一致性
我目前正在尝试进入微服务架构,并且遇到了数据一致性问题。我读过,在多个微服务之间复制数据是个好主意,因为它使每个服务更加独立。
但是,我无法弄清楚在以下情况下该怎么做才能提供一致性:
- 我有一个具有 RegisterCustomer 方法的客户服务。
- 当我注册客户时,我想通过 RabbitMQ 发送一条消息,以便其他服务可以获取此信息并存储在其数据库中。
我的代码看起来像这样:
所以我想知道,当应用程序发送消息但无法自行保存数据时,我该如何处理这种情况?当然,我可以交换DbContextSave和PublishMessage方法,但问题仍然存在。我的数据存储方法有问题吗?
ravendb - RavenDB 一致性 - WaitForIndexesAfterSaveChanges() / WaitForNonStaleResultsAsOfNow
我正在使用 RavenDB 3.5。我知道查询实体不是acid
,而是按 ID 加载。显然写入 DB 也是acid
. 到目前为止,一切都很好。现在一个问题:我找到了一些代码:
来这里打电话的目的是WaitForIndexesAfterSaveChanges()
什么?这是因为执行命令吗?还是因为可能依赖/消耗查询应该立即赶上所做的更改?如果是这种情况,我可以WaitForIndexesAfterSaveChanges()
在此代码块中删除并添加WaitForNonStaleResultsAsOfNow()
查询,不是吗?如果WaitForIndexesAfterSaveChanges()
我的关键查询已经用 标记,我什么时候首先使用WaitForNonStaleResultsAsOfNow()
?
mysql - 分布式爬虫和一致性
案例是我们有多个服务器(40+)同时抓取一个相同的 URL(以确保我们有最小的遗留)并将数据保存到数据库(MySQL)中。
现在的问题是:数据来回切换。例如,由于爬虫/数据库遗留问题,内容将在几秒钟内变为 A <-> B <-> A <-> B <-> A。
有什么好的方法可以预防吗?我们正在用 Perl 编写爬虫,但任何语言都适合我们,因为我们可以借用背后的想法。
任何提示将不胜感激。雷迪斯?零MQ?
谢谢
java - 保持内存图数据库中的所有实例同步
我们正在构建一个 java 应用程序,它将使用嵌入式 Neo4j 进行图遍历。以下是我们要使用嵌入式版本而不是集中式服务器的原因
- 此应用程序不是数据所有者。数据将通过其他应用程序在其上摄取。将数据保存在本地将有助于我们进行快速计算,因此它将改进我们的 api sla。
- 由于数据足迹很小,我们不想维护集中式服务器,这将产生额外的成本和维护。
- 不需要额外的缓存
现在这种架构带来了两个挑战。首先如何在嵌入式 Neo4j 应用程序的所有实例中同时更新数据。其次,如何确保所有实例同步,即使用相同版本的数据。
我们想用 Kafka 来解决第一个问题。想法是在所有实例中使用具有不同 groupid 的 kafka 侦听器(以确保所有获取更新)。每当有更新时,事件都会在 kafka 中发布。所有实例都会监听事件并执行更新操作。
然而,我们仍然没有任何可靠的设计来解决第二个问题。由于各种原因,其中一个实例可能会错过事件(它的消费者已关闭)。一种方法是通过调用数据所有者应用程序的 api 来不断检查最新版本。如果版本落后于重播事件。但这带来了维护所有更新的事件日志的额外复杂性。你们认为是否可以以更好,更简单的方式完成?
acid - 使用 delta Lake 表作为对另一个变化的 delta 表的查找
我有一个场景,我使用一个增量表作为另一个增量表的查找表。如果在查找期间,在操作期间将查找值添加到基础表中,它会在我的查找连接中被拾取吗?
typescript - 打字稿联合类型一致性
有一个联合类型的 Typescript 变量A
我可以正确地将属性分配x
给正确的类型,方法是使用 if 判别块检查属性b
值类型以保护type A
一致性
然而,外部判别块v.x
似乎正确number | string
,编译器不会抱怨分配给x
,number | string
尽管这会破坏type A
一致性
有没有办法强制编译器拒绝这个?
在 typescriptlang.org/play 上查看
python - 更改 mdf-object 中的特定值(python,asammdf)
我想更改 mdf 文件中的一些值(具体来说,我想检查一致性,因为测量仪器出于某种原因10**10
会在找不到值时写入)。我不知道如何访问特定值并更改它们。我想出了如何在通道名称中包含通道单元,它的工作速度相当快:
不幸的是,gp.channels
似乎没有办法访问数据,每个频道只有一些元数据(或者至少我无法弄清楚属性或方法)。
我已经尝试转换为数据帧,这很容易,但是文件非常大,因此筛选所有数据点需要很长时间 - 我的猜测是,如果在直接mdf。
下采样解决了耗时过长的问题,但这也不是真正的解决方案,因为我确实需要原始采样率。访问数据不是问题,因为我可以使用select()
orget()
方法,但我无法更改值 - 我不知道如何。理想情况下,我会将 any 更改10**10
为np.nan
.