我有一个应用程序,我想以原子方式执行某些操作。 但是,这些操作发生在远程存储上,连接可能会丢失,操作可能会失败等等。
关于如何强制实施ACID属性的大量文献 - 预先写入日志记录,ARIES等 - 但这些可用的通用实现是否可用?
基本上我正在寻找的是一些库/ API /等。我可以提供一些稳定的存储(例如本地硬盘)进行日志记录,并执行我的特定操作(在不稳定的远程存储上),并让这个假设的帮助程序代码处理大部分ACID簿记。
显然,我需要提供自己的自定义代码,回滚某些东西并且更加柔和,但是看起来像执行日志记录,扫描日志等的高级别可能会被推广并包装在某些库中。
这样的事情存在吗?
答案 0 :(得分:1)
在C#中,System.IO.Log命名空间具有与日志相关的帮助程序,这可能与您正在寻找的程序很接近,但它本身无法直接帮助隔离。如果使用LogRecordSequence,则会在其下面获得非常复杂的日志实现。
此外sqlite完成所有这些并且属于公共领域。我想它的存储引擎等在某种程度上是可以分离的,尽管你可能不得不将它拆开。