首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >model.commit()和dataset.commit()之间的区别

model.commit()和dataset.commit()之间的区别
EN

Stack Overflow用户
提问于 2012-07-26 05:20:08
回答 1查看 688关注 0票数 1

我一直在将我的代码从没有事务的TDB支持的模型转换为使用TDB支持的事务模型。在没有事务的情况下,据我所知(也来自this mailing list post),在没有事务的情况下,在修改数据集之后,有必要调用model.close(),以确保数据集被正确同步,并且自动执行dataset.sync()

我注意到有两组控制事务的方法:

dataset.begin()dataset.commit()

model.begin()model.commit()

这两组方法有什么不同?调用model.commit()与调用dataset.commit()的方式是否与model.close()自动处理dataset.sync()的方式相同

我希望这是清楚的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-01 01:08:10

model.commit()是在SPARQL发明RDF之前,在模型中存储单元时设计的旧接口。

dataset.begin接受一个读/写标志。dataset.begin(ReadWrite.READ)。通过知道这是一个读事务,系统可以更高效地进行(以后不需要管理潜在的写操作),而且锁也不会有问题(两个事务在对其他视图进行读操作时,每个事务都试图启动一个写操作)。

TDB事务是完全可序列化的,并且在数据集级别工作。

TDB事务允许写入器在旧的读事务仍处于活动状态时启动,对于自读事务启动以来已经提交的任何深度的新写入器。不同的事务会看到数据库的不同状态,每个状态都是一致的。没有脏读。

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

https://stackoverflow.com/questions/11658818

复制
相关文章

相似问题

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