Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中查找原子/日志页面文件_Java_File Io_Atomic - Fatal编程技术网

在java中查找原子/日志页面文件

在java中查找原子/日志页面文件,java,file-io,atomic,Java,File Io,Atomic,我正在寻找一个用于从java执行原子文件I/O的可嵌入库。我需要库来支持以下功能 基本页面管理--分配/释放页面和读/写 原子(全部或无)写入(基本上是日志I/O) 一种简单的二进制页面格式(需要C++可读) 它不需要那么快(或并发),只是简单可靠 过去有没有人用过适合自己的东西 我调查过的事情 我发现项目的内部结构很有用,但开发似乎已经转向了一个名为FuseSure的FuseSure项目。Hawt目前似乎依赖于内存映射I/O,这一点一开始听起来不错,但除非您使用64位JVM+OS(由于JV

我正在寻找一个用于从java执行原子文件I/O的可嵌入库。我需要库来支持以下功能

  • 基本页面管理--分配/释放页面和读/写
  • 原子(全部或无)写入(基本上是日志I/O)
  • 一种简单的二进制页面格式(需要C++可读)

  • 它不需要那么快(或并发),只是简单可靠

过去有没有人用过适合自己的东西

我调查过的事情

我发现项目的内部结构很有用,但开发似乎已经转向了一个名为FuseSure的FuseSure项目。Hawt目前似乎依赖于内存映射I/O,这一点一开始听起来不错,但除非您使用64位JVM+OS(由于JVM地址空间的限制),否则会将页面文件的大小限制为2GB

我正在考虑的一些替代方案是该项目,但我不知道它是否可嵌入。我研究了(运行时创建了很多文件)和(看起来很有希望,但我没有深入研究)。这些文件似乎具有相对复杂的页面文件格式,并且似乎提供了远远超出我需要的内容。确实提供了页面文件格式的文档,但也有点复杂

  • ??(使用JNI的传统版本,如果您也希望通过C++访问,则不是Java版本)。我没有使用过它,但似乎比您列出的一些备选方案更符合您的要求

  • ??类似但更关注关系数据库。本机,但使用Java绑定

只是一些其他的想法。但是,这些可能无法为基于页面的文件i/o提供足够低的访问权限。

一个老版本,但很好

HOWL是一个日志程序实现,提供ObjectWeb JOTM项目所需的功能,并带有一个公共API,任何事务管理器都可以使用该API。HOWL使用未格式化的二进制日志来最大限度地提高性能,并指定一个日志API,其中包含支持JOTM恢复操作所需的方法


HOWL旨在用于记录临时数据,如XA事务事件

如果您决定构建自己的,您可能还需要注意这个问题的答案:我必须说SQLLite确实有很好的注释代码,它读起来更像是一本小说,而不是源代码。在他们的javadoc
中,一组脏记录构成了一个事务。稍后,我们将把这些记录发送给一些恢复工具。
这实际上是一个较旧的实现,部分由与kaha和hawt相同的作者编写。它仍然有用。