---------- Forwarded message ---------- From: Benoit St-Jean bstjean@yahoo.com Date: Sat, Mar 19, 2011 at 2:29 PM Subject: Re: [SqueakDBX] Problems To: Guillermo Polito guillermopolito@gmail.com
Hi Guillermo,
Since I'm doing lots of stuff using Smalltalk and a plethora of databases, I'd be willing to help you guys with SqueakDBX & Glorp.
I'm mostly working on Windows now (WinXP) but I have SQL Server, MS-Access, SQLite, Firebird, MySQL, InterBase & PostgreSQL database servers currently installed and running. I can also test Oracle & DB/2 if needed, all this on Windows of course.
If you need to test ports of SqueakDBX, I have many versions of Squeak, Pharo and VisualWorks installed as well as Dolphin, ObjectStudio & VisualAge. Even an old VSE environment that I sometimes fire up to soothe my nostalgic side! :)
Anyhow, I've been working exclusively with Smalltalk for the last 20 years and used to be working with Glorp's parent, TOPLink. As a matter of fact, my current employer is still using TOPLink with VisualAge & VisualWorks.
If I can be of any help, let me know.
P.S. I have been thinking, for a long time, about creating a *real-world* database model to seriously test database-related Smalltalk projects/packages/apps. I've always had the impression that testing against a 1000 records table ain't telling you much about how the app/package/project will behave in reality. I could create a real "benchmark" that could be used across multiple databases in not much time if needed.
In fact, most of the stuff I do (I'm working on my own OO-RDBMS mapping framework) is tested against millions of records because I've decided, upfront, that I would not put performance aside at the start. My framework ain't as "intelligent" and transparent as Glorp but it's fast, simple and lightweight. And I know how it will behave when faced with millions of records, with queries using 5-6 LEFT JOINs, subqueries, etc.
I think SqueakDBX & Glorp would benefit being "debugged" against some "real world" data & volume if we ever consider using those tools in a work environment and get passed the "hobby" project.
What do you think?
See my favorite headache these days... :)
http://myfavoriteheadache.wordpress.com/
----------------- Benoit St-Jean Yahoo! Messenger: bstjean A standpoint is an intellectual horizon of radius zero. (Albert Einstein)
On Sun, Mar 20, 2011 at 8:09 AM, Guillermo Polito <guillermopolito@gmail.com
wrote:
---------- Forwarded message ---------- From: Benoit St-Jean bstjean@yahoo.com Date: Sat, Mar 19, 2011 at 2:29 PM Subject: Re: [SqueakDBX] Problems To: Guillermo Polito guillermopolito@gmail.com
Hi Guillermo,
Since I'm doing lots of stuff using Smalltalk and a plethora of databases, I'd be willing to help you guys with SqueakDBX & Glorp.
Greate. Just using it and reporting problems is good. For example, non of us uses Squeak, so if you do, then we have someone testing there.
I'm mostly working on Windows now (WinXP) but I have SQL Server, MS-Access, SQLite, Firebird, MySQL, InterBase & PostgreSQL database servers currently installed and running. I can also test Oracle & DB/2 if needed, all this on Windows of course.
WOW :) I used to have more or les the same when developing SqueakDBX at the beginning. THen my machine crashed and now I have all that in a VirtualBox image :)
If you need to test ports of SqueakDBX, I have many versions of Squeak, Pharo and VisualWorks installed as well as Dolphin, ObjectStudio & VisualAge. Even an old VSE environment that I sometimes fire up to soothe my nostalgic side! :)
Excellent. Right now, WE want/need to support Pharo and Squeak. The rest, is up to the users. Of course we would be glad to help if someone does a port. Indeed, someone did it to Dolphin (I don't know where it is the code).
Anyhow, I've been working exclusively with Smalltalk for the last 20 years and used to be working with Glorp's parent, TOPLink. As a matter of fact, my current employer is still using TOPLink with VisualAge & VisualWorks.
hehehehe
If I can be of any help, let me know.
P.S. I have been thinking, for a long time, about creating a *real-world* database model to seriously test database-related Smalltalk projects/packages/apps. I've always had the impression that testing against a 1000 records table ain't telling you much about how the app/package/project will behave in reality. I could create a real "benchmark" that could be used across multiple databases in not much time if needed.
Yes, this is interesting. We have 3 benchmarks: DBXTinyBenchmarks, DBXBigBenchmarks and DBXMultipleForksBenchmarks.
DBXTinyBenchmarks does selects up to 10.000 records and using the same connection. DBXBigBenchmarks does queries up to 100000 DBXMultipleForksBenchmarks test concurrency, so we do also 100000 but from different processes using #fork
The biggest problem in Squeak/Pharo about managing millions of records, is not the framework itself, but the VM and FFI. FFI LOCKS completly the VM while executing a function: no other smalltalk process can run until such function is returned. We achieve this problem while using asynchronous queries in OpenDBX and do active queries to OpenDBX to see whether a querie was finished or not.... Now, Cog releases a multi-threaded VM which supports FFI that does not lock the VM. This will be a lot of progress for Squeak/Pharo.
In fact, most of the stuff I do (I'm working on my own OO-RDBMS mapping framework) is tested against millions of records because I've decided, upfront, that I would not put performance aside at the start. My framework ain't as "intelligent" and transparent as Glorp but it's fast, simple and lightweight. And I know how it will behave when faced with millions of records, with queries using 5-6 LEFT JOINs, subqueries, etc.
We are interested in this. We want to build more or less the same. We want an EASY persistent framework on top of SqueakDBX, that let you creat CRUDs and prototype apps very easy. Something like ActiveRecord, SandstonDB, SqueakSave...etc. We are thinking different options and for the moment we thought to use Magritte. Most Smalltalk web applications uses Magritte. So the idea is to use Magritte to ALSO describe the mappings. And then using the description we can get the queries. Keith Hodges did something like Magritte-RDB so we are going to investiage that too.
BTW, which is the license of that framework you are doing ?
I think SqueakDBX & Glorp would benefit being "debugged" against some "real world" data & volume if we ever consider using those tools in a work environment and get passed the "hobby" project.
What do you think?
I would love that. We should join forces.
See my favorite headache these days... :)
Thanks...reading...
Benoit St-Jean Yahoo! Messenger: bstjean A standpoint is an intellectual horizon of radius zero. (Albert Einstein)
SqueakDBX mailing list SqueakDBX@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/squeakdbx
See my favorite headache these days... :)
" I also decided to write some SUnit tests to make sure I can properly handle PostgreSQL, MySQL and Interbase for the first version. But I am also planning on supporting SQL Server, Oracle, DB2, Access and Firebird. Eventually!"
If your framework talks to an abstract class "DatabaseDriver" that defines an API, you can then just implement one for SqueakDBX and you will gain access to Firebird, Interbase, MS SQL Server, MySQL, Oracle, PostgreSQL, SQLite , SQLite 3, Sybase ASE.
"Also, it will exclusively support Pharo http://www.pharo-project.org/"
this is good news for us ;)
Benoit St-Jean Yahoo! Messenger: bstjean A standpoint is an intellectual horizon of radius zero. (Albert Einstein)
SqueakDBX mailing list SqueakDBX@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/squeakdbx
squeakdbx@lists.squeakfoundation.org