Sunteți pe pagina 1din 23

Utiliser des bases de donnes de Firebird dans le systme d'informations des entreprises

Helen Borrie Traduction en franais: Philippe Makowski


15 Juillet 2006 Document version 1.2-fr

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

Qu'est-ce que Firebird?


Firebird est systme de base de donnes relationnel, comparable des produits comme DB2 d'IBM, Oracle, SQL Server de Microsoft et le produit open source PostGreSQL. Le logiciel a deux principaux composants : le serveur de bases de donnes, qui est install sur la mme machine que les bases de donnes et l'interface applicative, communment appele la bibliothque client. La bibliothque client est un composant une DLL sous Windows ou un objet partag (.so) sur les autres plates-formes ncessaire sur chaque station cliente dans le cadre d'un dploiement deux-tiers. Pour les dploiements multi-tiers, quand les utilisateurs accdent aux bases de donnes travers un middleware depuis un navigateur web ou autre client lger, la bibliothque cliente Firebird n'est pas dploye sur les stations des utilisateurs mais uniquement au sein du middleware. Le serveur Firebird laisse une faible empreinte dans le systme de fichiers quand il est install sur la machine serveur. L' excutable fait moins de 1.5 Mb et une installation complte, avec les outils et la documentation, prend moins de 10 Mb. L'occupation mmoire variera en fonction du dploiement, qui peut aller d'une application mono utilisateur utilisant une seule base de donnes des centaines de connexions concurrentes vers de multiples bases de donnes servant des centaines d'utilisateurs au sein d'un large rseau. Firebird est maintenu et dvelopp par une communaut de dveloppeurs du monde entier. C'est un projet open source, non commercial appartenant aux dveloppeurs. tant distribu compltement libre d'honoraires, le droit d'exploitation n'est source de revenus pour personne.

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.

Livre Blanc Firebird en Entreprise

Version stable actuelle


Firebird 1.5, livr la premire fois en mars 2004, tait une rvision complte du code C vers C++ pour prparer la voie des amliorations architecturales essentielles prvues pour Firebird 2. La version de production la plus rcente, Firebird 1.5.3, est trs stable et a bnfici d'amliorations en provenance du dveloppement de Firebird 2.

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.

Firebird est il Prt pour l'entreprise?


Dfinir l'expression Prt pour l'Entreprise est beaucoup plus difficile que compter le nombre de rponses sur Google. La presse en ligne utilise cette expression comme si elle tait clairement dfinie, comme nouveau n ou dtax. On en conclut que cette chose phmre, quelque chose que tout le monde dsire pour un logiciel de bases de donnes, est, soit prsente, soit absente, et ne peut tre obtenue que dans des produits commerciaux. Pour aborder la question de manire constructive, la premire chose est de trouver un contexte d' entreprise qui corresponde au cas trait. Les deux questions rationnelles ce poser sont : Quels besoins, prsents et futurs, de l'Entreprise X doivent tre satisfaits par les fonctionnalits du systme de gestion de bases de donnes ? Le SGBD Y y rpond-il? Ceux d'entre nous qui sommes du ct des utilisateurs plutt que du ct des critiques de la presse ex4

Livre Blanc Firebird en Entreprise

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

Livre Blanc Firebird en Entreprise

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

Livre Blanc Firebird en Entreprise

isol des donnes pendant une longue priode.

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

Livre Blanc Firebird en Entreprise

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

Livre Blanc Firebird en Entreprise

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.

Complexit de migration et mise jour


