2010-10-18 8 views
5

Estoy buscando una biblioteca incrustable para hacer E/S de archivos atómicos desde Java. Necesito la biblioteca para admitir las siguientes características.buscando un archivo de página atómica/por diario en java

  • gestión básica de la página - asignar/páginas libres y leer/escribir
  • atómica (todo o nada) escribe (básicamente por diario de E/S)
  • Un formato de página sencilla binaria (tiene que ser legible por C++)

  • No necesita ser que rápido (o concurrente), simplemente simple y confiable.

¿Alguien ha usado algo en el pasado que se ajuste a la ley?

cosas que he mirado en

me encontré con la parte interna para el proyecto kaha db para ser útil, pero el desarrollo parece haber cambiado a un proyecto llamado fusesoure hawtdb. Hawt actualmente parece confiar en I/O mapeada de memoria que suena bien al principio, pero limita el tamaño del archivo de página a la que puede acceder a 2GB a menos que vaya a un sistema JVM + de 64 bits (debido a limitaciones de espacio de direcciones JVM).

Algunas alternativas que estoy considerando son el proyecto Cassandra, pero no sé si es incrustable. He investigado derby (que creó muchos archivos cuando se ejecutó) y H2 (lo cual me pareció prometedor, pero no lo busqué demasiado). Estos parecían tener formatos de archivos de página relativamente complejos y parecen proporcionar mucho más de lo que necesito. MySQL proporcionó documentos para el formato de archivo de página, pero también fue un poco complejo.

Respuesta

2

HOWL

HOWL es una aplicación que proporciona registrador características requeridas por el proyecto ObjectWeb JOTM, con una API pública que generalmente es utilizable por cualquier administrador de transacciones. HOWL utiliza registros binarios sin formato para maximizar el rendimiento y especifica una API de periodización con los métodos necesarios para admitir las operaciones de recuperación de JOTM.

HOWL está destinado a ser utilizado para el registro de los datos temporales, tales como eventos de transacciones XA

+0

Esta es en realidad una implementación anterior, escrita en parte por el mismo autor como kaha y hawt. Aún es útil. – Justin

0
  • Berkley DB? (La versión tradicional con JNI, no la versión de Java si también desea acceder a través de C++). No lo he usado, pero parece ajustarse a sus requisitos más de cerca que algunas de las alternativas que ha enumerado.

  • SQLLite? Una base de datos similar pero más relacional. Nativo, pero con enlaces de Java.

Solo algunas otras ideas. Sin embargo, es posible que estos no proporcionen acceso lo suficientemente bajo para el archivo de página basado en E/S.

+1

También puede ser que desee para buscar las respuestas a esta pregunta en el caso de que decidió construir su propia: http: // stackoverflow.com/questions/3759311/memory-mapped-files-and-atomic-writes-of-single-blocks – kaliatech

+0

Tengo que decir que SQLLite realmente tiene un código bien comentado, se lee más como una novela que como fuente. – Justin

0

un viejo, pero bueno JDBM

+0

Gran comentario en su javadoc 'El conjunto de registros sucios en la lista de usuarios constituye una transacción. Más adelante, enviaremos estos registros a algún asunto de recuperación. – Justin

Cuestiones relacionadas