问题标签 [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 投票
1 回答
82 浏览

ruby - 数据依赖性和一致性

我正在为工程计算开发一个相当大的(对我而言)ruby 脚本。该脚本创建了一些以分层方式互连的对象。

例如,一个对象 (Inp) 包含一组模拟的输入参数。其他对象(SimA、SimB、SimC)用于实际执行模拟,它们中的每一个都可以生成一个或多个输出对象(OutA、OutB、OutC),其中包含结果并通过以下方式生成用于可视化或分析的实际文件其他物体等等。

第一次执行并完成所有模拟时,所有对象都将被完全定义,并且我将拥有代表用户输出的系列或文件。

现在假设用户需要更改 Inp 的属性之一。根据已修改的属性,必须重新运行一些模拟,并且某些对象 OutX 将被渲染为无效,否则一致性将丢失,因为输出将不再对应于输入。

我想知道是否有一种设计模式可以促进这个过程。另外我想知道是否可以使用某种图形以清晰的方式直观地表示对象之间的各种依赖关系。

根据我一直在阅读的内容(这个问题已经存在一年了),我认为 RubyObservable类可以用于此目的。每次父对象发生变化时,它都应该向其子对象发送一条消息,以便它们可以更新其状态。这是推荐的方法吗?

我希望这能让问题更清楚一些。

0 投票
1 回答
354 浏览

python - 如何(应该)在 Python 中实现模型一致性?

我想通过添加一些一致性检查来增强我的模型的实现(这个值不能是负数,这个不能是 None 等)

我想知道添加一些“类型检查”-ish 检查是否是“Pythonic”。例如,检查我放入 Car 中的对象是否确实是 SteeringWheel。

我确实想执行某种类型检查以尽快发现错误。我想知道我是否在将 SteeringWheel 放入汽车的那一刻添加了正确的 SteeringWheel,而不是在汽车第一次转弯时(然后在汽车残骸中调试我的方式,直到找到错误的分配)。

我读到在 Python 的鸭子类型哲学中更多的是检查添加的对象的属性或方法而不是其类型。我理解这个原则,但这意味着模型必须知道如何使用对象以检查给定对象是否正确,这会在模型和控制器之间产生错误的依赖关系。

此外,应该测试哪些属性?wheel.rotate()可以应用于 SteeringWheel,也可以应用于轮胎。

另一种方法是让模型保持原样,并通过 try-catch 围绕模型对象的每次使用,期望 aAttributeError或 a TypeError,这将非常麻烦。

也许我想要这个是错误的,如果有人能说服我我有错误的想法,请这样做。但是,如果您认为我想要一个在不一致时引发错误的模型是正确的,您能告诉我除了使用之外的其他方法isinstance()吗?

谢谢你。

0 投票
0 回答
64 浏览

python - matplotlib 绘制整个数据

我一直在使用 matplotlib 以线条的形式绘制数据。我希望所有数据随时可见,但是 mpl 在精细缩放时给了我奇怪的行为:

第一张图片:http: //i.stack.imgur.com/nccvi.png 第二张图片:http: //i.stack.imgur.com/hov79.png

不同视图之间的数据不一致,我不允许在我的应用程序中这样做。我能做些什么来防止这种情况发生?

我找不到任何方法来告诉 mpl 绘制所有数据,似乎只有绘制每个第 n 个元素或类似元素的方法(传递 1 没有帮助)。

注意:我使用的是 Qt 后端。

0 投票
1 回答
727 浏览

azure - Azure DocumentDb 一致性级别建议

我已经设置了一个 Azure 批处理过程来同时读取多个 csv 文件并写入 Azure DocumentDb。我需要关于最适合我的一致性级别的建议。

我通读了一致性级别文档(http://azure.microsoft.com/en-us/documentation/articles/documentdb-consistency-levels/),但无法将我的业务案例与其中提供的选项联系起来。

我的流程 按 ID 获取文档
-如果找到,则将提取文档的副本,更新更改并替换它。
-如果没有找到,创建一个新条目。

0 投票
1 回答
484 浏览

caching - NoSQL + 分布式缓存在非常并发环境中的数据一致性

在幻灯片上,您可以看到非常粗略的预订系统架构。这是一个非常并发的环境,许多用户可能会同时尝试预订同一个酒店/房间。

在底部我们有 NoSQL 数据库,为了快速响应/请求,有分布式缓存和请求数据的应用程序。

这张幻灯片的想法是,当您使用 NoSQL + 分布式缓存时,您会遇到同步问题,这意味着数据一致性问题。您需要将分布式缓存与 NoSQL 数据库同步。

问题:除了 IMDG 之外,这种情况下已经存在哪些解决方案/技术?这可能是框架或/和最佳实践。是否有任何特定的分布式缓存可以解决这个问题?

问题 2[更新]:我们写入 NoSQL 数据库而不是缓存的原因是什么?那是交易,节点失败的可能性还是其他什么?

PS这不是我的幻灯片,作者声称这是 IMDG 的一个很好的用例。

在此处输入图像描述

0 投票
1 回答
44 浏览

ios - 及时准确的连续数据算法

我想创建一个算法,但不知道如何开始。

这个算法实际上是一个方法,它接受一个包含 N 个对象的数组,其中包含一些属性 createdAt 和 value。我将数组从旧的到新的(createdAt)排序,然后我必须找出可用数据的一致性,这意味着每一个小时我至少有 5 条记录,每半小时有 2 条记录。

示例测试代码:

我将不胜感激对方法中的过程的任何贡献。

此外,最终目标是为处理的记录的每个结果创建一个返回(调用块处理程序)。逻辑应该以每小时至少 5 条记录以及它们之间的时间跨度在 15 分钟以内结束。

0 投票
2 回答
2369 浏览

debugging - 如何避免在 SQLite 表中插入错误的数据类型?

SQLite 有这个“特性”,而即使你创建一个INTEGERor类型的列REAL,它也允许你在其中插入一个字符串,甚至是一个没有数字的字符串,比如“the quick fox jumped over the lazy dog”

您如何防止在您的项目中发生这种插入?

我的意思是,当我的代码有一个错误导致这种插入或更新时,我希望程序给出一个错误,这样我就可以调试它,而不是简单地在我的数据库中插入垃圾。

0 投票
3 回答
916 浏览

sql - 在 Oracle 查询中确保一致排序的最佳方法是什么?

我有一个程序需要对许多非常大的 Oracle 表(最大的有数千万行)运行查询。这些查询的输出被馈送到另一个进程(作为副作用)可以记录查询的进度(即,最后一行获取)。

如果任务由于某种原因中途停止,它可以重新启动,那将是很好的。为此,查询必须以一致的顺序返回行,因此必须对其进行排序。显而易见的事情是对主键进行排序;但是,与未排序的解决方案相比,这可能会在性能(索引访问)方面受到惩罚。鉴于重启可能永远不会发生,这是不可取的。

是否有一些技巧可以确保以另一种方式进行一致的排序?在这种情况下保持性能的任何其他建议?

编辑:我一直在环顾四周,看到提到“按 rowid 排序”。这有用甚至可能吗?

EDIT2:我添加了一些基准:

  • 无订单:17 秒。
  • 通过 PK 订购:46 秒。
  • 按 rowid 排序:43 秒。

因此,任何 order by 都会对性能产生严重影响,而使用 rowid 几乎没有什么区别。公认的答案是 - 没有简单的方法可以做到这一点。

0 投票
1 回答
93 浏览

cassandra - 关闭 Cassandra 种子供应商的影响

我有一个由 3 个 Cassandra 节点组成的集群:Cassandra_1、Cassandra_2、Cassandra_3。在集群中,Cassandra_1 被选为种子提供者。所有 Cassandra 实例都在同一个数据中心。读/写一致性级别设置为 ONE,复制因子设置为 3。

我的问题是: 1. Cassandra 实例的启动顺序是否重要?例如,如果我启动 Cassandra_2、Cassandra_3,最后启动 Cassandra_1。

  1. 种子提供者对集群所有节点之间的数据一致性有影响吗?
0 投票
1 回答
886 浏览

mongodb - 仅保存修改的字段

我正在开发一款游戏,其中玩家根据他们在游戏世界中的位置在服务器之间切换,以在保持可扩展性的同时给人一种单一服务器的错觉。当玩家加入服务器时,他们的数据从数据库 (MongoDB) 加载,当他们退出或更改服务器时,他们的数据被保存。

我的问题来自于玩家数据从与玩家不同的服务器被修改的情况,这种情况需要偶尔发生。数据库中的数据已更改,但当玩家离开或更改服务器时,数据将被覆盖: 示例图像

为了解决这个问题,我想只存储修改过的数据,因为通常你想要的数据是最近更改的。然而,当我试图找到这样做的方法时,我注意到缺乏这样做的案例。是否有充分的理由不这样做并使用另一种方法来确保修改后的数据不被覆盖?我能想到的唯一问题是数据一致性,其中字段被更新并且只有其中一些被覆盖,这可能会使播放器处于无效状态,通过同时更新所有相关字段可以很容易地避免这种情况。

如果有任何其他理由反对只选择一个对象或任何其他方法来解决这个问题,而不会引入任何重大问题,我很想听听他们。