Les dejo mis apuntes por si alguna persona le son útiles entre algunos párrafos pueden pegar las imágenes de las diapositivas mostradas en la clase
Cloudbreak: Base de datos de escalado de cuenta horizontal
Level Db basa de datos tradicional que utilizan varias blockchain pero tiene un inconveniente y es que la base de datos no puede hacer uso de lecturas y escrituras simultaneas, por esta razón tiene un máximo de 5000 transacciones por segundo
Esta Imagen muestra el datasheet de una Samsung que es una ssd del mercado, a pesar de que la ssd tiene 30 veces menos costo por byte es mil veces mas lenta que una RAM. En la imagen podemos ver que este ssd tiene 500mil IOPS que son lecturas y escrituras simultaneas.
1 Subproceso que tiene un solo ssd con una capacidad máxima de 15 lecturas por segundo tendríamos máximo 7500 transacciones por segundo
Los SSD modernos admiten 32 subprocesos simultáneos, por lo que pueden admitir 370000 lecturas por segundo aproximadamente 185mil tps sin embargo organizar la base de datos en cuentas de manera que sea posible lecturas y escrituras simultaneas entre estos 32 subprocesos es un desafío.
Hasta este punto en las blockchain tradicionales se ha generado un cuello de botella a pesar de que la GPU y la SSD tengan un mayor rendimiento la CPU no lo tiene.
Por esta razón Solana no hace uso de una base de datos tradicional para resolver el problema al contrario utiliza los siguientes procedimientos:
1. Archivos Mapeados en memoria
2. Utiliza operaciones secuenciales en vez de aleatorias
a. El índice de cuentas y bifurcaciones se almacena en RAM
b. Las cuentas se almacenan en archivos asignados en memoria de hasta 4MB de tamaño
c. Cada mapa de memoria solo almacena cuentas de una única bifurcación propuesta
d. Los mapas se destruyen aleatoriamente en tantos SSD como estén disponibles
e. Se utiliza semántica de copy on writes
f. Las escrituras se agregan a un mapa de memoria aleatorio para la misma bifurcación.
g. El índice se actualiza después de que se completa cada escritura.
Todos estos procesos permiten que las actualizaciones de la cuenta se copien en la escritura y se agregen a un SSD aleatorio escalando tanto serialmente como horizontalmente
Otra de las optimizaciones que hace Solana es tener un recolector de basura que básicamente lo que hace es eliminar las bifurcaciones que llevan mucho tiempo atrasadas, Bifurcaciones que ya no tienen confirmaciones sobre sus transacciones.
En conclusión solana no usa una base de datos. Solana hace uso de las SSD disponibles en el sistema para poder registrar la información de dos maneras una es los archivos mapeados en memoria y la segunda es las operaciones secuenciales en vez de aleatorias.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.