2011-12-14 20 views
9

¿Hay una aplicación Java eficiente de un almacenamiento de claves-valor basado en sistema de archivos con las siguientes características:de Java basada en disco de almacenamiento de clave-valor

  1. tienda, sobrescribir, y recuperar las matrices de bytes por un identificador único (puede ser asignado por el almacenamiento)
  2. Sin caché de memoria (leer medios leídos del sistema de archivos, escribir medios escribir al sistema de archivos inmediatamente)
  3. de datos de tamaño total de hasta unos pocos terabytes
  4. Número de objetos almacenados hasta cientos de millones
  5. número manejable de los objetos del sistema de archivos (mover/copiar/eliminar toda almacenamiento en el nivel de sistema de archivos)

Will Berkeley DB JE hacer?

+0

¿por qué la aversión a muchos objetos del sistema de archivos? Esto es bastante fácil de administrar si abandonas ese requisito. O bien, probablemente solo puedas usar SQLITE – wowest

+0

No esperaría que SQLite escalara bien a "unos pocos terabytes". – Gray

+0

Berkeley DB JE sin duda estaría en mi lista de cosas para probar si nada más. Creo que una base de datos SQL sería mucho más lenta. Sin embargo, no me puedo imaginar haciendo un movimiento/copia/eliminación de archivos de tamaño de terabyte. – Gray

Respuesta

3

Simplemente formatee una partición dedicada con un sistema de archivos de su elección? El sistema de archivos cumpliría los requisitos 1-4, y el requisito 5 se puede cumplir moviendo/copiando o eliminando esa partición.

+0

Tan pronto como el tamaño de los datos fue "terabytes" y una sola clave de una ID, estaba pensando lo mismo. No conozco una referencia de Java de forma directa, pero cada servidor de correo electrónico en la memoria reciente (exim, postfix, sendmail, qmail) funciona de esta manera, creo. – BRFennPocock

1

Sugiero MapDB, MapDB proporciona Mapas simultáneos, Conjuntos y Colas respaldados por almacenamiento en disco o memoria no acumulada. Ligero y hackeable

Cuestiones relacionadas