是否有 ARIES 或其他 ACID 确保算法的通用实现?
我有一个应用程序,我想以原子方式执行某些操作。 然而,这些操作发生在远程存储上,连接可能会断开,操作可能会失败等。
有大量关于如何强制执行 ACID 属性的文献 - 预写日志记录、ARIES 等 - 但是否有这些的通用实现可用的?
本质上我正在寻找的是一些库/API/等等。我可以在其中提供一些稳定的存储(例如本地硬盘)用于日志记录,并执行我的特定操作(在不稳定的远程存储上),并让这个假设的帮助程序代码处理大部分 ACID 簿记。
显然,我需要提供自己的自定义代码来回滚某些事情等,但似乎进行日志记录、扫描日志等的高级操作可以概括并包装在某个库中。
这样的事存在吗?
I have an application which I'd like to carry out certain actions atomically.
However, these actions are occurring on remote storage, and connections may drop, actions may fail, etc.
There's plenty of literature on how to enforce ACID properties - write-ahead logging, ARIES, etc. - but are there any generic implementations of these available?
Essentially what I'm looking for is some library/API/etc. where I can provide some stable storage (eg local hard disk) for logging, and perform my paricular actions (on an unstable remote storage), and have this hypothetical helper code handle the bulk of the ACID bookkeeping.
Obviously I would need to provide my own custom code rolling back certain things and soforth, but it seems like the high level of doing the logging, scanning the log, etc. could be generalized and wrapped in some library.
Does such a thing exist?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 C# 中,System.IO.Log 命名空间有与日志相关的帮助程序,这可能与您正在寻找的内容很接近,尽管它本身并不能直接帮助隔离。如果您使用 LogRecordSequence,您将在其下面获得相当复杂的日志实现。
此外,sqlite 可以完成所有这些工作,并且属于公共领域。我想它的存储引擎等在某种程度上是可分离的,尽管您可能必须自己将其拆开。
In C#, the System.IO.Log namespace has log-related helpers, which might be close to what you're looking for, though it won't help directly with isolation on its own. If you use LogRecordSequence, you get a pretty sophisticated log implementation underneath it.
Additionally sqlite does all of this and is in the public domain. I imagine its storage engine etc. would be somewhat separable, though you'd likely have to tear it apart yourself.