Portál AbcLinuxu, 14. května 2025 05:46
Myslím, že je celkem jedno, jestli ten soubor má 300 MB nebo 3000 MB. Jestli je archivační, vůbec na tom nesejde, mazání bude zřídkavé a compacting se dá udělat celkem snadno. Na hledání může být index stejně jako k databázi - a měl by být! Mám pocit, že třeba Evolution si ho dělá, dokonce fulltextový.Aby mohl server pracovat s e-maily efektivně, musí si k mboxu nebo maildiru vytvořit metadata, která popisují jednotlivé části e-mailu (aby se nemusel pokaždé znovu parsovat) a zaindexovat. Pak se takové poštovní schránky chopí Evolution nebo Thunderbird, který je zaměřen hlavně na POP3 a IMAP používá jen tak "bokem", všechny e-maily (nebo aspoň většinu) si stáhne do offline cache a zaindexuje si je. Uživatel se samozřejmě ke své poštovní schránce nepřipojuje jen z jednoho počítače, ale putuje po celé síti. Takže, v lepším případě, má e-maily na specializovaném poštovním serveru, ale přistupuje k nim skrze kopii e-mailů na souborovém serveru. V horším případě (cestovní profily Windows) má e-maily na serveru, a kopii celé schránky i s indexy si při každém přihlášení stahuje po síti a při odhlášení odesílá zpět. Mně to teda připadá padlé nahlavu. Mimochodem, to ukládání e-mailů do mailboxů/maildirů jde proti koncepci Unixu, kdy každý program dělá jen jednu věc. Protože na hledání může být index stejně jako k databázi - a měl by být, a tak si poštovní server naimplementuje svou malou databázi…
Mimochodem, to ukládání e-mailů do mailboxů/maildirů jde proti koncepci Unixu, kdy každý program dělá jen jednu věc. Protože na hledání může být index stejně jako k databázi - a měl by být, a tak si poštovní server naimplementuje svou malou databázi…
Přesně tohle mě napadlo, když jsem si vybíral (a nevybral) emailovýho klientaopen(3rd)
, ale musí si načíst seznam všech souborů, seřadit je a najít třetí a n a ten pak dát open(file_name)
. Pro tu nejkritičtejší operaci (najít 3. prvek) by se sice strom FS dal použít, ale aplikace ho nemá k dispozici.
Jinak teda pokud je dnešní situace tak tristní
Tristní... Těžko říct. Častěji než bych byl rád narážím na problémy u věcí, kde bych čekal, že jsou dávno vyřešené (no možná že jsou, ale firmy na to mají patenty a není to open source ).
Zrovna to řeší kamarád, co vyvíjí über-programovací jazyk,
Mno až vystřízlivým z oslav po státnicích, tak se vrhnu na MBOX2SQL. A udělám nad tím pár testů. Na netu jsem to nikde nenašel, pokud někdo něco podobného zná, tak prosím, dejte sem link.
Perzistentní heap by byla docela sranda.
Tak to zcela určitě
"Jenže ResiserFS ten strom používá nejspíš pro hledání sektoru začátku souboru dle čísla inode" A není tohle nesmysl? Operace nalezení prvního sektoru podle inode je snad otázkou jednoho diskového fetche, alespoň v tradičním unixovém FS. Problémem je hledání čísla inode u velikých adresářů ve filesystémech, které adresář implementují jako prostý lineární vektor dvojic (název, inode).Měl jsem na mysli hledání souboru ve velkém adresáři, moc jsem to zjednodušil
Jestliže bude v adresáři třetí soubor mít název "0000003", aplikace ho otevře pod tímto názvem. Následně FS musí najít inode, což je u tradičního unixového FS obecně O(N) operace, pokud hledám náhodný soubor v adresáři s N soubory, ale pokud FS udržuje mapování z názvů na inody ve stromu (Reiser, tuším...), pak je to O(log N). Takže aplikace má ten strom k dipozici, poněvadž adresuje soubory podle názvů.Pokud bude mít uživatel ve složce 1000 e-mailů a rozhodne se třetí smazat, soubory 000004 až 001000 se přečíslují? Děkuji nechci
commit
pro ext3, ale nejspíš ne.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.