2010-09-01 22 views
0

J'ai besoin d'un format de fichier indexé pouvant contenir quelques centaines de blobs binaires de taille variable.Recommande un format de fichier indexé qui peut être mis à jour via un accès aléatoire en Java

Blobs sont autour 1-5MB et le fichier pourrait être aussi grand que 1 Go. Je dois être capable de trouver, lire, ajouter et supprimer rapidement des blobs sans recréer le fichier entier. Je n'ai pas besoin de compresser les blobs, mais si les blobs étaient enlevés, je voudrais récupérer ou réutiliser l'espace.

Idéalement, il y aurait une API Java.

Je suis en train de faire cela avec un format ZIP, mais il n'y a aucun moyen connu de mettre à jour un fichier ZIP sans recréer et la performance est mauvaise.

Je l'ai regardé dans SQLite, mais ses performances blob était lente, et son surpuissant pour mes besoins.

Des pensées, ou devrais-je rouler les miennes? Et si je lance moi-même des suggestions de livres ou de pages Web?

+1

Etes-vous vraiment sûr que vous avez besoin que ce soit dans un fichier? Ce que vous demandez est quelque chose que les systèmes de fichiers fournissent dès la sortie de la boîte - si vous placez chaque objet blob dans un fichier séparé. – meriton

Répondre

1

Vous avez besoin d'un système de fichiers virtuel. Notre SolFS est l'une des options mais nous avons seulement la couche JNI, car le moteur est écrit en C. Il existe une option de plus, CodeBase, mais comme ils ne fournissent pas une version d'évaluation de leur système de fichiers, j'en connais quelques-uns à propos de ça.

SolFS est idéalement adapté à votre tâche, car il vous permet d'avoir des flux alternatifs pour les fichiers et associé de recherche de métadonnées avec chaque fichier ou même flux alternatif.

4

Berkeley DB Java Edition fait ce que vous avez besoin. C'est gratuit.

+0

semble parfait, mais GPL ou licence sera un problème pour mon entreprise, je pense. – awinbra

+0

Alors qu'en est-il d'Apache Derby? Ou, comme on l'a fait remarquer, les systèmes de fichiers sont conçus pour ce genre de choses. Peut-être que vos cas d'utilisation justifient un format de fichier indexé, auquel cas vous devez mentionner vos besoins. –

+0

Je peux peut-être m'en tirer en utilisant simplement un dossier dans le système de fichiers. Son pour un format de fichier de projet pour un programme d'édition multimédia qui peut combiner des images, des sons et des vidéos. Un peu comme un fichier powerpoint. – awinbra