garage rdbms
TRANSCRIPT
![Page 1: Garage RDBMS](https://reader034.vdocuments.net/reader034/viewer/2022042503/5aadce657f8b9ae23a8b459f/html5/thumbnails/1.jpg)
DBXTalk/Garage
A strategy to RDBMS connectivity
![Page 2: Garage RDBMS](https://reader034.vdocuments.net/reader034/viewer/2022042503/5aadce657f8b9ae23a8b459f/html5/thumbnails/2.jpg)
Esteban Lorenzano
Author of DBXTalk (with many others), Voyage and your Pharo fireman :)
![Page 3: Garage RDBMS](https://reader034.vdocuments.net/reader034/viewer/2022042503/5aadce657f8b9ae23a8b459f/html5/thumbnails/3.jpg)
One year ago…
![Page 4: Garage RDBMS](https://reader034.vdocuments.net/reader034/viewer/2022042503/5aadce657f8b9ae23a8b459f/html5/thumbnails/4.jpg)
DBXTalk suite
• Pharo strategy to RDBMS connectivity
• Includes:
• GLORP
• Database drivers
• Other tools
![Page 5: Garage RDBMS](https://reader034.vdocuments.net/reader034/viewer/2022042503/5aadce657f8b9ae23a8b459f/html5/thumbnails/5.jpg)
GLORP
• “The” ORM for Smalltalk dialects (no point on doing another).
• Mature, modern, proven, used, tested, all what you might want (except cookies).
• “GLORP is amazing!” (Niall Ross, a couple of years ago)
• Just… Pharo port of GLORP is less amazing :)
![Page 6: Garage RDBMS](https://reader034.vdocuments.net/reader034/viewer/2022042503/5aadce657f8b9ae23a8b459f/html5/thumbnails/6.jpg)
GLORP for Pharo
• Old port…
• Nobody knows when was branched :(
• Is not completely ported
• Some are working on it, but cost of maintaining is growing
• Compatible with PostgresV2, NBSqlite3 and OpenDBX
![Page 7: Garage RDBMS](https://reader034.vdocuments.net/reader034/viewer/2022042503/5aadce657f8b9ae23a8b459f/html5/thumbnails/7.jpg)
Database drivers
• There are several native drivers on Pharo (for non-commercial databases)
• PostgresV2, PostgresV3, Sqlite3, MySQL
• They are good, but:
• Incompatible APIs (so is hard to plug them into GLORP)
• Dispersed, not clear maintenance strategy
![Page 8: Garage RDBMS](https://reader034.vdocuments.net/reader034/viewer/2022042503/5aadce657f8b9ae23a8b459f/html5/thumbnails/8.jpg)
Database drivers
• We provide OpenDBX driver to connect with commercial databases:
• Oracle, MSSQL, others.
• Uses FFI so it blocks VM on execution.
• Is “yet another layer”, so not all capabilities are provided.
![Page 9: Garage RDBMS](https://reader034.vdocuments.net/reader034/viewer/2022042503/5aadce657f8b9ae23a8b459f/html5/thumbnails/9.jpg)
architecture
OpenDBXODBC NBSQLite3
Oracle MSSQL Others
PostgresV2 MySQL
PostgresV3 SQLite3
GLORP
![Page 10: Garage RDBMS](https://reader034.vdocuments.net/reader034/viewer/2022042503/5aadce657f8b9ae23a8b459f/html5/thumbnails/10.jpg)
Documentation
• There is none, or almost none.
• When it is, people does not know where to find it.
![Page 11: Garage RDBMS](https://reader034.vdocuments.net/reader034/viewer/2022042503/5aadce657f8b9ae23a8b459f/html5/thumbnails/11.jpg)
Now
![Page 12: Garage RDBMS](https://reader034.vdocuments.net/reader034/viewer/2022042503/5aadce657f8b9ae23a8b459f/html5/thumbnails/12.jpg)
Garage
• Common API to connect relational drivers (think on JDBC)
• Compatible with GLORP
• Implements drivers for:
• Sqlite3, PostgresV2, MySQL
• … and OpenDBX
![Page 13: Garage RDBMS](https://reader034.vdocuments.net/reader034/viewer/2022042503/5aadce657f8b9ae23a8b459f/html5/thumbnails/13.jpg)
Architecture
Garage
OpenDBXODBC NBSQLite3
Oracle MSSQL Others
PostgresV2 MySQL
PostgresV3 SQLite3
GLORP
![Page 14: Garage RDBMS](https://reader034.vdocuments.net/reader034/viewer/2022042503/5aadce657f8b9ae23a8b459f/html5/thumbnails/14.jpg)
Architecture
Garage
OpenDBXODBC NBSQLite3
Oracle MSSQL Others
PostgresV2 MySQL
PostgresV3 SQLite3
GLORP
![Page 15: Garage RDBMS](https://reader034.vdocuments.net/reader034/viewer/2022042503/5aadce657f8b9ae23a8b459f/html5/thumbnails/15.jpg)
Jenkins
• OpenDBX for Oracle, MySQL, Postgresql and SQLite3
• Native MySQL, PostgresV2 and NBSQLite3
• GLORP + Garage
• Linux and Windows. Mac soon(™).
• Yes, it is just 32bits
• https://ci.inria.fr/dbxtalk
![Page 16: Garage RDBMS](https://reader034.vdocuments.net/reader034/viewer/2022042503/5aadce657f8b9ae23a8b459f/html5/thumbnails/16.jpg)
Next year
![Page 17: Garage RDBMS](https://reader034.vdocuments.net/reader034/viewer/2022042503/5aadce657f8b9ae23a8b459f/html5/thumbnails/17.jpg)
We really need
• New GLORP port.
• Threaded VM
• … and OpenDBX drivers to take care about.
• DOCUMENTATION!
![Page 18: Garage RDBMS](https://reader034.vdocuments.net/reader034/viewer/2022042503/5aadce657f8b9ae23a8b459f/html5/thumbnails/18.jpg)
Would be nice
• Add drivers (as needed, as always).
• Replace FFI drivers with native drivers when possible (but many vendors does not share the API).
• Replace OpenDBX with vendor libraries (but this does not have much sense before ThreadedVM).
• DOCUMENTATION!