简体   繁体   English

是否有ARIES或其他可确保ACID的算法的通用实现?

[英]Are there generic implementations of ARIES or other ACID-ensuring algorithms?

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? 关于如何强制实施ACID属性的文献很多,例如预写日志记录,ARIES等。但是有这些可用的通用实现吗?

Essentially what I'm looking for is some library/API/etc. 本质上,我正在寻找的是一些库/ 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. 我可以在其中提供一些稳定的存储(例如本地硬盘)进行日志记录,并执行我的特殊操作(在不稳定的远程存储上),并使用此假设的帮助代码来处理大部分ACID簿记。

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? 这样的事情存在吗?

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. 在C#中, System.IO.Log命名空间具有与日志相关的帮助程序,尽管它本身不能直接帮助隔离,但它可能与您要查找的内容很接近。 If you use LogRecordSequence, you get a pretty sophisticated log implementation underneath it. 如果使用LogRecordSequence,您将在其下获得一个相当复杂的日志实现。

Additionally sqlite does all of this and is in the public domain. 另外, sqlite可以完成所有这些工作,并且属于公共领域。 I imagine its storage engine etc. would be somewhat separable, though you'd likely have to tear it apart yourself. 我想它的存储引擎等在某种程度上是可分离的,尽管您可能必须自己拆开它。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM