首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >锁定Google Realtime DB

锁定Google Realtime DB
EN

Stack Overflow用户
提问于 2015-01-28 23:50:58
回答 1查看 109关注 0票数 0

我看到google为javascript提供了协作的api :所有客户看到的都是相同的模型。undates (我相信在model.beginCompoundOperationmodel.endCompoundOperation之间)声称是原子的和持久的。这对于单控制器-多查看器(在模型更新时刷新)似乎是理想的,但对于并发应用程序,IMO似乎不够。只要并发控制器是保守的,当它们都开始操纵模型而忽略其他控制器时,可能会导致不一致的模型。

考虑身份计数器。你维护一个图表。这就是你的模型。每个节点都必须有自己的id。在模型中,只有一个nextID值。当客户端创建节点时,它会递增该字段。但是,您知道另一个客户端可以同时执行相同的操作。它们都将计数器从4递增到5。但是,添加了两个节点。这说明共享数据访问还必须提供锁定接口。我在Google Realtime API中没有看到任何东西。它甚至没有被讨论过。为什么似乎没有人注意到,也没有人关心呢?

EN

回答 1

Stack Overflow用户

发布于 2015-01-29 02:59:37

我认为你的担忧对于数据库来说是很有道理的,但是如果你需要你的数据模型具有ACID属性,我会怀疑使用Google Realtime API来存储数据的方式。您引用的一些约束将在on this page中讨论,复合操作的限制和行为将是talked about here

特别值得注意的是,就您对复合操作的引用而言,second link提供了以下内容

然而,尽管在复合操作中所做的编辑是一起交付的,但它们不是原子的。由于冲突解决,复合操作中的某些编辑可能永远不会被交付。

Realtime API中的数据模型对您所做的更改运行冲突解决方案,而不是保证操作将具有您所请求的确切效果。存储描述结构化的数据并执行需要锁定的操作不是一个好的选择。first link有一个参考,描述了如何使用实时模型来执行共享数学。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28196581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档