La mia app node.js ha a che fare con tabelle (a volte grandi, pochi MB) di dati numerici. Sto per usare gli oggetti binari nativi di JavaScript per questo scopo (cioè ArrayBuffer
e amici), perché sono veloci e ben supportati da fantastiche librerie come scijs-ndarray .
Mi chiedo ora come memorizzare questi dati, dato che dovrà essere manipolato frequentemente - cambiare qui alcune colonne di numeri, rimuovere e aggiungere alcune righe lì, ecc.
Se utilizzo un oggetto blob in qualche database, la persistenza delle modifiche su base byte per byte varia da difficile a impossibile.
Se immagazzino ogni Buffer in un file binario, e utilizzo le operazioni di ricerca / lettura / scrittura del filesystem, ottengo il controllo preciso ma perdo la convenienza, e non so cosa perderei in termini di velocità, sicurezza e dimensione (forse ha senso eseguire la compressione RLE su dati sparsi).
Forse ci sono altre opzioni (Protobuf? HDF5?) ma non so se veramente sono opzioni valide o se non ho appena fatto la mia ricerca. Inoltre, la serializzazione avanti e indietro tra i formati richiede tempo.
Non ho mai fatto questo genere di cose e mi manca completamente l'intuizione per ciò che è significativo e ciò che è trascurabile. Come affronteresti questo problema?