领域:MVCC和长期运行的事务

埃里克·布特(Eric But)

我是Realm的新手(使用Xamarin版本在Visual Studio 2015中进行Android开发),并且想了解处理事务的最佳实践。

由于Realm要求在事务中进行对RealmObject的字段的所有写入操作,因此,如果您决定将数据绑定到此类对象,以便最终用户可以通过UI对其进行编辑,则必须保留一个未完成的事务,直到用户单击“保存”为止。 ..这可能会在几秒钟或更长的时间内发生。

Realm使用MVCC来管理并发性,因此读取永不阻塞,而写入仅阻塞其他写入(这是我的理解),因此尽管解决了一个坏主意(至少对于我们以前使用SQL Server的人是个坏主意),但并不能使事务长期运行如果读取不被阻塞,那么在Realm中似乎并不那么糟糕。但这对我来说仍然是错的。

相关问题:

1)建议将数据绑定到RealmObjects的方法是什么?

2)是否在任何UI上下文中使事务处于打开状态,而该事务可以在无法预测的时间内保持打开状态,则可能是潜在的错误或性能差的原因?

在此先感谢(这也是我关于SO的第一个问题-希望我没有超出指南的范围!)。

克里斯蒂安·杜邦(Kristian Dupont)

是的,这对我们来说也是错的:-)

我们的想法有所改善(https://github.com/realm/realm-dotnet/issues/647),因此您不必诉诸于此。

关于您的其他问题:

1)这篇博客文章有一些细节,我不知道这是否对您有帮助。如果您有其他更具体的问题,请随时提出。

2)长期事务在某种程度上是反模式,在Realm和SQL数据库中都是如此。在提交事务之前,更新状态不会一直保持,因此,如果事务表示很多更改并且您的应用崩溃,您的用户可能会丢失工作。此外,其他尝试读取的线程将访问旧版本,如果尝试写入,则将阻塞它们,直到提交事务为止。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

领域:MVCC和长期运行的事务

来自分类Dev

Api蓝图和长期运行的工作

来自分类Dev

棘轮PHP和长期运行的任务

来自分类Dev

MySQL / InnoDB和长期运行的查询

来自分类Dev

MGO和长期运行的Web服务-恢复

来自分类Dev

棘轮PHP和长期运行的任务

来自分类Dev

是否可以使用WCF实现长期运行的多次写入事务?

来自分类Dev

对于长期运行的报告,我是否使用只读或可序列化的事务?

来自分类Dev

领域写入事务失败,尽管在事务中

来自分类Dev

Clojure原子的长期运行功能

来自分类Dev

测试长期运行测试的模式

来自分类Dev

优化内存读写的长期运行

来自分类Dev

Clojure原子的长期运行功能

来自分类Dev

预定的长期运行的用户查询

来自分类Dev

具有Akka和长期运行流程的参与者模式

来自分类Dev

Python 3,Tkinter和线程化一个长期运行的过程,OOP风格

来自分类Dev

Azure Blob 存储:如何以长期运行和可恢复的方式枚举 Blob?

来自分类Dev

MVCC与B树和并发

来自分类Dev

事务隔离级别和锁定记录,对正在运行的事务中的记录禁用SELECT

来自分类Dev

多个领域事务导致UI线程冻结

来自分类Dev

领域事务导致GC扫描ui冻结

来自分类Dev

BroadcastReceiver 中的领域事务不起作用

来自分类Dev

长期运行后,ubuntu 14.04运行缓慢

来自分类Dev

使用PostgreSQL MVCC跨多个表进行事务隔离

来自分类Dev

长期存储和恢复变化

来自分类Dev

HttpClient和长期运行的Windows Services-线程死锁的潜在可能性是什么以及如何避免它

来自分类Dev

自从不赞成使用Loaders和AsyncTask以来,您将对长期运行的任务使用什么?

来自分类Dev

领域和RxSwift连接

来自分类Dev

领域索引和主键

Related 相关文章

热门标签

归档