Gli SSD sono ormai comuni; Amazon EBS è supportato da SSD, quindi la maggior parte dei database cloud ora funziona anche su SSD (Heroku PostgreSQL, ecc.). I database e le architetture correlate sono state progettate tradizionalmente con l'idea che l'accesso casuale sia negativo, non è più il caso degli SSD.Quali sono le implicazioni dell'uso dell'SSD sulle ipotesi fondamentali del database?
In che modo gli SSD influiscono su quanto segue?
- Progettazione database: i DB sono progettati per ridurre al minimo la ricerca di dischi (WAL, alberi B). In che modo gli SSD modificano i componenti interni e l'ottimizzazione di un progetto DB?
- Sviluppo di applicazioni - L'ipotesi di lavoro è sempre stata che (a) che si desidera richiedere gli utenti del server a memoria, senza DB, e (2) che l'accesso al DB è legato IO. Con gli SSD, il recupero dei dati dal DB può essere abbastanza veloce e l'accesso al DB è spesso legato alla rete. Questo riduce la necessità di database in memoria? Ovviamente si vuole ancora pre-elaborazione operazioni costose, ma è potenzialmente in grado semplicemente archiviarli in un database specializzati DB
- - Ci sono un bel paio di DB che fanno cose che relazionale DB sono supponiamo di essere male (in parte a causa della accesso casuale ai dati). Uno di questi esempi sono i DB grafici (Neo4j) che memorizzano i nodi e gli elenchi di adiacenze sul disco in modo compatto. Questi database sono utili se possiamo implementare un RDBMS su SSD e non preoccuparci dell'accesso casuale?
Cosa pensereste di utilizzare il software per virtualizzare un "RAMDisk" in cui le scritture vengono copiate sul disco rigido ma le letture sono solo RAM? Mi rendo conto che ci sarebbe una complicazione di memorizzazione nella cache e una possibile mancanza di spazio (a seconda della dimensione del database) ma sarebbe un metodo fattibile per migliorare la velocità del database in situazioni medie? Inoltre, la natura di accesso casuale di esso rende gli indici cluster inutili o addirittura inefficienti? Mi scuso in anticipo per la mia mancanza di conoscenza in materia. –
@JonathanGray Tale software esiste già ed è estremamente utile: il kernel di Linux. –
@JonathanGray ... e no, gli indici cluster, le tabelle organizzate sull'indice, ecc. Rimangono utili perché lasciano che il db eviti di fare grandi tipi. –