Documente Academic
Documente Profesional
Documente Cultură
Table of Contents
Qu'est-ce que Firebird? ....................................................................................................... 3 Historique de Firebird ......................................................................................................... 3 La livraison initiale ..................................................................................................... 3 Version stable actuelle ................................................................................................ 3 En dveloppement ...................................................................................................... 4 Firebird est il Prt pour l'entreprise? ................................................................................. 4 Stabilit ..................................................................................................................... 5 Extensibilit ............................................................................................................... 6 Disponibilit .............................................................................................................. 7 Capacit ..................................................................................................................... 7 Interoprabilit ........................................................................................................... 7 Autonomie ................................................................................................................. 8 Conformit ACID et Firebird ............................................................................................. 10 Atomicit ................................................................................................................. 10 Cohrence ................................................................................................................ 10 Isolement ................................................................................................................. 11 Durabilit ................................................................................................................. 11 Qui utilise Firebird? .......................................................................................................... 12 Exemples de dploiement .......................................................................................... 13 Facteurs influant l'extensibilit .......................................................................................... 16 Nombre d'utilisateurs ................................................................................................ 16 Limites matrielles, logicielles et rseaux ................................................................... 16 Conception des bases et des logiciels ......................................................................... 19 A qui appartient et qui gre Firebird? ................................................................................. 20 Gestion .................................................................................................................... 20 Maintenance du code ................................................................................................ 21 Financement ............................................................................................................. 22 A. Licence ....................................................................................................................... 23
ii
Historique de Firebird
Les versions de production de Firebird sont disponibles depuis dbut 2002, mais l'ascendance de ce logiciel est bien plus ancienne. C'tait InterBase en 1985, pour la plate-forme Unix VMS de cette poque. Il est devenu la proprit de Borland Software Corporation au dbut des annes 1990 par le biais d'acquisitions et a volu au fil des annes jusqu' la version 5.6. Fin 1999, la situation financire de Borland a caus l'arrt du dveloppement de la version 6. L'anne suivante, le code source d'InterBase 6 a t rendu publique sous licence open source en Juillet 2000. Deux dveloppeurs australiens ont tlcharg le code frachement rendu disponible et ont mis en place le Projet Firebird sur Sourceforge, une importante ferme de serveurs qui procure des outils sophistiqus, gratuitement, pour les projets open source.
La livraison initiale
La priode qui s'est coule entre l'arrt du dveloppement d'Interbase chez Borland et la mise disposition du code source a permis de transformer la base des anciens dveloppeurs et utilisateurs d'InterBase en une vivante et enthousiaste communaut Firebird constitue de concepteurs, testeurs et dveloppeurs d'outils et d'interfaces et de gourous de support. Quand le code source a t libr, une quipe consquente tait prte travailler dessus. Firebird n'a jamais regard en arrire. Firebird 1.0 essentiellement un nettoyage du code en langage C d'IB 6 avec quelques importantes corrections pour stabiliser la production des binaires et quelques anciens bugs a t livr en 2002 et a connu quatre sous-versions.
En dveloppement
Firebird 2
Firebird 2, qui bnficie d'amliorations importantes dans de nombreux de ses sous-systmes, y compris l'optimiseur SQL, est actuellement en version RC3. La version finale est prvue pour l't 2006.
"Vulcan"
Un "fork", une branche, a t cr depuis le premier code alpha de Firebird 2 en dcembre 2003 afin de reconcevoir l'architecture de threading du moteur de base de donnes. Le projet, implment par le dveloppeur originel d'InterBase (Jim Starkey) tait command par SAS Institute, le leader du march des applications logicielles de statistiques commerciales et mdicales. SAS a pris la dcision en 2003 de migrer plusieurs de ses applications commerciales d'Oracle vers Firebird. Les sources, nom de code "Vulcan", ont t formellement reverses au projet Firebird en 2005 et continuent tre dveloppes en parallle avec Firebird 2. La premire livraison publique d'une version beta de Vulcan est prvue pour mi 2006.
Firebird 3
La fusion des codes de Firebird 2 et Vulcan a commenc, avec l'objectif de livrer Firebird 3 dbut 2007. Firebird 3 aura un support complet de gestion des thread sur des machines multi-core et multiCPU, une utilisation complte des fonctionnalits des systmes 64-bit et de nombreuses options de configuration du niveau de scurit du serveur et des bases de donnes.
amineront les fonctionnalits ncessaires pour l'entreprise travers six filtres : stabilit, extensibilit, disponibilit, capacit, interoprabilit et autonomie.
Stabilit
Nous voulons un systme de gestion de bases de donnes qui enregistre les donnes ncessaires notre activit et qui les protge contre les dgradations possibles en provenance soit de problmes lis notre environnement systme soit d'erreurs humaines. Notre systme doit tre capable de dlivrer les donnes aux applications de manire consistante et flexible, avec certitude et une vitesse raisonnable et doit tre capable de grer d'ventuels conditions de conflits. Il doit pouvoir faire tout cela en mme temps, sans interruptions, dgradations, crashes ni temps d'attente excessif.
Conformit ACID
Une telle stabilit est vidente pour un SGBD, quelques soient les autres facteurs dsirs par l'entreprise. Un ensemble de principes a volu au cours du temps pour dfinir quatre points essentiels qui ne doivent pas manquer un systme de gestion de bases de donnes pour tre pris au srieux. ACID est l'acronyme de ces quatre principes : Atomicit, Cohrence, Isolement, Durabilit. La conception et l'architecture de Firebird respectent compltement la norme ACID. Les concepts ACID sont dcrits plus bas, dans la section Conformit ACID et Firebird, avec des commentaires sur comment Firebird respecte ces principes. Tout dans Firebird est fait dans le contexte d'une transaction ACID. Une transaction dans Firebird peut mettre en oeuvre de nombreuses phases, complexes et inter-dpendantes d'une tche d'entreprise mais ne permettra jamais la violation d'aucun principe ACID.
Antcdents et support
Ayant en tte la stabilit de notre environnement de production, nous ne choisirons pas forcment un tout nouveau SGBD pour tre le coeur de notre systme d'information. En gnral, nous prferons commencer avec un produit qui a prouv ses capacits et dont les forces et faiblesses sont connues et bien comprises. Si un utilisateur final doit tre en charge de rpondre aux problmes qui peuvent arriver, nous devons savoir qui ils peut demander de l'assistance. Si un distributeur de solution logicielle doit assurer le support technique, est-ce que ce distributeur peut tre en mesure d'obtenir le support adquat ? La communaut des utilisateurs de Firebird est bien aide par des dveloppeurs d'outils et d'applications trs comptents. En gnral, ces dveloppeurs sont proches du code source dvelopp depuis six ans. Leur exprience et leur expertise remonte mme au del, au dbut des outils de dveloppement de Borland, qui ont toujours t livrs avec la version d'InterBase "Dveloppeurs" dans leur version Entreprise. La communaut de dveloppeurs Firebird est renomme pour ses forums de support, o l'expertise y est constamment partage. Des contrats de support pour utilisateur finaux, mme s'ils sont offert par plusieures entreprises, sont rarement demands. Des contrat de support pour les dveloppeurs sont disponibles dans de nombreux pays, y compris la France. Toutefois, il doit tre signal que la demande de support pour les dveloppeurs, mise part peut tre la phase d'installation sur une plate-forme non familire, est faible dans la plus part des pays. 5
Dveloppements futurs
D'un autre cot, parce que l'activit, les demandes et les configurations matrielles voluent constamment et rapidement, nous voulons aussi savoir si le SGBD est dans une phase active de dveloppement ou s'il est proche de la fin de sa vie. Nous esprons des mises jour rgulires de versions intermdiaires et d'avoir des signes qu'une nouvelle version majeure est en cour de ralisation. Quand nous serons en production, sera t-il facile de faire la mise jour ? Nos bases de donnes existantes pourront-elles facilement tre intgres dans une nouvelle version, ou bien ce processus sera t-il pnible, ou long, ou presque impossible ? Maintenant dans sa sixime anne, l'quipe du Projet Firebird continue en toute confiance le dveloppement des versions prvues qui vont amener les amliorations architecturales pour profiter des amliorations matrielles et satisfaire les besoins exprims de la communaut des dveloppeurs, utilisateurs et supporteurs techniques. La transparence du code et la clbre volont de la communaut de partager sa connaissance assure une matrise parfaite du code source et des possibilits du logiciel. L'indpendance du projet vis vis des entits commerciales assure la continuit du projet et assure que la discipline technique prvaut sur une quelconque volont marketing de peser sur l'volution du produit.
Extensibilit
Par extensibilit on dsigne le fait que le SGBD soit capable non seulement de rpondre aux besoins actuels de l'entreprise, mais aussi capable de grandir avec elle, de rpondre des accroissements de charge mais aussi de rpondre des besoins moindres (applications mono utilisateur, modle dconnect ou embarqu par exemple). Les considrations lies l'extensibilit prendre en compte sont les nombres minimum et maximum d'utilisateurs actifs, l'effet de la croissance de la taille de la base et du nombre d'utilisateurs sur les performances ou la stabilit, les possibilits de migration des donnes en cas de changement d'chelle. Pour certaines entreprises, les facteurs d'extensibilit prendront le pas sur toues les autres considrations, comme la disponibilit ou l'interoprabilit. L'extensibilit quelle que soit sa direction est une des forces de Firebird. Contrairement beaucoup d'autres systmes concurrents, Firebird, depuis mme ses premiers jours sous le nom d' InterBase, a toujours t un logiciel conu pour le fonctionnement en rseau, et sa structure de stockage sur disque des bases de donnes a toujours t gre indpendamment du systme de fichier hte, par le moteur de base de donnes lui mme. A la diffrence de certains systmes trs valoriss sur le march, supposs tre prts pour l'entreprise, qui rpondent la demande d'extensibilit en cas de croissance des besoins par des ajouts logiciels et des mcanismes nombreux et lourds, la question de la croissance avec Firebird est essentiellement seulement une question de modification de l'environnement. Le mme moteur gre confortablement toutes les situations depuis un systme embarqu avec un seul utilisateur, en passant par le systme classique d'une architecture deux tiers client/serveur en rseau avec environ 750 utilisateurs potentiels, jusqu' son implication dans une solution multi-tiers pour des centaines de clients potentiels. La croissance des bases de donnes est seulement limite par la capacit de stockage disque disponible et une base peut tre dcoupe pour tre place sur plusieurs disques durs. A l'aide d'une rplication intelligente et une bonne gestion des connexions d'accs, la charge d'un systme trs charg peut tre distribue sur de multiples serveurs. Par exemple, un serveur central bien dimensionn peut servir les demandes d'accs du rseau, intranet ou extranet (ou les deux ensemble) pendant qu'un serveur rpliqu prend en charge les traitements longs qui demandent un clich 6
Disponibilit
Le maximum de disponibilit est parfois mesur par le critre des cinq neuf : le serveur est il capable d'offrir une disponibilit 99.999 pour cent pendant les heurs de service ? Parmis ces utilisateurs, Firebird a la rputation d'tre parfaitement disponible. Certains des systmes de gestion de donnes demandent une coteuse expertise sur site pendant tout le temps de fonctionnement du systme de bases de donnes. Le dploiement typique de Firebird est celui des entreprises qui n'ont pas d'administrateur de bases de donnes (DBA). Comme pour tout systme complexe, un dploiement de Firebird doit tre bien planifi et bien conu, mais un dploiement de Firebird configur convenablement dans une infrastructure rseau efficace fonctionne tout seul. Il utilise un systme de verrous optimiste au niveau des enregistrements, qui rduit considrablement le temps d'attente en comparaison avec d'autres systmes o des transactions en lecture-criture verrouillent des ensemble entiers, voire des tables, de manire prventive. Aucun rglage fin n'est requis pour grer les diffrences de charge au cours du temps. Une base n'a pas besoin d'tre arrte pour tre sauvegarde. Elle peut tre rplique ou duplique pour prvenir les coupures dues un crash du disque. Firebird est robuste et se remet en route immdiatement aprs une coupure de courant, sans dommage pour l'intgrit des bases. Firebird est un choix populaire pour les entreprises ayant besoin d'une continuit de service 24h sur 24. Des outils en ligne de commande sont inclus dans la distribution pour toutes les tches administratives, permettant d'automatiser la maintenance rgulire dans des tches programmes. Une API de services est aussi disponible pour inclure des tches d'administrations dans un autre programme. Les sauvegardes en ligne (gbak) ne crent pas des bases de donnes mais des fichiers neutres vis vis de la plate-forme qui contiennent les mtadonnes et les donnes de manire spare dans un format texte compress. Firebird 2 dispose d'un outil de sauvegardes incrmentales, qui peut tre planifi afin de s'adapter la charge du serveur.
Capacit
La plus grande base Firebird que nous connaissons fait environ 11 Teraoctets et continue de grossir. Les tables sont limites environ 2.000.000.000 lignes et, jusqu' la version 1.5.x, un maximum d'environ 30 Gigaoctets par table. Cette limite maximum de taille de table n'existe plus dans la version 2.0, disponible mi-2006.
Interoprabilit
Conformit aux Standards
Firebird fait partie des SGBD qui respectent le plus les normes internationales (ISO) et U.S. (ANSI) pour le langage SQL, faisant mme mieux que son cousin InterBase. Les normes voluent continuellement et, en parallle, les dveloppeurs de Firebird font voluer le produit en concordance. Les implmentation existantes des fonctionnalits du langage qui font l'objet d'une nouvelle norme sont gardes comme des "options dprcies" pour garantir la compatibilit descendante. 7
Indpendance
Firebird est conu pour l'interoprabilit. Il n'est li aucune solution intgre qui lie les bases de donnes un environnement spcifique. La dcision de dplacer une base de donnes Firebird depuis Windows vers une machine Linux ou Unix, et vice versa, peut littralement se mettre en oeuvre du jour au lendemain. Tout ce qu'il faut, c'est une sauvegarde au format transportable sur l'ancienne machine et une restauration sur la nouvelle, et vous voil de nouveau oprationnel. Les distributeurs d'applications qui sont conscients de cette facilit de migration sont attentif au fait que les serveurs Firebird peuvent tre facilement utiliss par des logiciels clients qui tournent sur un systme d'exploitation qui peut tre diffrent de celui sur lequel tourne le serveur et que cette situation peut facilement voluer. Firebird est capable de fonctionner dans des environnement rseaux htrognes. Une application crite pour un systme d'exploitation peut facilement se connecter une base tournant sur un autre systme d'exploitation, sans modification. Une application peut se connecter de multiples serveurs sur des htes avec des systmes d'exploitations diffrents simultanment et peut utiliser des transactions sur des bases multiples sur des serveurs diffrents. Il est frquent, par exemple, pour des sites trs utiliss, de faire tourner plusieurs serveurs Firebird, de mettre en place une rplication depuis un serveur principal important vers des serveurs moins coteux et moins surchargs fonctionnant sous Linux avec des systmes disques rapides pour mettre en place une solution de dlestage (load-balancing) et de prvention des pannes. Les serveurs Firebird peuvent aussi tre intgrs des solutions htrognes de type MTS et Citrix, dans des environnement pass-through et des rseaux privs virtuels (VPN).
Connectivit
Firebird n'a pas besoin de suites ou modules spciaux pour le lier une application externe. Toutes les interfaces d'accs dialoguent avec le serveur l'aide des deux interfaces publies (APIs), une pour les oprations au niveau des bases de donne et l'autre pour les oprations serveur comme les sauvegardes et l'authentification des utilisateurs. Des pilotes sont disponibles pour une grand nombre de langages et d'interfaces, y compris Java/JDBC, ODBC, .NET, Delphi, Python, PHP et Perl.
Autonomie
L'autonomie se mesure par le degr avec lequel une base stocke et gre les donnes en ayant sa propre vie, c'est dire sa capacit exister et rester cohrente indpendamment du matriel et du systme d'exploitation,des programmes externes, des environnement spcifiques de programmation.
Fonctionnalits d'autonomie
Les fonctionnalits d'autonomie comportent des point comme indpendance du systme de fichiers intgrits rfrentielles dclaratives 8
la possibilit de mettre en oeuvre des validation et/ou des rgles de gestion l'aide de dclencheurs et des contraintes CHECK les procdures stockes, pour intgrer des procdures de gestion et les mettre en action de manire interne, indpendamment du langage des applications ou de l'interface utilisateur le contrle d'accs des utilisateurs au niveau de la base la possibilit d'interroger des donnes externes comme des structures virtuelles sans avoir besoin de stocker des donnes la possibilit de grer des ensembles de donnes temporaires par programmation sans avoir matrialiser des tables temporaires garder des fonctionnalits dprcies pour assurer la rtro compatibilit Firebird prend en charge toutes ces fonctionnalits.
Atomicit
L'atomicit garanti qu'il n'y a que deux rsultats possibles pour une tche (que l'on nomme transaction) qui implique des changements de multiples ensembles de donnes interdpendants : soit toutes les tapes ont t ralises correctement et le rsultat peut tre valid dans la base comme une seule entit ou, si l'une des tapes n'a pas t ralise, toutes les autres tapes doivent tre dfaites (rolled back), laissant l'tat de la base inchang. L'atomicit est manifestement d'une extrme importance dans les systmes financiers, o des balances non quilibres du fait d'checs partiels seraient une catastrophe. Les tableurs et les bases de donnes qui ne supportent pas les transactions ne peuvent pas tre atomiques. Firebird est entirement pilot par les transactions: rien ne peut arriver en dehors du contexte d'une transaction.
Cohrence
La Cohrence est la capacit du moteur de bases de donnes protger la base de tous les changements d'tat qui pourraient laisser un ensemble de donnes dsynchronis par rapport un autre ensemble de donnes. Par exemple, le systme doit tre capable de reconnatre qu'une facture est lie un client et aux lments facturs. Il doit tre capable d'viter, par exemple, la suppression d'un client s'il existe encore des factures pour ce client, et la suppression d'une facture qui a des lments associs. L'implmentation pratique de telles dpendances est faite par la dclaration de contraintes d'intgrit rfrentielles (foreign keys) renforce par des dclencheurs automatiquement gnrs. (Les dclencheurs sont automatiquement gnrs ou dfinis dans des blocs de code qui s'excutent quand un enregistrement est insr, modifi ou supprim.) Le systme de bases de donnes qui dpend du code d'une application pour grer des rgles de cohrence ne sont pas conformes la rgle de cohrence ACID. Firebird respecte parfaitement les rgles d'intgrit dfinies par la norme. Firebird garanti aussi la cohrence quand une seule transaction est excute pour effectuer des changements sur plusieurs bases la fois, c'est ce que l'on appelle le two-phase commit. Les systmes qui peuvent accder plusieurs bases la fois de manire concurrente sans la possibilit de synchroniser les changement dans toutes les bases ne respectent pas le principe de cohrence. Note
Firebird ne gre pas les dclaration d'intgrit rfrentielle multi-bases. Chaque base impliqu dans une transaction multi-bases est responsable de ses propres contraintes rfrentielles.
10
Isolement
L'isolement dcrit la possibilit du moteur de bases de donnes de permettre chaque utilisateur (ou transaction) d'oprer comme s'il tait le seul utilisateur (ou la seule transaction). Le mcanisme d'isolement doit tre capable de garder la base cohrente pour chaque transaction tant qu'elle est en cours, indpendamment de tout changement intervenant dans d'autres transactions. Les systmes de gestion de bases de donnes qui sont conformes ce principe offre en gnral diffrents niveaux d'isolement, qui sont dfinis dans les normes ISO/ANSI SQL. En plus du niveau d'isolement dcrit ci-dessus (Concurrency ou Repeatable Read), qui doit tre support, Firebird supporte aussi Read Committed (quand une transaction peut voir le travail valid par les autres transactions) et, contrario, Consistency ou Table Stability (quand une transaction qui peut crire dans la base bloque l'accs aux tables qu'elle utilise aux autres transactions capables d'crire ).
Durabilit
La durabilit garanti que la base va garder trace des changements en cours de manire que l'tat de la base ne soit pas affect si une transaction est interrompue. De sorte que, mme si le serveur de base de donnes est dbranch en plein milieu d'une transaction, les serveurs de base de donnes conformes la norme ACID doivent remettre la base dans un tat cohrent leur redmarrage.
raison, aient fini leur travail. Le terme utilis pour cela est architecture multi-gnrationelle, ou MGA. MGA tait une spcificit unique d'InterBase pendant environ 10 ans jusqu' ce que cela soit imit par Oracle. Une fois que le code source de Firebird a t disponible, PostGreSQL l'a copi. Plus rcemment, Microsoft a introduit MGA dans la dernire volution de SQL Server.
12
Exemples de dploiement
Distributel, Fournisseur de services de tlcommunications
Lieux: Canada Contact: Dalton Calford (CTO) Distributel est un fournisseur de services pour les appels tlphoniques longue distance avec trois principaux tablissements situs dans trois villes diffrentes et deux provinces. Firebird est le support utilis pour le systme d'information interne, utilis par une moyenne d'environ 500 utilisateurs diffrents. Toutefois, le systme d'information interne n'est pas le domaine pour lequel nous utilisons Firebird le plus intensment. Le vrai stress vient de la charge gnre par nos clients. Nous fournissons une large varit de services, pour des centaines de milliers de clients, qui gnrent 2 millions de transactions par jour. Le tout tant gr par une base de donnes, efficacement. Nous avons trois Points de Prsence rseau (PoPs), chacun dans une ville diffrente, plus un PoP de dveloppement dans notre laboratoire de tests. Chaque PoP a un double switch de tlcommunication qui fait du dlestage et sert de secours en cas de dfaillance d'un autre. Cet quipement est vraiment spcifique pour nos besoins, mais nous le contrlons en utilisant Firebird. Chaque switch est connect deux processeurs de contrle de signal (SCPs), qui sont des petits ordinateurs utilisant Firebird. Cela veux dire que chaque PoP a quatre SCPs. Chaque SCP hberge deux bases de donnes diffrentes, ce qui veut dire que nous avons 32 bases de donnes diffrentes, toutes ayant la mme structure et contenant les mmes donnes. Si nous perdons un PoP, les autres PoPs prennent en charge l'appel, en fonction de l' tat de l'appel. Parmis les 96 tats d'appels diffrents, seulement quatre ne sont pas rcuprables. Chaque ville garde les dialogues redondants avec les SCPs des autres villes et les dialogues de rponses sont analyss en temps rel. Pour donner une indication des temps de rponses ncessaires, quand vous dcrochez le tlphone, un signal va vers le switch de tlcommunication, qui demande un SCP ce qu'il doit faire. La rponse habituelle est 'donne la tonalit et attend les chiffres composs'. La tonalit n'est pas automatique c'est la rponse d'une requte dans la base Firebird qui vrifie l'identifiant de la ligne, le statut du client, les indications de services (comme une rponse un appel) de mme que les garanties gouvernementales et les donnes prives. Du fait de la loi, nous n'avons droit qu' un chec pour 99,999 appels, ce que l'on appelle les cinq neuf qui dfinissent le fait d'tre prt pour l'entreprise. Notre service client est aussi impliqu dans la mise jour des bases de donnes. Ces bases de donnes fournissent des informations en temps rel notre support client, ainsi qu' notre systme de facturation, une base de donnes Firebird. En plus de stocker et gnrer les donnes des comptes clients, comme on peut s'en douter, la base de donnes est aussi continuellement interroge par notre unit de relation clientle, dont les employs sont la disposition des clients pour les informer sur l'tat de leur compte et leur historique des appels.
13
notre cration en octobre 2001, les deux premires annes ont t utilises pour le dveloppement du produit. Seulement 24 mois aprs la premire version finale en novembre 2003, OneDomain avait 20% de parts de march et en a prs de 30% maintenant. Par conception, notre architecture d'application est rellement client/serveur mais nous utilisons Citrix [Metaframe Terminal Server] pour crer des clients lgers et utiliser la mmoire du serveur et non pas celle du client. Nous avons un serveur avec Firebird 1.5.2 et plusieurs (jusqu' six) serveurs Citrix qui le sollicitent. Nous utilisons un client Win32, crit en Delphi, qui fonctionne sur les serveurs Citrix et alimente les utilisateurs qui accdent la base sur la machine serveur Citrix, une machine avec quatre processeurs, utilisant l'hyperthreading pour agir comme huit processeurs, avec 3.5Gb de RAM disponible. Nous avons commenc avec Firebird SuperServeur mais nous avons rapidement fait le choix d'utiliser la version Classic pour plusieures raisons, dont les limites d'utilisation de la mmoire qui dgradait considrablement les performances quand la charge devenait importante. Avec prs de 800-900 utilisateurs thoriques, dont moins de 300 connects simultanment, nous avons toujours tenu la charge. Le bon point avec cette architecture, est que vous pouvez facilement monter en charge, en ajoutant seulement plus de serveurs.
15
Star-airlines
Lieux: France Contact: Fabien Campos STAR AIRLINES est une compagnie arienne franaise. Ddie au trafic touristique, STAR AIRLINES exploite des vols rguliers principalement sur des destinations long courrier, en Afrique et au Proche Orient, et des vols affrts sur les destinations moyen courrier du bassin mditerranen. Firebird est le serveur de base de donnes de notre ERP et gre notre budget, le planning des avions et des quipages, l'exploitation et la rgulation, la facturation et le contrle. Firebird est install sur un serveur Windows 2000 utilis par 125 utilisateurs (administratifs) dclars et cinq d'entre eux en utilisation 24h/24 et 7j/7. Environ 300 personnes (nomades) consultent rgulirement leur planning et messages l'aide d'une application web. Deux services tournant 24h/24 et 7j/7 importent automatiquement et rgulirement des donnes en provenance de l'extrieur. Des extractions quotidiennes et mensuelles sont faites vers notre systme de paie et notre comptabilit.
Nombre d'utilisateurs
La premire chose identifier est de savoir si l'on parle du nombre de connexions (le nombre maximum d'utilisateurs connects au mme moment au plus haut de la charge) ou de la taille maximum de la base des utilisateurs ?
Superserveur
Chaque Firebird Superserveur est limit en pratique un maximum de 150 400 connexions concur16
rentes. Cela vient du fait que Superserveur et toutes ses connexions toutes ses bases de donnes sont encapsules dans un seul processus 32-bit. Un processus 32-bit ne peut adresser plus de 2 Gb de mmoire. Chaque connexion une base cre un ou plusieurs threads pour grer les requtes de cette connexion; Superserveur utilise aussi des threads pour ces propres tches de fond de collecte des donnes primes et d'autre tches en ligne. Superserveur a aussi besoin de mmoire pour d'autres tches, bien sr. Un cache de page configurable un pour chaque base ayant une connexion active est maintenu pour grer les pages de base et d'index frquemment utilises en mmoire. Pour Superserveur, ce cache est partag par toutes les connexions la base en question. La taille du cache de page par dfaut est de 2048 pages, donc, pour une base ayant une taille de page par dfaut de 4Kb, 8 Mb de RAM doivent tre disponibles pour un usage efficace de ce cache. (Si le a besoin d'tre pagin dans la mmoire virtuelle, son utilit serait nulle!). En gnral, les bases sont cres avec une taille de page de 8Kb et c'est un frquent gchis de ressources quand les dveloppeurs et les DBA surdimensionnent la taille du cache, en pensant que plus c'est mieux (c'est ce que l'auteur appelle le syndrome Lamborghini: si vous roulez sur le priphrique parisien aux heures de pointe dans une Lamborghini, pensez-vous que vous irez plus vite que moi avec ma Mazda 121 ?). Quelques fois cette mesure est prise pour amliorer le temps de rponse qui a t dgrad par une mauvaise gestion des transactions dans le code client et par une mauvaise gestion des connexions. C'est inutile. De tels problmes n'ont rien voir avec la taille du cache mais bien avec une mauvaise libration des ressources. Augmenter le cache ne fait qu'aggraver la situation. Pensez l'effet sur les ressources quand, par exemple, le cache pour une de page classique de 8Kb est port 20.000 pages. Cela reprsente 160 Mb qui doit tre prserv en mmoire pour rendre le cache utile. Le serveur maintien des fichiers de verrous dans la RAM et cela grossi dynamiquement (jusqu' un maximum configurable) quand plus de connexions sont cres. Firebird 1.5 va utiliser la RAM pour les oprations de tri si elle est disponible. C'est parfait pour les temps de rponse, mais beaucoup d'applications mal crites maintiennent ouvert des ensembles de donnes tries comportant des centaines de lignes pendant de longues priodes. Les serveurs de bases de donnes aiment la RAM. Plus il y en a de disponible pour le serveur, plus il est rapide. Toutefois, la barrire de 2 Go pnalise le Superserveur dans une environnement surpeupl parce que chaque connexion Superserveur utilise environ 2 Mo de RAM pour instancier son processus et maintenir ces ressources. Donc avec 500 connexions Superserveur vous utilisez un gigaoctet, laissant en gros moins d'un gigaoctet de RAM totale adressable disponible pour que le serveur travaille, trie, gre les transactions, les verrous des tables, le stockage en mmoire et les nouvelles connexions.
Classic
Le serveur Classic n'est en fait pas un serveur de bases de donnes, mais un service en tche de fond (ou, sous Linux, un daemon xinetd) qui coute les demandes de connexion. Pour chaque connexion russie, le service instancie un processus serveur Firebird qui est la proprit exclusive de cette connexion. Le rsultat est que chaque connexion utilise plus de ressources, mais le nombre de connexions devient uniquement une question de RAM disponible sur la machine serveur. En plus des ~2Mb pour instancier la connexion, chacun maintient son propre cache de page. Toutes les connexions obtiennent le mme cache de dpart et, puisque que le cache n'est pas partag, il peut (et doit) tre plus petit. La taille recommande est d'environ 2Mb (512 pages pour une taille de page de 4Kb) sur une machine ddie de 4Gb, mais peut tre beaucoup plus petite. Il est important de garder assez de RAM disponible pour que le gestionnaire de verrous puisse grossir lors des pics de connexions.
17
Adressage 64-bit
Une manire de lever les limitations de la RAM 32-bit est de compiler un Superserveur 64-bit. Un Superserveur 64-bit est possible sur les plate-formes POSIX o l'OS a un support stable pour le matriel 64-bit. Un Superserveur 64-bit Firebird 1.5.2 exprimental sur AMD64/Linux i64 a t livr il y a plus d'un an mais il a t dclar instable. Une version 64-bit AMD64/Linux i64 existe dans les phases de test de Firebird 2.0. Sous Windows, il n'est pas encore possible de compiler un Superserveur 64-bit du fait de problmes avec l'actuelle version de du compilateur de Microsoft Visual Studio 7 C++, l'environnement standard de compilation de Firebird 2 sous Windows. Des binaires privs des deux versions v.1.5.x et v.2.0 sur des compilateur non Microsoft fonctionnent de manire stable dans des environnements de production et l'quipe de dveloppement a signal son intention de raliser une version 64-bit Windows pour Firebird 2.0.
Pool de connexions
Utiliser un middleware pour garder et grer des ressources pr alloues pour garder un nombre fini de connexions prtes pour des demandes de connexions est ce qui est appel un poll de connexions. Il y a plusieures manires d'implmenter un poll de connexions et qui oblige agir de la sorte quand on a une base d'utilisateurs qui augmente. Il ne serait pas raliste de mettre en place un systme extensible multi utilisateurs sans cela. Un pool de connexions peut tre combin avec une gestion des files d'attente si les ressources ne sont pas suffisantes pour grer les pics de charge. Les dveloppeurs de ces middleware doivent prendre soin de surveiller les connexions et dconnexions, surtout pour les clients stateless comme les navigateurs web, pour viter les manques de ressource. Le middleware doit viter les flux rcursifs qui pourraient monopoliser le pool et, pour des raisons d'architecture, interdire compltement les connexions croises.
Support SMP
L'incompatibilit de l'implmentation des threads de Superserveur avec l'implmentation Windows SMP doit tre vue comme une limite l'extensibilit. C'est cause de la manire totalement arbitraire que Windows utilise pour passer l'intgralit de l'affinit d'un processus entre les processeurs qui rsulte en un effet de bascule, par lequel les performances vont se dgrader continuellement aux heures de pointe tandis que le systme attend que l'OS se dcide transfrer toutes les resources du Superserveur actives en mmoire d'un processeur l'autre quand il dtecte que la charge d'utilisation des processeurs est ingale. Superserveur est configur par dfaut pour n'tre li qu' un seul processeur pour viter cela. Avec Linux, la gestion multiprocesseurs ne cre pas cet effet de bascule avec les noyaux 2.6 et suprieurs, il a toutefois t rapport avec certains noyaux 2.4 sur de l'ancien matriel SMP. Cependant, SMP n'apporte pas non plus de gains significatifs de performance pour Superserveur sous Linux. Le support configurable pour diffrent niveaux de SMP, la gestion fine du multi-threading a t 18
conue pour le moteur Vulcan et deviendra une fonctionnalit de Firebird 3. Son efficacit sur les oprations en mmoire a t suffisamment dmontre pour que cela soit quelque chose de trs intressant pour le futur. Dans le mme temps, au vu de l'importance inhrente aux temps de rponses des E/S des disques sur les processus en cours de transaction, tout le bruit fait autour des possibilits de SMP peut tre rapproch du syndrome Lamborghini. Dans un environnement appropri, Superserveur sur un systme mono processeur est trs efficace ! Classic un seul processus par connexion ne souffre pas d'inhibition avec SMP, mme sous Windows. Avant Firebird 3, quand la distinction entre les deux modles de ressources aura disparue, pour tre remplace par une gestion configurable des ressources, Classic est le meilleur choix pour un plan de mont en charge puisqu'il est capable de rpondre demande croissante de monte en charge par une simple augmentation des ressources du systme. Note
Il a t rapport quelques problme au niveau du noyau avec SMP sur certaines versions de Linux avec 8 CPUs et l'hyperthreading activ, qui n'apparaissent pas avec des systmes 4X. Comme le support complet de l'affinit CPU sous Linux n'existe pas avant le noyau v.2.6, dfinir l'affinit CPU avec firebird.conf n'est pas support par Linux dans la version actuelle de Superserveur.
"Rseaux Windows"
Un rseau TCP/IP avec les ressources adquates en utilisant le modle appropri de Firebird est parfaitement extensible. Un hte Linux sans application entrant en comptition (y compris Xserver!) fonctionnant dessus va dlivrer le maximum de performance l'autre bout de l'chelle. Comme serveur de base de donnes, un hte Windows souffre de charges inutiles inhrente au systme d'exploitation qui ont un effet notable ngatif sur les performances dans des conditions de forte charge. Toutefois, il y a un autre pige li au rseaux Windows. Le protocole natif de canaux de communication nomms de Windows (NetBEUI), que l'interface rseau de Firebird supporte pour des raisons historiques, a une limite absolue d'un maximum de 930 connexions pour tout serveur. Les canaux de communication nomms doivent tre proscrits pour les environnements autre que des petits rseaux workgroup, car c'est un protocole trs bavard et l'est de plus en plus en cas de croissance du rseau. Soit dit en passant, les bases de donnes sous Windows devraient toujours tre stockes sur des partitions NTFS qui, si elles sont suffisamment protges, offrent de meilleures performances et sont moins exposes aux risques que FAT32. Les anciens disques durs qui ont t utiliss sur des systmes fonctionnant auparavant avec NT 4.0 doivent tre aussi considrs comme exposs, l'ancien NTFS n'apportant pas les garanties de protections qui ont t ensuite ajoutes dans les version actuelles.
de ces dfauts.
20
Gestion
L'quipe de dveloppement est auto-gre. Les dcisions sur ce qui doit tre livr dans les nouvelles versions sont prises par consensus, dans un forum priv constitu des dveloppeurs actifs, les responsables de la construction des binaires, (ceux qui compilent les versions livres et les utilitaires d'installation), le coordinateur de la documentation et le responsable des livraisons de versions. La Fondation Firebird, en tant que telle, n'est pas implique dans la direction ou la gestion de l'effort de dveloppement, mme s'il existe des interconnexions (des membre du projets qui sont aussi des membres de la Fondation).
Maintenance du code
Firebird a derrire lui un code de base solide, bien maintenu avec constamment de nombreux regards attentifs poss sur lui tous niveaux, de l'architecture, la conception, l'implmentation et aux tests de qualit.
Politique de versions
L'quipe de dveloppement tient bon le principe de ne pas faire de version de production tant qu'au moins tous problmes relevs dans les tests de qualit (QA) n'aient t rsolus de manire juge satisfaisante par les administrateurs du projet. Les version majeures et sous versions passent par de multiples cycles de tests de beta et pr-versions. L'inconvnient d'une telle rigueur dans la production est que les dates finales de livraisons ne sont jamais fermes. Les versions majeures reprsentent des amliorations majeures et des nouvelles fonctionnalits. Les sous-versions arrivent priodiquement entre les versions majeures pour corriger des bug ou pour apporter des amliorations mineures des fonctionnalits existantes et aux outils, ou pour complter des fonctionnalits qui auraient t partiellement implmentes dans une prcdente version ou sousversion. Pour les applications clientes, la seule modification essentielle est de mettre jour la bibliothque cliente en concordance avec le numro de la version majeure. Les fournisseurs d'applications peuvent incorporer des nouvelles fonctionnalits dans leurs logiciels et synchroniser l'installation d'une nouvelle version de Firebird en installant de nouveaux modules ou versions de leurs application clientes ou serveur de leurs applications.
licence non virale permet que des modules rgis sous cette licence soient compils avec du code, ferm, propritaire, ce qui la rend plus utilisable pour le dveloppement de logiciels commerciaux. Toutefois, comme la GPL et la plupart des licences open source, le style de licence MPL rend obligatoire que les modifications faites au code source lui mme soient rendues librement disponibles au public et que ce code ne soit pas distribu sous une autre licence.
Financement
Les concepteurs et programmeurs qui dveloppent Firebird sont des volontaires, principalement des travailleurs indpendants ou avec une autre activit qui travaillent temps partiel sur le code source de Firebird. Certains sont rtribus directement ou indirectement par leur employeur, en donnant une partie de temps de travail de l'entreprise pour travailler sur Firebird. Certains des plus actifs du coeur des dveloppeurs (ceux qui travaillent sur le moteur de Firebird lui mme) sont aids par des subventions provenant des fonds levs par la Fondation Firebird, ce qui leur permet de consacrer un minimum d'heures par mois au projet. Le projet a un concepteur/developpeur pour qui la subvention est suffisante pour qu'il y travaille plein temps. Un subventionnement est aussi possible pour ceux des membres qui dveloppent et supportent des pilotes d'accs. Les fonds de la Fondation proviennent des cotisations des membres, du sponsoring d'entreprises et de dons privs. Les membres, les sponsors et les dons la Fondation proviennent de la communaut des utilisateurs et des entreprises qui utilisent Firebird pour leurs propres produits commerciaux et donnent quelque chose en retour pour le dveloppement.
22
Licence
Le contenu de cette documentation est soumis la Licence Public Documentation License Version 1.0 ; vous pouvez utilisez cette Documentation seulement si vous respectez les termes de cette Licence. Des copies de cette Licence sont disponibles http://www.firebirdsql.org/pdfmanual/pdl.pdf (PDF) et http://www.firebirdsql.org/manual/pdl.html (HTML). Le titre d'origine est : Firebird Databases as the Back-end to Enterprise Software Systems. Le rdacteur initial de la premire version est : Helen Borrie. Copyright (C) 2006. Tous droits rservs. Contact: hborrie at ibphoenix dot com. Traduction franaise par Philippe Makowski - Copyright (C) 2006. Tous droits rservs. Contact: pmakowski at ibphoenix dot com.
23