[isf-wifidog] postgresql vs mysql, get into the flamebait

Andrew Hodel andrewhodel at gmail.com
Lun 25 Mai 16:33:21 EDT 2009


These past few weeks I've been working on a complete rewrite of the
auth server that is more suited for my purposes.

Regardless of the mysql vs postgresql arguments, I've always used and
henceforth prefer mysql.  As this is, my rewrite uses mysql for the
backend.

We've been using wifidog for the past few years, and we have over 100
nodes averaging ~30,000 connections per month.  As non scientific as
it is, using our new auth server has decreased the server load by 3-5
times on the webserver (apache) and 2 times on the database server
(separate machines).

We are currently using our new auth server in production, and have not
had any unresolvable issues.

In building the auth server, we completely rewrote the system using
the wifidog v1 protocol.

Key features of this build:

* Small footprint (966 lines including base theme css/html vs >300,000
for the current auth server)
* Speed, Speed, Speed... we were running out of resources
* Single access users (self created accounts, can add access time via
paypal.  only 1 concurrent login per account)
* Multi access users (added by administrator, any number of logins and
infinite time)
* Single users accounts ability to log out other instances of their
account if they are trying to log on
* Separate admin interface/login
* System does nothing more then authenticate users, optional inclusion
of a cms via /portal redirect
* Theme system

Perhaps the most interesting things to others on this list in the
inclusion of the token based logins for "type=single" users.  Right
now I have it setup where the users purchase time via paypal and the
IPN (instant payment notification) system increments the users
remaining time by the amount purchased.  This system could very easily
be modified to support admin assigned tokens or any other login
architecture.

The auth/index.php script simply checks the users token as reported by
the particular gateway the user is on and returns "Auth: 0".  This
logs the user out which forces a redirect back to the auth server.
The users php session is still active unless he or she has closed the
browser, or in the case he has closed the browser simply logging in
again will alert the user that he is out of time and needs to add
more.

As far as the recent arguments have been on this list regarding the
CMS.  I am a strong believer that wifidog should not include any sort
of CMS, it should simply allow easy access of location based variables
to any other CMS the sysadmin chooses to use.

I am a big supporter of open source, and it's likely I will release
this as such.  Currently there is still work which needs to be done in
the admin section of the auth server before it would be possible to
release.  If there is any interest I would be happy to hop on IRC and
demo/talk more.

I would also be happy to add a gateway ID of anyone else's node to
allow he or she to test this out.



Regards,
Andrew Hodel

