[isf-wifidog] MySQL support - shouldn't we skip it?
Benoit Grégoire
bock at step.polymtl.ca
Dim 22 Jan 21:45:18 EST 2006
> I agree with nukeing it for you 1.0 release. 6-8 weeks is not enough
> time to get something like that in. I also agree with Francois about
> working toward PDO. I can start working on a mySql schema for a future
> release that will work with PDO.
>
> How do you guys feel?
The initial schema isn't the problem, it could be trivially ported. Nor is
the data abstraction layer (moving to PDO is still a good idea, but becomes a
very low priority if we have only one database to support). The real
problems are:
-The schema isn't hand written, it's auto-generated to avoid mistakes, and to
allow incremental upgrades without losing data. That means that a script
must be able to generate the MySql schema from the postgres one with no human
intervention.
-Maintaining support for two or more different databases is a nightmare for
updating schemas automatically and without losing data. Schema manipulation
SQL tend to be quite unportable.
-It's unrealistic to demand that every developper test every change to every
commit touching sql with both databases (after all the rationale for also
supporting MySql is to lower the barrier of entry, not raise it). That means
that we need some pretty darn complete unit tests for SQL queries. There are
currently 352 different SQL queries in the wifidog codebase. Some of them
can be tested implicitely, but others have several forms that would have to
be tested individually. Obviously it would be very good to have such a
library, but it's at least several week of full time work.
-Mysql doesn't support triggers in a meaningfull way before version 5.1, yet
it becomes critical that the schema defends against invalid data if we expect
the SQL to destabilise because it has to work with both databases.
-Even with MySql 5.1, we still couldn't use stored procedures (unless we
maintain two sets), as MySql doesn't support any of the 6 languages in
postgres, and postgres doesn't support the one that MySql supports.
-General SQL support in MySql is now much closer to PostgresSQL's, but there
are still annoying little differences that may be hard to detect, and even
harder to debug.
I've written other messages in the archives on the difficulties of pulling
this off. Wifidog isn't your average Blog or other web toy as far as SQL
complexity is concerned. Supporting MySql is possible, but at a huge cost in
human ressources, and yet would remain somewhat of a second class citizen.
Nobody ever claimed that MySql support would actually bring any benefits
except popularity and finding webhosting more easily. The latter is kind of
a mot point for now as we'd require a super-recent MySql. The former just
isn't worth the hundreds of hours of additional work plus the constant
bickering between developpers that one developer's change broke something in
the other database.
The sad truth is that the big SQL vendor's best interests (business wise) is
to keep the SQL "standards" only supported enough so that expertise is
somewhat portable, but code never is. Untill that changes, supporting
multiple databases for anything but projecs only requiring very basic SQL is
hugely expensive.
I think that the likely result of supporting MySql is the following:
-Most user's/reviewer's first impression of wifidog would be with MySql
-As MySql suport would have frequent issues, and that wifidog would get the
reputation that's it's low quality software as a result.
The result of dropping it entirely is the following:
-We are now free to use database technologies that have been available for 15
years to harden the schema and make some operations easier, because we no
longuer have to target to the lowest common denominator, resulting in a
better quality product.
So I personally hope MySql support never materialises. However it the spirit
of open source, I would try help someone who is truly commited to doing it.
--
Benoit Grégoire, http://benoitg.coeus.ca/
-------------- section suivante --------------
Une pièce jointe non texte a été nettoyée...
Nom: non disponible
Type: application/pgp-signature
Taille: 189 octets
Desc: non disponible
Url: http://listes.ilesansfil.org/pipermail/wifidog/attachments/20060122/ec2d5034/attachment.pgp
More information about the WiFiDog
mailing list