Alapelv: Consumer-producer pattern. Vannak különböző feladatokhoz
(párhuzamosítás, duplumszűrés, indexelés) rendelt dolgozók, akik
időnként abbahagyják a cigizést, elvesznek a bal kezüknél levő kupacból
valahány dolgot, feldolgozzák, és átrakják a jobb kezüknél levő
kupacba. Elvileg teljesen leszarják, hogy más témák specialistái közben
mit csinálnak, és általában azt is, hogy van-e olyan kollega, aki
ugyanabból a kupacból vesz el, mint ők.
- upload: felhasználó interakció hatására lerak egy upload-ot. Akárhány
futhat belőle egyszerre.
- harness: egy upload-ot vesz el, és egy doc-ot és sok bisen-t rak le.
Akárhány futhat belőle egyszerre.
- duplumszűrő: elvesz valahány duplumszűretlen bimondatot (tipikusan az
összeset), és átrakja őket a duplumszűrtek közé. Nem szereti, ha több
fut belőle egyszerre.
- indexelő: elvesz valahány bimondatot, és lokális indexet épít
belőlük. (Eddig akárhány futhatna belőle.) Aztán mergel a központi
indexbe. (Na ebből meg tudtommal csak egy.)
- szavazó: felhasználó interakció hatására módosít egy bimondatot, majd
átteszi az indexeltekből az újraindexelendőek közé.
- moderátor: felhasználó interakció hatására áttesz egy duplumszűrt
jóváhagyatlan bimondatot az indexelendők közé. (Tervezett funkcionalitás.)
Eddig tartott az ideális architektúra leírása. Mi hiányzik ehhez? Nem
annyira sok:
- Harnessen egy lényegtelen változtatás kell, hogy tudjon egyszerre kettő
futni belőle.
- A duplumszűrő egybe van csomagolva a harness-szel. Leválasztandó, mert
emiatt a csomagjuk is megörökli a duplumszűrőnek azt a korlátját, hogy
csak egy futhat belőle.
- A duplumszűrő egy gagyi de szükséges optimalizálás miatt jelenleg nem
tolerálja, ha újabb bimondatok érkeznek a harnesstől azalatt, amíg ő
dolgozik.
- A harness és duplumszűrő feleslegesen összecsomagolt kötegére egy
magasabb architekturális szinten még rá van barkácsolva az indexelő is:
((harness duplumfilter) indexer). Na ez már végképp nem nagy ötlet, nincs
is más oka, csak hogy így tudtuk leggyorsabban kipróbálni.
- Ki kell találni, hogy az egyes dolgozók milyen gyakran, és mekkora
felhalmozódott munkamennyiség esetén aktiválják magukat. Nem triviális,
mert a legtöbb munkás sokkal hatékonyabban dolgozik, ha kevés nagyobb
köteget kap, mint ha sok kicsit.
- Alkalmas a jelenlegi ütemező ennek a menedzselésére, vagy egy komolyabb
kell?
- Hiányzik továbbá maga a rendszergazdai része a dolognak, hogy az
ütemező más gépeknek feladatokat tudjon kiosztani. Ez trivi, minden gép
ugyanazt az adatbázist és fájlrendszert látja.
Original issue reported on code.google.com by Varga.Da...@gmail.com on 10 Apr 2011 at 8:36
Original issue reported on code.google.com by
Varga.Da...@gmail.com
on 10 Apr 2011 at 8:36