Un point supplmentaire d'autonomie qui est devenu un problme pour les utilisateurs de nombreux SGBD volus dans les temps rcents est le degr de transparence avec lequel des anciennes bases de donnes peuvent tre administres et migres quand le logiciel serveur est mis jour ou que les bases sont dplaces vers une nouvelle plate-forme matrielle ou logicielle. Souvent ces problmes deviennent des oprations trs coteuses en temps et en logistique. Migration Au contraire d'autres SGDB significatifs, part le cousin de Firebird, InterBase, la migration de bases est sans heurts. Contrairement aux autres, qui ont une architecture dur disque diffrente selon les plate-formes, ou qui ne grent leurs bases que sur une seule plate-forme, la structure des bases Firebird est stable quelle que soit la plate-forme. Cela veut dire, par exemple, que si le choix d'un systme d'exploitation pour le serveur se rvle tre une solution sous-optimale, vous pouvez changer pour un autre serveur avec simplement le temps qu'il faut pour faire une sauvegarde et une restauration. Compatibilit ascendante Une nouvelle version de Firebird se connecte n'importe quelle base de donnes qui fonctionnait sous une version prcdente et une sauvegarde transportable d'une base faite sur une autre plateforme matrielle ou logicielle peut tre restaure, prte fonctionner, sur n'importe quelle autre plateforme support par la nouvelle version. Quand une mise jour est faite vers une nouvelle version majeure, il est hautement recommand, mme si ce n'est pas essentiel, de faire passer les bases par le cycle de sauvegarde restauration, afin de mettre jour la structure de stockage sur disque et rendre les nouvelles fonctionnalits disponibles. La question qui se pose pour savoir s'il faut le faire o non est uniquement lie au fait de savoir si le fournisseur de l'applicatif a dj mis jour son application pour utiliser les nouvelles fonctionnalits. Sous-versions Normalement, les sous-version ne changent pas la structure de stockage sur disque, toutefois il peut tre intressant de faire un cycle de sauvegarde restauration si la sous-version amliore des fonctionnalits existantes. 9

Livre Blanc Firebird en Entreprise

Conformit ACID et Firebird


Les quatre principes ACID sont l'atomicit, la cohrence, l'isolement et la durabilit.

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

Livre Blanc Firebird en Entreprise

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.

Journal des Transactions


La durabilit est l'un des principes les plus difficile respecter. Les autres systmes de base de donnes qui se disent ACID grent traditionnellement cela en enregistrant les transactions non valides dans un journal des transactions. Cependant, l'utilisation d'un journal de transaction n'a jamais totalement garanti la durabilit, puisque le fichier journal lui mme peut tre lui mme corrompu logiquement ou physiquement par l'vnement qui a interrompu la transaction. Certains des SGBD qui reposent sur une solution de fichier journal pour satisfaire la durabilit essaient de rduire les risques en utilisant des write-ahead log pour enregistrer les informations avant d'essayer de valider les changements. Si ce type de journal survit sans dommage, il peut tre possible de retrouver le travail non valid quand le systme se remet en marche et utiliser cette information pour remettre la base dans un tat stable et la remettre dans l'tat o elle tait avant le problme. De tels systmes sont caractriss par la ncessit d'avoir de longues procdure de remise en tat aprs des erreurs rseau ou des pannes lectriques. Certains produits SGBD sophistiqus sont notoirement connus pour leurs problmes lis la restauration l'aide des journaux gnrs lors de l'interruption des transactions. L'instabilit de ces moteurs de bases de donnes est telle que, mme sur des sites avec des quipements moyens, il est ncessaire d'employer des quipes pour surveiller en permanence le serveur pour viter les problmes et corriger les incohrences avant que les problmes ne se propagent trop loin et assurer l'intgrit des donnes.

L'Architecture Multi-Gnrationelle de Firebird


L'architecture de Firebird permet de se passer de fichiers journaux car elle garde la version prcdente de chaque enregistrement modifi ou supprim, pas seulement le temps que la transaction existe, mais tant que toutes les transactions qui taient intresses par cet enregistrement, quelle qu'en soit la 11

Livre Blanc Firebird en Entreprise

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.

Journal des transactions et Firebird


Firebird n'a pas besoin de journal de transaction pour effectuer des rparations et il n'a pas de fonctionnalit de journaux de transactions dans son moteur. Toutefois, si une entreprise besoin d'enregistrer des journaux pour des besoins d'audit, d'excellents outils existent et sont disponibles chez des distributeurs tiers de solutions logicielles.

Qui utilise Firebird?


