Ho circa 4 milioni di dischi al giorno e devo mantenere 7 anni online, quindi stiamo esaminando 10,2 miliardi di record che devo essere in grado di cercare. Gli utenti si aspettano che la ricerca sia abbastanza veloce per un'interfaccia utente, risultati in 3-5 secondi
A causa di una politica fuori dal mio controllo, non posso usare una soluzione di database off-shelf perché significa che dovrò fornire il database a un'altra squadra da gestire (non chiedere) il che significa che perdo la capacità di ottimizzare l'hardware e il software in quanto dispongono di un servizio unico per i database e di addebito (interno) da parte di GB. Sono sicuro che otterrò dei commenti che suggeriscono che io prenda il punto, Ho già capito e il management capisce che cosa mi stanno chiedendo è ridicolo.
Ho cercato di usare Lucene come punto cruciale della mia soluzione. Memorizzazione dei dati effettivi suddivisi per tipo e per giorno in file flat. Quindi usando un documento di Lucene per indicizzare alcuni dei campi cercati, con l'unico campo "Stored" che è l'id del record (in modo che io possa leggerlo dal file flat)
Non sono esattamente raggirato su Lucene o sui dischi rigidi, ma secondo la mia comprensione, ci sarà un tempo di attesa iniziale per cercare l'indice, quindi quando avrò tutti gli ID dei documenti Lucene, leggo i documenti che incorrere ulteriormente in IO / in cerca di tempo, poi ho letto il record reale dal flat flat ... Non riesco a immaginare, data la dimensione del set di dati, che questo sarà molto veloce, di cui sono un po 'preoccupato?
Lucene ha una dimensione massima del documento di 2,1 miliardi per indice, quindi avrò bisogno di più informazioni qui.
Questo approccio, a prima vista, sembra funzionare?
I dati che sto memorizzando sono dati di azione dell'evento. La maggior parte delle query sarà raggruppata in base all'ID evento e recuperando gli ultimi dettagli dell'azione evento per un particolare evento. Alcune query analizzeranno gli eventi con insiemi di grandi dimensioni e le loro singole azioni-evento.