Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Cloudbreak

9/15
Recursos

Aportes 8

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

" LevelDB se utiliza como base de datos de backend para IndexedDB de Google Chrome y es uno de los backends compatibles con Riak. Además, Bitcoin Core y go-ethereum almacenan los metadatos de la cadena de bloques utilizando una base de datos LevelDB. Minecraft Bedrock Edition utiliza una versión modificada para el almacenamiento de datos de fragmentos y entidades. Autodesk AutoCAD 2016 también utiliza LevelDB. "

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.

Solana hace uso de:

  • Archivos mapeados en memoria.
  • Operaciones secuenciales en vez de aleatorias.
  • Recolector de basura de bifurcaciones atrasadas.

En conclusión, no hace uso de base de datos, sino de todas las SSDs disponibles para guardar la información.

“Solana no usa una base de datos. Hace uso de las SSD disponibles para registrar la información gracias a los Archivos Mapeados en memoria y las Operaciones secuenciales en vez de aleatorias ”

CloudBreak

Base de datos de escalado de cuentas horizontal.

CASI TODAS LAS BLOCKCHAIN USAN LA BASE DE DATOS LEVELDB…

Es la solución implementada en Solana para gestionar la escritura y lectura de los datos: Hacer el uso de archivos mapeados en memoria y operaciones secuenciales en vez de aleatorias

LevelDB es una biblioteca de almacenamiento rápido de código abierto basada en pares clave-valor con almacenamiento en disco