Parce que Firebird est gratuit, il n'y a pas de licences, pas de ventes compter. On sait, par des sondages d'entreprises rputes, que Firebird fait son travail dans des centaines de milliers de sites de production dans le monde entier. La slection suivante est faite d' entreprises et d'organisations qui sont publiquement connues pour utiliser Firebird : Broadview Software Ltd, Toronto, Canada, distributeur de systmes d'information, de contrle et de services en ligne pour les chanes tlvises dans le monde entier. Morfik P/L, Hobart, Tas., dveloppeurs et distributeurs de WebOS, suite de dveloppement pour la ralisation et maintenance de sites web interactifs, stocke les objets web dans des bases Firebird, de mme que les donnes utilisateurs. Communicare Systems Pty Ltd, Perth, WA, distributeur de solutions de gestion des patients pour les hpitaux, cliniques, praticiens mdicaux et units de sant mobiles dans toute l'Australie. The Examiner newspaper, Launceston, Tas., systme haute disponibilit (24/7) pour la gestion des informations. U.S. Navy, large usage dans des systmes de logistique et d'organisation. Frontrange Solutions USA Inc., Colorado Springs, U.S.A, comme support d'un outil de CRM complet, puissant et comptitif, adaptable toutes les organisations : Goldmine software suite. British Rail, U.K., systme de gestion du temps, rservations, facturation et d'information pour les transports ferroviaires de passagers. Deutsche Presse-Agentur GmbH, HQ in Hambourg, Allemagne, la plus grande agence de presse d'Allemagne, propose un service plantaire pour les journaux, magazines, TV et radios. KIMData, Munich, Allemagne, systme de solutions dcisionnelles pour les hpitaux allemands.

12

Livre Blanc Firebird en Entreprise

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

Livre Blanc Firebird en Entreprise

Bibliothque municipale de Prague


Lieux: Rpublique Tchque Contact: Ondrej Cerny, IT department manager La bibliothque municipale de Prague gre environs 3.000.000 de publications et a environ 120.000 utilisateurs rguliers (enregistrs). La bibliothque centrale dispose de nombreuses annexes dans la ville, 20 d'entre elles sont actuellement connectes au site central. Le dploiement est en cours, avec deux ou trois annexes supplmentaires connectes par mois, chacune reprsentant environs 5-10 nouveaux utilisateurs utilisant 10-50 nouvelles connexions. La bibliothque utilise 20 applications avec une seule base de donnes. Cinq sont considres comme des applications principales utilises par presque tous les utilisateurs, grant les oprations usuelles d'une bibliothque, terminaux publiques d'accs (dans les bibliothques) et accs publique via Internet aux collections. Ces applications sont utilises par 300-350 utilisateurs concurrents pendant les heures d'ouverture, utilisant entre 400 et 600 connexions la base, qui a actuellement une taille d'environ 30GB. Firebird gre 3-5 millions de transactions chaque jour. Les autres applications sont spcialises ou sont des tches de fond (envoi d' e-mails au sujet des livres demands etc.). Nous utilisons Linux Classic Firebird 1.5.2 sur Red Hat 9 avec un noyau prpar pour grer les 400-600 instances. Le matriel est un 4-CPU Xeon avec 16Gb RAM et 120Gb RAID 10 de stockage. Nous avons aussi un 8-CPU Xeon avec 20Gb RAM et 500Gb RAID 10 pour les besoins futurs prcisons que tout cela est encore en dploiement, donc les besoins grandissent tout le temps. La bibliothque ne fonctionne pas 24h sur 24 7 jours sur 7. Il y a des plages de maintenance de minuit 5 heures tous les jours, mais le systme doit fonctionner sans arrts tout le reste du temps. Les arrts potentiels ne sont pas critiques et donc il y a un plan de secours en place pour restaurer les donnes en moins de deux heures si le systme principal subissait un problme critique. Bien que trs satisfait de Firebird, il reste des problmes avec les anciennes applications qui utilisent le Borland Database Engine (BDE), une couche d'accs aux donnes obsolte conue pour accder des bases bureautiques comme Access, qui n'a jamais trs bien fonctionn en rseau et est particulirement faible pour grer les donnes de manire transactionnelle. Le plus gros problme est le blocage du nettoyage des donnes primes qui oblige faire des sauvegardes/restaurations toutes les nuits et oblige surdimensionner le matriel pour compenser les dgradations de performances du fait des donnes primes accumules tous les jours. En dpit de l'architecture non optimale actuelle des applications, la machine 4x Xeon n'est utilise qu' 50 pour cent. Ces vieilles applications BDE doivent tre remplaces cette anne par de nouvelles applications conues en architecture trois-tiers avec des poll de connexion, utilisant une interface d'accs direct aux donnes dans le middleware Delphi . Nous esprons avec cette mise en place, des gains substantiels de rserve matrielle avec l'quipement actuel, assez pour garantir la croissance des besoins d'accs pour les cinq prochaines annes.

