🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.lang.c
Article #73

Re: [HS]Base de donnée en C

#73
From: bruno modulix
Date: Tue, 02 Nov 2004 22:15
55 lines
3697 bytes
Pascal a �crit :

NB : hs ici, donc xpost et fu2 fcdev

> James Kanze a �crit :
> 
>> Quel est le but du projet ? C-�-d est-ce que la base de donn�es est
>> accessoire, ou est-ce que le but est que tu programmes toi-m�me une
>> petite base de donn�es ? Dans le premier cas, l'utilisation d'une
> 
> 
> Le but est d'impl�menter un agenda r�partie (client et server avec 
> communication rpc). Donc la base de donn�es est accessoire. Le tout est 
> de justifier ce qu'on a choisit.
> 
>> Un premier choix de taille : est-ce qu'on peut maintenir toutes les
>> donn�es en m�moire ou non ? (Avec des machines modernes, la limite
>> pourrait bien �tre � plus d'une million d'enregistrements.) Et quel sont
>> les contraints de robustit� : que se passe-t-il par exemple si ton
>> programme crashe, ou qu'on tire le cordon de l'ordinateur par erreur ?
> 
> 
> Ba j'ai choisi un serveur � donn�e r�manente, ce qui me semble le plus 
> efficace en terme de robustesse. D'ou l'utilisation de fichier.
> 
>> Optimiser quoi dans tout �a ? Le temps de programmation (c'est en
> 
> 
> Le pb avec un fichier par contact : c'est le nombre d'E/S par fichier, 
> le gaspillage de m�moire (pour 5 lignes de fichier, on va perdre de la 
> m�moire pour rien). C'est ce pb que je veux optimiser. Mais le pb d'un 
> seul fichier, c'est comment faire pour retrouver rapidement un contact? 
> Avec fgets, je r�cup ligne par ligne. C'est trop lent!

Avec un index, g�n�ralement sous forme d'arbre ou de table de hachage - 
et bien s�r persistant en m�moire secondaire. Utiliser si possible pour 
les donn�es un fichier avec des enregistrements � taille fixe, pour 
acc�der directement � l'enregistrement recherch�.

Le tout est une recette bien connue, �a s'appelle un fichier s�quentiel 
index�, ou isam :
http://www.webopedia.com/TERM/I/ISAM.html

Mais si la base de donn�e n'est pas le but de l'exercice, utiliser 
plut�t berkeley db (cf lien dans un autre post), qui fait d�j� tout �a 
tr�s bien.

Dernier point : le but de l'exercice est le rpc, donc occupe-toi du rpc 
et ne perd pas ton temps avec des probl�mes de performance.

Eventuellement, d�fini une API simple encapsulant les probl�mes d'acc�s 
fichier, de sorte � pouvoir changer de mode de stockage par la suite 
sans retoucher la logique applicative.

Bruno
Technical Details
Message-ID: <418804fd$0$32291$636a15ce@news.free.fr>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!news.glorb.com!proxad.net!infeed-1.proxad.net!news15-e.free.fr!not-for-mail
References: <41852848$0$16312$626a14ce@news.free.fr> <41852ab7$0$30713$ba620e4c@news.skynet.be> <41852cd7$0$16311$626a14ce@news.free.fr> <m2654prfmi.fsf@thomas.gabi-soft.fr> <4186b96f$0$17748$626a14ce@news.free.fr>

Show Full Headers
Complete Article Headers
X-Google-Thread: f9822,d8ed014b701cb916
X-Google-Thread: 102e15,dc437c1e54a73906
X-Google-Attributes: gidf9822,gid102e15,public
X-Google-Language: FRENCH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!news.glorb.com!proxad.net!infeed-1.proxad.net!news15-e.free.fr!not-for-mail
Date: Tue, 02 Nov 2004 23:15:28 +0100
From: bruno modulix <onurb@xiludom.gro>
Organization: modulix
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040115
X-Accept-Language: fr, en
MIME-Version: 1.0
Newsgroups: fr.comp.lang.c,fr.comp.developpement
Followup-To: fr.comp.developpement
Subject: Re: [HS]Base de donnée en C
References: <41852848$0$16312$626a14ce@news.free.fr> <41852ab7$0$30713$ba620e4c@news.skynet.be> <41852cd7$0$16311$626a14ce@news.free.fr> <m2654prfmi.fsf@thomas.gabi-soft.fr> <4186b96f$0$17748$626a14ce@news.free.fr>
In-Reply-To: <4186b96f$0$17748$626a14ce@news.free.fr>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 55
Message-ID: <418804fd$0$32291$636a15ce@news.free.fr>
NNTP-Posting-Date: 02 Nov 2004 23:06:54 MET
NNTP-Posting-Host: 82.64.92.14
X-Trace: 1099433214 news15-e.free.fr 32291 82.64.92.14:1078
X-Complaints-To: abuse@proxad.net