A válasz nem egyértelmű, hiszen nem célom leírni azt a néhány, különböző célú és adattartalmú rendszert, amit eddig csináltam.
Tehát: A fájlok tárolása igen, diszken, de optimalizált méretű konténerekben.
Az indexek tárolása változhat, mert egy tárolót az adatmennyiség, a hozzáférések száma és gyakorisága jellemez. (Ezt nem én mondom, hanem egy japán szakember, aki egy elemzés alapján 1987-ben extrapolálta a jövő tárolóit is. Szerintem 50 vagy 100 év múlva is helytállóak lesznek az akkori megállapításai.)
Tehát: Az indexek tárolása, ha csak ritkán kell egy-egy fájlhoz hozzáférni, akkor elegendő fájlban. Ha gyakori, vagy nagymennyiségű hozzáférés az igény, akkor memóriába lehet tölteni. A felhasználó egyik esetben sem fog várakozni.
Mivel ez egy 11 éve működő, elég extrém terhelésnek kitett rendszeren fut, nincs side effect sem. Tehát lényegtelen a rendelkezésreálló memória mennyisége, és a futó processzek száma is. Szóval ez egy szerver és nem egy laptop, ahol van 32GB az ls eredményének tárolására. ;) Persze ez is volt a cél.
Az egyik konkrét felhasználás az, amikor a fejlesztők 140 szerver tizenvalahány logja közül kiválaszt egyet, meg egy intervallumot az elmúlt 90 napban. Kattint és megjelenik. A logok néhányszor 10B - max. 128MB méretű fájlokban érkeznek a backupba. (Na, azért az utóbbi méret csak akkor igaz, ha valami baleset volt.) Ennek az előszedése nem kritikus, mert jóval rövidebb, mint amennyi idő alatt a kattintás beér a szerverre. Ha több száz fejlesztő dolgozna egyszerre, akkor az indexeket be kellene tölteni.