2009/5/25 Pierre-Luc Bacon <pierrelucbacon at aqra.ca>:
> There is an ongoing discussion on the AllianceCSF mailing list about
> different problems related to maintaining a Postegresql, especially
> about the replication aspect. Some solutions were suggested, such as
> using Slony for replication. Marc Blanchet adds his comment by saying
> that they had done (at ZAP Québec) some benchmarking about that issue.
> Their results were not as good as they would have liked. Also, he is
> pointing out that the need for database replication might not be
> existent if something like Radius were adopted.
>
> Once again, the idea of a database abstraction was brought back to the
> discussion by Jimmy Godbout. Sylvain Carle finally pointed out that
> the deadline for a 2.0 release, which is due in September, makes that
> project unrealistic unless some people (organizations) can put some
> substantial efforts into it.
>
> This is a short summary of what is going on at the moment. I thought
> it would be relevant to post it on this list since this might a
> problem (if it is a problem at all !) that some of you have
> experienced. What solution have you chosen ? The everlasting question
> with wifidog-auth: Would that be a useful step to support MySQL as
> well ? Ans: probably yes. But now, how would that impact code
> complexity and how maintainable would that be ?
>
> Pierre-Luc Bacon
>
> ---------- Forwarded message ----------
> From: Marc Blanchet <marc.blanchet at viagenie.ca>
> Date: 2009/5/25
> Subject: Re: [AllianceCSF] Que pensez-vous de Slony-I
> To: Alliance des groupes sans-fil communautaires
> <alliancecsf at diffusion.zapquebec.org>
>
>
> Helene Gauthier a écrit :
>> On peut discuter longuement sur le sujet, comme le font ces derniers
>>
>> http://www.xaprb.com/blog/2008/05/18/why-is-mysql-more-popular-than-postgresql/
>>
>> parfois, les discussions sont plus houleuses....
>>
>> http://www.developpez.net/forums/d26350/bases-donnees/postgresql/replication-postgresql-master-mysql-slave/
>>
>> mais les réponses intéressantes
>>
>> Que pensez-vous de Slony-I
>>
>> http://www.slony.info/
>
> l'as-tu essayé?  (car, dans ce cas, comme souvent, il faut tester et
> essayer pour s'assurer que ça fait la route...)
>
> (contexte: pour zapquebec, on a fait une config de redondance des
> serveurs d'authentification. On a étudié toutes les solutions de
> redondance BD disponible sur postgres (slony, mammoth, warm standby,
> ...) et c'est super-pénible, pas toujours bien supporté, ne fait pas ce
> qu'on a besoin, ... ).
>
> slony:
> - ne réplique pas les changements de schéma (e.g. ALTER TABLE).
> - Les deux serveurs doivent être dans la même timezone.
> - Le master doit pouvoir se connecter au client, contrairement à MySQL.
> - Très complexe.
> - slony n'est pas intégré dans postgres, alors que c'est complètement
> intégré dans mysql.
> - Il faut spécifier une primary key pour chaque table. pas supporté dans
> wifidog actuel.
>
> si une réécriture de wifidog est considérée, certaines des limitations
> des solutions de réplication de postgres peuvent être "résolues".
>
> encore une fois: il y a de multiples façons de faire de la redondance
> pour le système au complet. S'attarder à la redondance uniquement de la
> BD n'est pas suffisant. On peut perdre de vue l'ensemble. Et il faudrait
> identifier quels sont les besoins réel de redondance dans la "nouvelle"
> architecture (surtout avec RADIUS dans le décor). Peut-être que le
> résultat est que nous n'avons pas besoin de redondance BD et que le
> point de comparaison Postgres/MySQL sur la redondance BD devient
> non-pertinent. Encore une fois, il faut regarder l'ensemble de la
> problématique.
>
> Je réécris mon point original: la réplication MySQL est beaucoup plus
> facile à implanter que postgres. (Je parle juste avec assez d'expérience
> de déploiement d'applications MySQL/postgres... en production. Et la
> réplication MySQL est un charme: pour une config async-write avec
> slaves, 3 lignes de config et c'est fonctionnel. vraiment.)
>
> Faudrait faire une "architecture" de la solution, après identifier les
> endroits nécessaires pour la redondance avec les exigences. Ensuite, on
> pourra mieux discuter des particularités des solutions.
>
> Marc.
>
>>
>> -----Message d'origine-----
>> De : alliancecsf-bounces at diffusion.zapquebec.org [mailto:alliancecsf-bounces at diffusion.zapquebec.org] De la part de Marc Blanchet
>> Envoyé : 25 mai 2009 13:38
>> À : Alliance des groupes sans-fil communautaires
>> Objet : Re: [AllianceCSF] PHP ou PostGreSQL ?
>>
>> Jimmy Godbout a écrit :
>>> Pourquoi ne pas utiliser une couche d'abstraction ? De cette façon, le type de bd n'aura pas vraiment d'importance.
>>>
>> - bien sûr... mais la réalité te rattrape souvent:
>>  + tu veux utiliser telle ou telle fonctionalité disponible seulement
>> sur la BD que tu utilises.
>>  + un programmeur, plus tard, ajoute une toute petite fonctionalité mais
>> qui, sans que le programmeur le sache, est spécifique à la BD (genre un
>> énoncé SQL spécifique à la BD). un an plus tard, tu veux changer la BD
>> et tu te retrouves avec un paquet de code qui n'est pas transportable
>> facilement. Tu n'es jamais cuit, mais souvent, finalement, tu ne fais
>> pas le changement car moins prioritaire que d'autres besoins.
>> - bref, 100% d'accord avec toi, mais en même temps, se souvenir que
>> souvent, avec le temps, on devient coincé dans un seul "produit"
>> - une autre fois, tu installes une nouvelle version d'un produit pour
>> bénéficier d,une nouvelle fonctionalité (ex: redondance). Cela n'a pas
>> d'impact sur la programmation et sur la couche d'abstraction, mais ça
>> fait que tu restes pris avec le produit. Oui, la programmation reste
>> indépendante, mais le résultat est le même: c'est plus compliqué de
>> changer de BD.
>>
>> Il est aussi évident que la redondance, il faut bien identifier ce qu'on
>> veut faire. Par exemple, si on prend RADIUS, la redondance pour
>> l'authentification/provisionning des users peut se faire par
>> l'infrastructure des serveurs RADIUS.
>>
>> bref, il y a de multiples facettes.
>>
>> Je voulais juste mentionner que MySQL devance largement postgres pour la
>> fonctionalité de la réplication. Et donc à tenir compte dans le choix.
>>
>> Marc.
>>
>>> Jimmy
>>>
>>>> -----Original Message-----
>>>> From: bremy at zapquebec.org
>>>> Sent: Mon, 25 May 2009 12:40:35 -0400
>>>> To: alliancecsf at diffusion.zapquebec.org
>>>> Subject: Re: [AllianceCSF] PHP ou PostGreSQL ?
>>>>
>>>> Merci Marc : c'est un argument qui (à mes yeux au moins...) à une
>>>> bien + grande importance que les tendances mondiales sur les outils de
>>>> base de données. Car c'est "trés risqué" de bâtir une belle
>>>> infrastructure Wifidog 2.0 flambant-neuve, stable et user-friendly,
>>>> mais qui demande des efforts humains compliqués lors de redondance
>>>> d'un serveur à un autre :
>>>> Quand un serveur de PROD tombe... les minutes sont longues et
>>>> précieuses.... avant de basculer au serveur de relève :
>>>> pensez-y à deux fois ;0))))
>>>>
>>>> Bruno
>>>> PS : n'y voyez là aucune critique ...je ne suis pas programmeur..,
>>>> mais je m'occupe des opérations et la disponibilité du service est à
>>>> mes yeux + importante que l'architecture en-dessous ;)))
>>>>
>>>>
>>>> Message originalMarc Blanchet <marc.blanchet at viagenie.ca>:
>>>>
>>>>> pour votre information, assurer la redondance de la BD avec postgresql
>>>>> est 100 fois plus compliqué qu'avec MySQL. Avec MySQL, 3 lignes de
>>>>> configs, 5 min max et c'est réglé.
>>>>>
>>>>> Marc.
>>>>>
>>>>> Frédéric Sheedy a écrit :
>>>>>> Bonjour,
>>>>>>
>>>>>> Je suis plutôt du même avis que Hélène, postgreSQL semble de plus en
>>>>>> plus populaire, surtout à cause des performances et des standards
>>>>>> respectés par postgreSQL.
>>>>>>
>>>>>> Le seul problème, c'est que Wordpress n'a pas encore pris en charge
>>>>>> postgreSQL, et cela risque de prendre du temps, beaucoup de temps.
>>>>>>
>>>>>> --
>>>>>> Frédéric Sheedy
>>>>>>
>>>>>>
>>>>>> Le 24 mai 2009 09:03, Helene Gauthier
>>>>>> <webmaster at zapbas-saint-laurent.org> a écrit :
>>>>>>> Bonjour,
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Lors des derniers échanges, j’ai cru comprendre qu’il y a des
>>>>>>> discussions
>>>>>>> entre conserver PostGreSQL pour Wifidog ou Migrer vers MySQL
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> En ce qui me concerne, cela ne fait pas de différence
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> par contre si on pense à un avenir sur une durée de 5 ans, il faut
>>>>>>> tenir
>>>>>>> compte de l’avenir des deux bases en fonction des éventuels
>>>>>>> utilisateurs (de
>>>>>>> nouvelles zaps)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Difficile de dire lequel l’emportera !
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> MySQL est évidemment la base la plus utilisée dans le monde
>>>>>>> actuellement
>>>>>>> mais depuis l’acquisition de Sun par Oracle, il règne une certaine
>>>>>>> incertitude
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> http://www.zdnet.fr/actualites/informatique/0,39040745,39393180,00.htm
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> pgFoundry a développé tous les outils de migration de MySQL à
>>>>>>> PostGreSQL
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> http://pgfoundry.org/
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> PHPPgMyadmin est l’équivalent de PhpMyAdmin
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> http://phppgadmin.sourceforge.net/index.php
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> La documentation française est de plus en plus abondante
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> http://postgresql.fr/
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> WordPress envisage de gérer multiples bases de données dont PostGreSQL
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> « Puis-je Utiliser une Autre Base de Données que MySQL ?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Les autres bases de données ne sont pas supportées pour le moment.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Il existe de nombreux autres excellents gestionnaires de base de
>>>>>>> données,
>>>>>>> tels que PostgreSQL ou SQLite auquel WordPress s'intéresse pour les
>>>>>>> supporter dans le futur. Prendre en charge plusieurs bases de données
>>>>>>> est
>>>>>>> plus compliqué qu'il n'y paraît et ne fait pas partie des
>>>>>>> développements
>>>>>>> actuels, bien que de nombreuses discussions aient été engagées sur la
>>>>>>> meilleure approche à envisager. Ces approches pour augmenter le nombre
>>>>>>> de
>>>>>>> bases de données prises en charge sont étudiées dans l'article
>>>>>>> Utiliser des
>>>>>>> Bases de Données Alternatives (en anglais). Il existe un portage de
>>>>>>> WordPress pour PostgreSQL appelé WordPress-Pg (en anglais). »
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> MediaWiki fonctionne déjà avec PostGreSQL
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> GForge qui intègre MailMan est un outil plus convivial que TRAC et
>>>>>>> offre
>>>>>>> gratuitement un espace de 75 M
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> http://gforgegroup.com/
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Il offre un espace gratuit de 75Mg avec 5 développeurs
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> “GForge Group is providing a free, 75MB GForge AS project space
>>>>>>> with up to 5
>>>>>>> developers and a subversion tree at http://gforge.com/. When you
>>>>>>> register an
>>>>>>> account, you can set up your project and be set as an administrator.
>>>>>>> Need
>>>>>>> more storage or project members? Add them at the Online Store.”
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Joomla l’utilise
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> http://joomlacode.org/
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> et quelques autres….
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> http://gforgegroup.com/customerlist.php
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Je vois donc plus davantage à conserver PostGreSQL en fonction de la
>>>>>>> convivialité et de la gratuité d’un espace de développement de version
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Helene Gauthier
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Liste de diffusion «AllianceCSF»
>>>>>>> AllianceCSF at diffusion.zapquebec.org
>>>>>>> http://zapquebec.org/cgi-bin/mailman/listinfo/alliancecsf
>>>>>>>
>>>>>>>
>>>>>> _______________________________________________
>>>>>> Liste de diffusion «AllianceCSF»
>>>>>> AllianceCSF at diffusion.zapquebec.org
>>>>>> http://zapquebec.org/cgi-bin/mailman/listinfo/alliancecsf
>>>>> --
>>>>> =========
>>>>> IPv6 book: Migrating to IPv6, Wiley. http://www.ipv6book.ca
>>>>> Stun/Turn server for VoIP NAT-FW traversal: http://numb.viagenie.ca
>>>>> DTN news service: http://reeves.viagenie.ca
>>>>>
>>>>> _______________________________________________
>>>>> Liste de diffusion «AllianceCSF»
>>>>> AllianceCSF at diffusion.zapquebec.org
>>>>> http://zapquebec.org/cgi-bin/mailman/listinfo/alliancecsf
>>>>>
>>>>
>>>> --
>>>> Bruno Remy
>>>> ZAP Québec
>>>> _______________________________________________
>>>> Liste de diffusion «AllianceCSF»
>>>> AllianceCSF at diffusion.zapquebec.org
>>>> http://zapquebec.org/cgi-bin/mailman/listinfo/alliancecsf
>>> ____________________________________________________________
>>> FREE 3D EARTH SCREENSAVER - Watch the Earth right on your desktop!
>>> Check it out at http://www.inbox.com/earth
>>> _______________________________________________
>>> Liste de diffusion «AllianceCSF»
>>> AllianceCSF at diffusion.zapquebec.org
>>> http://zapquebec.org/cgi-bin/mailman/listinfo/alliancecsf
>>
>>
>
>
> --
> =========
> IPv6 book: Migrating to IPv6, Wiley. http://www.ipv6book.ca
> Stun/Turn server for VoIP NAT-FW traversal: http://numb.viagenie.ca
> DTN news service: http://reeves.viagenie.ca
>
> _______________________________________________
> Liste de diffusion «AllianceCSF»
> AllianceCSF at diffusion.zapquebec.org
> http://zapquebec.org/cgi-bin/mailman/listinfo/alliancecsf
>
>
>
> --
> Pierre-Luc Bacon
> http://pierreluc.aqra.ca
> _______________________________________________
> WiFiDog mailing list
> WiFiDog at listes.ilesansfil.org
> http://listes.ilesansfil.org/cgi-bin/mailman/listinfo/wifidog
>


Plus d'informations sur la liste de diffusion WiFiDog