我目前正在为我们的组织了解MS奥尔良。 我知道,只要所有数据库更新都通过谷物进行,奥尔良谷物将与数据库保持同步。
但是如果有更新/插入/删除DB中的记录的批量处理过程(如处理数据文件)会发生什么?
是否有一些过程或模式与奥尔良一起使用以满足这一需求? 或者我们是否需要通过谷物处理所有批量过程? 如果我们通过谷物处理批量操作 - 我们是通过更新每个谷物(如果每个谷物将其自身更新为DB似乎非常昂贵)或者是否有一些大块模式用于强制所有受影响的谷物来刷新&# 39;
答案可能很明显。我没有在关于这些场景的文档中找到任何内容。
我们将使用Orleans作为On-Premises安装MS-SQL服务器。
编辑:
我指的是更新N粒数据的过程。只有一次调用更新1000条记录对于sql然后1000次调用更新一条记录要好得多。具体的例子是股票更新:每个产品股票都是一粒。每隔15分钟左右,一个文件将从第三方到达,通知应用程序外发生的库存数量变化。这应该在数据库中更新并反映在谷物中。文件可能有10k的记录......
答案 0 :(得分:4)
你有几个选择。
1)通过谷物上传 - 谷物将缓存数据并存储在数据库中。这部分地挫败了您有效的数据库上传目标,因此可能不是您想要的。
2)批量上传直接进入数据库,但使用谷物访问和处理/提供数据。谷物将在第一次请求时从数据库中读取数据,对其进行缓存,以满足进一步的请求。此外,所有未来的数据更新都将通过谷物进行。这通常是最常见的模式。
3)如果你还需要定期数据处理,即使没有服务请求,那么在批量上传谷物之后,你可以“批量踢”"谷物开始定期加工。在这个选项中,你将编写一个控制器循环(例如客户端逻辑),它将只调用" Init"进入谷物组,一个接一个(但并行:并行地在X(X~100)上调用Init并等待它们)然后进行下一批。谷物将在初始化时启动计时器或提醒。