OneDomain, niche de systme de business intelligence


Lieux: Birmingham, Al, U.S.A. Contact: Ed Salgardo Snr OneDomain est une entreprise croissance rapide implante Birmingham, Alabama qui dveloppe et vend des logiciels de media planning, recherche, et de business intelligence aux chanes de tlvision dans tous les Etats Unis. Le principal produit, appel ClearView, permet aux vendeurs d'espaces publicitaires d'analyser les audiences TV et dfinir les cibles pour les annonceurs. Aprs 14

Livre Blanc Firebird en Entreprise

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.

Moscow Interbank Currency Exchange Bank


Lieux: Russie Contact: Sergey Korotkikh En dpit de son nom, MICEX est la plus grande bourse d'change de devises et drivs de Russie. Le chiffre d'affaires moyen quotidien dpasse les 6 milliards de $. En tant que bourse d'change entirement lectronique, MICEX a utilis InterBase et, plus tard, Firebird, depuis 1994 en tant que principal serveur de base de donnes pour les donnes de march, ordres et changes. Le MICEX Trading System a plus de 2000 utilisateurs implants sur tout le territoire de la Russie dans huit fuseaux horaires diffrents. Les changes sont en temps rel avec une charge moyenne de plus d'un quart de millions d'ordres par jour, avec plus de 180.000 changes conclus par jour. De plus, plus de 300 systmes de courtage lectronique sont connects au systme d'changes travers une API de connexion. Les systmes d'changes lui mme est semi-dtach de la base de donnes elle mme, fournissant un middleware lourd d'accs la base, de laquelle et vers laquelle il rcupre et maintiens toutes les informations ncessaires pour les changes. En plus des fonctions d'changes, la base de donnes Firebird est intensment utilise par nos activit de clearing et de reporting. Nous gnrons des tats quotidiens d'changes et de clearing pour nos 1000 membres et les envoyons par e-mail. lment cl des changes financiers en Russie, MICEX est tenu d'offrir un haut niveau de disponibilit. D'aprs un audit fait par le Gartner Group, nous avons un niveau de disponibilit de 99.999 pour cent.

15

Livre Blanc Firebird en Entreprise

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.

Facteurs influant l'extensibilit


Diffrents facteurs doivent tre pris en compte quand on prvoit d'tendre les capacits pour permettre plus de connexions concurrentes des utilisateurs.

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 ?

Limites matrielles, logicielles et rseaux


Firebird peut tre dploy avec diffrents modles. Ce qui nous intresse ici sont les deux modles serveur complet , Superserveur et Classic. Ces deux modles sont disponibles sous Windows, Linux et d'autres plate-formes. Bien que le moteur du serveur soit le mme, quel que soit le modle, le choix du modle a une influence croissante au fur et mesure que le nombre d'utilisateurs potentiels connects augmente. Le matriel et le systme d'exploitation jouent un rle aussi.

Superserveur
Chaque Firebird Superserveur est limit en pratique un maximum de 150 400 connexions concur16

Livre Blanc Firebird en Entreprise

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

Livre Blanc Firebird en Entreprise

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.

La comptition pour la RAM


Essayer de faire fonctionner un serveur de base de donnes sur un systme qui utilise aussi des services entrant en comptition avec lui, comme un serveur web, un serveur Exchange, un serveur de domaine, etc., risque de voir ces autres services voler les ressources (RAM et temps CPU) au serveur de base de donnes, empchant le mme le Superserveur d'utiliser les 2 Gb qu'il est capable de grer ou limiter le nombre de connexions au serveur Classic, et ralentir les temps de rponses des bases de donnes.

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

Livre Blanc Firebird en Entreprise

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.

Conception des bases et des logiciels


La disponibilit et l'extensibilit de tout systme logiciel peut tre ngativement affect par une mauvaise conception de la base de donnes, des requtes mal crites, des flux de donnes inappropris et, particulirement, une mauvaise gestion des transactions. L'architecture multi gnrationnelle assure une gestion des tches optimiste robuste et excellente et une forte capacit de traitement. Une base de donnes performante est le rsultat d'une conception attentive, une bonne normalisation, de bons index, et, du cot client, de requtes bien crites et une attention particulire porte la gestion des transactions. Au contraire, une mauvaise conception de la base amne des requtes inutilement complexes, des mauvais index qui peuvent bloquer les capacit de l'optimiseur utiliser les bons plans de requte. Des requtes lentes sont gnralement le rsultat 19

