Domanda

Sto lavorando su un sistema che avrà bisogno di memorizzare un sacco di documenti (file PDF, file di Word, ecc) che sto usando Solr / Lucene per la ricerca di informazioni Revelant estratte da tali documenti, ma ho anche bisogno di un posto per archiviare i file originali in modo che possano essere aperti / scaricati dagli utenti.

Stavo pensando a varie possibilità:

  • file system - probabilmente non è che una buona idea per memorizzare documenti 1m
  • database SQL - ma io non hanno bisogno la maggior parte delle sue caratteristiche relazionali, come ho bisogno di memorizzare solo il documento binario e la sua id quindi questo potrebbe non essere la soluzione più veloce
  • no-sql banca dati - non hanno alcun expierience con loro in modo non sono sicuro se sono nulla di buono neanche, ci sono anche molti di loro in modo da non so quale scegliere

Lo stoccaggio che sto cercando dovrebbe essere:

  • veloce
  • scallable
  • open-source (non fondamentale, ma bello avere)

Mi può consigliare ciò che è il modo migliore per memorizzare quei file saranno secondo te?

È stato utile?

Soluzione

Un file system - come suggerisce il nome -. È stato progettato e ottimizzato per memorizzare grandi quantità di file in modo efficiente e scalabile

Altri suggerimenti

È possibile seguire Facebook come si memorizza un sacco di file (15 miliardi di foto):

  • Inizialmente hanno iniziato con la condivisione NFS servito da apparecchi di archiviazione commerciali.
  • Poi si trasferisce a loro file server HTTP onw implementazione chiamato Haystack

Ecco una nota facebook se volete saperne di più http: //www.facebook .com / note.php? note_id = 76191543919

Per quanto riguarda la condivisione NFS. Tenete a mente che le condivisioni NFS di solito limita quantità di file in una cartella per motivi di prestazioni. (Questo potrebbe essere un contatore po 'intuitivo se si assume che tutti i sistemi di file recenti l'impiego B-alberi per conservare la loro struttura.) Quindi, se si sta utilizzando le condivisioni NFS comercial come (NetApp) sarà probabilmente necessario per mantenere i file in più cartelle.

Si può fare che se avete qualsiasi tipo di id per i tuoi file. Basta dividere rappresentazione ASCII in gruppi di pochi personaggi e cartelle make per ogni gruppo. Per esempio usiamo interi per gli ID in modo da file con ID 1234567891 viene memorizzata come archiviazione / 0012/3456/7891.

La speranza che aiuta.

A mio parere ...

Vorrei memorizzare i file compressi su disco (file system) e utilizzare un database per tenere traccia di loro.

e posibly utilizzare SQLite se questo è il suo unico lavoro.

File System: mentre pensando il quadro generale, il DBMS utilizzare nuovamente il file system. E il sistema di file è dedicato per mantenere i file, in modo da poter vedere le ottimizzazioni (come LukeH menzionato)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top