Salva efficientemente le strutture di big data [chiuso]

-1

Ho bisogno di salvare la grande struttura dei dati (albero con nodi specifici) nel file in modo efficiente. I dati cambiano continuamente, quindi ho bisogno di riscrivere l'intera struttura dei dati molto spesso, quindi una semplice serializzazione non è una buona opzione.

Quali algoritmi possono essere utilizzati per il salvataggio efficiente di strutture di big data?

Ho usato la serializzazione semplice, ma voglio provare le algorihms che salvano solo il delta della mia struttura e quindi unisco quelle modifiche. In quale direzione devo spostarmi?

    
posta Артыков Акмалжон 14.01.2015 - 10:22
fonte

2 risposte

1

Tendo ad essere d'accordo con risposta di Doc Brown : farai meglio utilizzare un database . Potrebbe essere sqlite o un vero server di database: mongodb o postgresql , ecc .... Potresti forse usare un file indicizzato come GDBM (anziché un database) in alcune circostanze limitate. Se i dati sono piccoli (che a quanto pare non lo sono) potresti considerare di persistere in alcuni formati testuali come JSON (che potresti usare anche all'interno delle tabelle del database).

Dovresti anche definire se la struttura dei dati è un albero reale (senza sottonodi condivisi) o se è un grafico. Potrebbe essere necessario gestire il set di elementi già scaricati e gestire i dati condivisi. Puntatori condivisi e puntatori intelligenti possono essere molto importanti.

È possibile memorizzare, in ogni oggetto significativo in memoria, qualche identificatore del database (o numero identificativo) e forse altre metainformazioni relative al salvataggio dei dati (salvataggio di data / ora, cambio orario, ecc ...)

Gli algoritmi BTW, copying Garbage Collection possono essere rilevanti (dal momento che persistere in alcuni database è abbastanza simile a un GC di copia) . Leggi anche il manuale GC .

Potresti essere interessato a persistenza e checkpoint delle applicazioni .

Dovresti progettare il meccanismo di persistenza abbastanza presto se possibile.

    
risposta data 14.01.2015 - 13:28
fonte
1

Risposta breve: considera l'utilizzo di un database.

I database ti consentono di salvare molto rapidamente solo la parte modificata di un intero gruppo di dati, mentre non devi occuparti delle parti invariate.

E ecco un ex post SO che tratta dell'argomento di archiviazione strutture ad albero nei database.

    
risposta data 14.01.2015 - 12:56
fonte

Leggi altre domande sui tag