Livre Blanc Firebird en Entreprise

de ces dfauts.

Collecte des donnes primes


MGA accumule des donnes primes, sous la forme d'anciennes versions des enregistrements. Le moteur nettoie en ligne ces donnes primes. Toutefois, il ne permet pas le nettoyage des donnes concernant des anciennes versions d'enregistrements qui intressent encore des transactions actives. Les transactions qui restent intresses longtemps maintiennent des versions anciennes des enregistrements qui peuvent tre pertinentes pour des transactions commences aprs, ce qui fait que l'on peut arriver un niveau de donnes primes difficilement grable. Il est essentiel que les dveloppeurs qui utilisent Firebird comprennent comment cela peut arriver et d'crire des logiciels qui vitent cet tat, en gardant un niveau raisonnable de donnes primes afin que le sous systme de nettoyage puisse le grer.

Commit Retaining et Autocommit


Commit Retaining est une fonctionnalit de Firebird qui a t hrite de son anctre, InterBase. Cela a t implment pour conserver des ressources cot serveur et les laisser disponibles pour les utilisateurs utilisant les outils de dveloppement rapide de Borland et le BDE, le cadre d'accs gnrique d'accs aux donnes qui a t cr pour permettre aux applications graphiques Windows de se connecter aux bases de donnes. Son but tait de prsenter un niveau uniforme pour le dveloppement RAD, quelque soit la base de donnes fonctionnant l'autre bout de la chane. Autocommit- un mcanisme cot client qui joue le rle d'un Post au niveau instruction et d'un Commit au niveau transaction en une seule tape - a t fournit pour permettre aux dveloppeurs de ne pas ce soucier des transactions. Dans les composants RAD, Commit Retaining et Autocommit ont t lis. Cela convient trs bien des base de donnes bureautique comme dBase et Paradox (lesquels moteurs sont, de fait, le BDE!), qui n'ont pas de transactions. Avec Firebird (et InterBase), Commit Retaining fait que les transactions restent intresses indfiniment. La collecte des donnes primes cesse de fait avec les applications standard cres avec les outils Borland RAD et tout autre application qui utilise Commit Retaining. De tels systmes connaissent des problmes de dgradations progressives de performances qui ne peuvent tre rsolus sans un arrt des bases afin de permettre ces vieilles transaction de mourir. Autocommit et Commit Retaining ne sont pas le seul apanage des outils Borland, bien sr. Il sont utiliss par beaucoup d'interfaces d'accs aux donnes et Commit Retaining est disponible dans la norme SQL, donc il revient aux dveloppeurs de bien comprendre le mcanisme et ses effets afin d'utiliser ces fonctionnalits avec une extrme prudence et un bon degr de contrle.

A qui appartient et qui gre Firebird?


Aucune organisation commerciale ne possde Firebird. C'est la proprit commune des membre du projet. Il est lgalement et financirement soutenu par la Fondation Firebird, une association but non lucratif enregistre et administre en Nouvelles Galles du Sud, en Australie.

20

Livre Blanc Firebird en Entreprise

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 Open Source


Le code source de Firebird est sous deux licences drives de la Mozilla Public License v.1.1. (MPL). Les modules en provenance du code de base d'InterBase est sous la licence InterBase Public License v.1.0, tandis que l' Initial Developer's Public License (IDPL) s'applique aux nouveaux modules. L'IPL et l'IDPL diffrent de la MPL 1.1 seulement par le retrait de ce qui impliquait des droits de proprit Netscape Corporation. L'IDPL diffre de l'IPL par l'exclusion d' Inprise Corporation dans diffrents copyright du code source. Le style MPL de licence diffre de la bien connue GNU Public Licenses (GPL) du fait qu'elle n'est pas virale. Virale est le terme qui dcrit la restriction GPL qui interdit que du code sous cette licence soit compil avec un autre code source qui ne soit pas lui mme soumis la licence GPL. Une 21

Livre Blanc Firebird en Entreprise

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

Livre Blanc Firebird en Entreprise

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

S-ar putea să vă placă și