Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-08-2023
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
SpacetimeDB: Desarrollando un motor de base de datos

Se han preguntado como es hacer un motor de base de datos (RDBMS)?

Durante varios meses he estado en un equipo haciendo eso y hoy lanzamos la primera alpha:

https://spacetimedb.com

asi que si tienen preguntas puedo responderlas.

---

Todo empezó con mi interés en hacer un lenguaje de programación relacional (https://tablam.org) y por ahi me contactaron para unirme al equipo.

No esta mas decir que no tenia experiencia previa sobre el tema, solo un conocimiento general.

He aprendido un montón haciendo esto: Hacer una motor de estos es como hacer tu propio OS, VM, lenguaje, compilador, transpiler, web API, server, memory manager, SDK(s), TODO JUNTO!.

Una de las cosas mas retadoras es que el motor esta inicialmente enfocado en videojuegos, y tenemos que lograr que las consultas se ejecuten ENTRE cada ciclo, ósea, con un framerate mínimo de 12 fps nos da un 0.8 sec para el juego hacer toda su lógica de rendereado, ENTRE ESE TIEMPO, tenemos que haber resuelto toda la llamada a la BD.

Les comparto un curso de desarrollo de BD que es muy practico y es dado por uno de los mejores del sector:

https://www.youtube.com/watch?v=uikbtpVZS2s
__________________
El malabarista.
Responder Con Cita
  #2  
Antiguo 09-08-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Responder Con Cita
  #3  
Antiguo 10-08-2023
Avatar de pgranados
pgranados pgranados is offline
Miembro
 
Registrado: sep 2022
Ubicación: México
Posts: 264
Poder: 2
pgranados Va por buen camino
Responder Con Cita
  #4  
Antiguo 10-08-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Se ve interesante, aunque realmente este mundo se escapa a mis conocimientos...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 10-08-2023
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Menuda flipada más interesante....

Aunque ya no sé si mi cabeza estaría a la altura. Bueno, a la altura seguro, y al tamaño también, me refiero al cerebro...

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #6  
Antiguo 10-08-2023
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Es como todo: Hacer una version que pueda competir con los grandes es todo un rollo, pero una version basica no tanto:

https://cstack.github.io/db_tutorial/


Un ejemplo es decir "voy a cojer varios archivos .csv, donde cada uno es una tabla, y .csvi que es lo mismo pero para indices" y empezar a hacer los métodos de consulta y actualización.

Asi no parece tan difícil, cierto?

En sintesis, un motor de BD es "simplemente" una interface como:

Código Delphi [-]

TDatabase = class
 function Open(var file: String): TDatabaseInstance;
end;


TDatabaseInstance = class
 function New(var file: String): TDatabaseInstance;
 
 function add_record(var tableId: Int, var: Data):TDataResult;
 function update_record(var tableId: Int, var: Data):TDataResult;
 function delete_record(var tableId: Int, var: Data):TDataResult;

 function seek_record(var tableId: Int, var: Query):TDataResult;

end;


Donde se pone todo un rollo es en:

- Como hago para que varios thread actualicen los datos en un mismo archivo?
- Y como hago que ese archivo sea MUCHO mas eficiente que un .csv?
- Y como implemento un protocol ACID?

El resto (pasear SQL, ejecutarlo, hacer drivers, ...) es relativamente "simple" (bueno siempre y cuando no intenten implementar toda la especificación de SQL!).


Los 3 pasos anteriores son los quebraderos de cabeza, pero como todo tienen su "nivel simple, basico, decente y mounstroso!"
__________________
El malabarista.
Responder Con Cita
  #7  
Antiguo 11-08-2023
PepCat PepCat is offline
Miembro
 
Registrado: mar 2017
Posts: 96
Poder: 8
PepCat Va por buen camino
¡Felicitaciones, Mario, por este impresionante proyecto!

Realmente estás llevando las cosas a un nivel superior. Es emocionante ver vuestro proyecto en GitHub, y aún más emocionante saber que está desarrollado utilizando Rust.

¡Sigue adelante con este trabajo excepcional!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Un consejo para uso motor de base de datos Malparo Conexión con bases de datos 4 07-05-2010 01:03:45
Motor base de datos de Borlanda v5.2 (BDE) SerPan Conexión con bases de datos 0 05-07-2007 16:44:31
que Motor de Base de Datos utilizar ? killaton Conexión con bases de datos 6 16-03-2005 21:04:20
Motor base de datos acces Bitbanner Conexión con bases de datos 1 23-02-2005 10:32:15
Error en el motor de la base de datos Walterdf Conexión con bases de datos 1 07-05-2003 03:08:09


La franja horaria es GMT +2. Ahora son las 14:02:38.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi