Ticket #5 (closed Feature Request: wontfix)

Opened 14 years ago

Last modified 9 years ago

Support for MySql 4.1 with InnoDb

Reported by: benoitg Owned by:
Priority: normal Milestone: WifiDog Auth Server 1.0
Component: Auth server, Other Version: Auth Server SVN
Keywords: Cc:

Change History

  Changed 14 years ago by nobody

Logged In: NO 

I would suggest to give up on MySQL and use the full power of Postgres. 
Better do it right with one system. Implementing new features would slow 
because the maintainer of the MySQL fork would have to check if 
everything is fine.

If there should any demand later think about adding MySQL support in 
WiFiDog 2.0 ...

Just my $0,02 ... 

  Changed 13 years ago by coolacid

Logged In: YES 
user_id=14917

I would be more then happy to start working on a MySQL 
implementation. I was unable to find a even remotely 
correct MySQL schema. I have started working on moving the 
Postgres schema to mysql, however I'm not the greatest 
person for the job.

I already use a large number of systems based on 
LDAP/MySQL (MySQL for databases and LDAP for login 
information) and since WifiDog can use Radius (Even if 
partly broken I'd like to get MySQL working so I can 
reduce the number of different processes I need to be 
running. 

I will continue to work on a mysql version of the schema 
and possibly a php script to rebuild the file from 
update_sql_for_cvs. 

  Changed 13 years ago by anonymous

  • component changed from Auth server: Features to Auth server: Features

You may or may not have noticed but Scott over at PublicIP is already using a MySQL database on the wifidog powered commercial system he sells access too.

It would be only polite if he contributed his changes to the system to give something back to the community who created 99% of the system he is selling. Someone from ile san fil should contact him....

www.publicip.com

  Changed 13 years ago by fproulx

  • milestone set to WifiDog 1.0

follow-up: ↓ 10   Changed 13 years ago by benoitg

  • status changed from assigned to closed
  • version For 1.0 deleted
  • resolution changed from None to wontfix
  • description modified (diff)
  • milestone WifiDog Auth Server 1.0 deleted

Multiple database support is no longer a core goal, after a clear majority expressed that they were in favor of dropping it. The following email isn't meant as a complete justification (for that se the multiple threads onm the mailing list on this subject), but to give anyone wanting to reopen this an idea of why it was dropped and what adding it would entail:


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.


  Changed 13 years ago by max-horvath

  • status changed from closed to reopened
  • version set to Auth Server SVN
  • resolution wontfix deleted
  • milestone set to WifiDog Auth Server 1.0

  Changed 13 years ago by max-horvath

  • owner nobody deleted
  • status changed from reopened to new

  Changed 13 years ago by max-horvath

  • status changed from new to closed
  • resolution set to wontfix

  Changed 12 years ago by benoitg

  • component changed from Auth server: Features to Auth server, Other

in reply to: ↑ 5   Changed 10 years ago by aolszowka

@benoitg:

Does your offer still stand for assisting someone who is willing to port and maintain a MySQL back-end? If not I was just going to hack it together myself, but I like to give back to the community when possible. Feel free to contact me via my user name @ a very popular webmail service from Google.

  Changed 9 years ago by jodoreps

  • description modified (diff)
Note: See TracTickets for help on using tickets.