Newsgroup: it.comp.os.linux.development
Titolo: Numero di file in una directory

E' possibile su ext2 immagazzinare milioni di file in una sola
directory in maniera efficiente?
Mi interessano sia le operazioni di creazione e cancellazione, sia
soprattutto quelle di accesso.
Se non e' possibile, qual'e' il massimo numero consigliabile?
In alternativa mi consigliate di passare ad un altro file-system
(reiserfs, xfs, jfs, etc.)?
Grazie,
-- 
Diego    | Per le repliche elimina dal mio indirizzo le 
Dainese  | `x' e inverti le due parole intorno alla `@'

(reiserfs, xfs, jfs, etc.)?
Veramente ti consiglio di modificare il tuo programma in modo che
utilizzi una struttura ad albero tipo .../f/i/l/e/file.
-- 
ciao, | [Per rispondere togli "toglimi" dal mio indirizzo.]
Marco | * The Internet is full. Go away.  -- Joel Furr *
      | (Ri)scoprire fidonet: 
http://bbs.mi.linux.it

 (reiserfs, xfs, jfs, etc.)?
reiserfs (sto aspettando il porting ai 2.3.x per metterci su almeno
/var/). L'ho provato con i 2.2.x e le prestazioni sono molto buone
(ho fatto qualche test con directory con 15-20mila file e non
ho visto un degrado eccessivo...)
-- 
ciao, Roberto
:wq!

 (reiserfs, xfs, jfs, etc.)?
da quello che so io ext2 salva i dati dei file in una lista, reiserfs in
un albero ennario riducendo la complessità temporale da O(n) a O(log n),
quindi penso che per te sia meglio.
-- 
Non c'è più forza nella normalità: c'è solo monotonia.

 
Avevo gia' pensato ad un sistema di partizionamento simile
(utilizzando pero' una funzione hash per distribuire in maniera equa i
file).
Certo pero' che tenderei a preferire soluzioni piu' semplici (->
sarebbe stato bello che il file-system facesse questo in maniera
trasparente).
Grazie (anche a Roberto) per la risposta, ciao


 :wq!
Ciao,
-- 
Diego    | Per le repliche elimina dal mio indirizzo le 
Dainese  | `x' e inverti le due parole intorno alla `@'
C-X C-C ;-)

molto nel frattempo, gli algoritmi sono sostanzialmente gli stessi). 
C'e` gia` l'infrastruttura per usare btree ma non ho capito quanto sara`
aggiunto il codice. Di sicuro post-2.4.


 nell'accedere ad un file.
Non so se ne esitano di altri per linux, ma affs, il filesystem
compatibile con quello di amiga, gestisce l'allocazione dei file, ed il
relativo accesso, con una algoritmo HASH. Non so se questo comporti
maggior velocità o meno rispetto ad un NTree o un BTree, ma è di sicuro
più veloce di una lista.
Saluti,
Fabio Alemagna

 utilizzi una struttura ad albero tipo .../f/i/l/e/file.
Oppure, se vuoi proprio usare milioni di files in una dir., vxfs (Veritas - 
a pagamento) dovrebbe andare bene. Fra quelli free, ReiserFS dovrebbe
essere il migliore.
-- 
  /Kinkie
Se sulla scatola c'e` scritto "Per windows 95 e superiori", dovrebbe
funzionare sotto Linux, vero?

 sarebbe inaccettabile...
personalmente non ho perso un singolo byte (e ho pure provato il
funzionamento del journal, spegnendo di botto la macchina...); stando
alle parole di H. Reiser nelle versioni recenti non ci sono problemi di
stabilità.
-- 
ciao, Roberto
:wq!

 
Teoricamente un hash ha tempo di accesso O(1) nel caso migliore, ma
O(N) nel caso peggiore; tutto dipende dalla funzione hash, dalla
dimensione della tabella e dai dati in input.
Invece un algoritmo basato su BTree di solito garantisce O(log N)
anche nel caso peggiore; credo che per milioni di file sia preferibile
(ma potrei sbagliarmi, non sono esperto di algoritmi).
