Cau, tohle je hlavne na test jestli by to bylo uzitecne.
V attachementu je ten dokument, ktery jsem ti posilal
mailem, podivej se na to a zkus mi tady odpovedet
(15:49:44) Ivan Zderadicka: Tak email dosel uz v pohode
-koukal jsem na to -
urcite souhlasim s tim ze to patri do dispatcheru - bude to
observer pattern - dispather je observer jednotlivych threadu.
nerozumim trochu tomu vypoctu splitu
ale nebylo by lepsi delat update stavu po kazdym downloadu?
takhle se musi cekat na konec - kdyz mas velky step o to se
ti prodlouzi moznost detekovat split. Vem si ze pobezi
soubezne pet threadu se step 100 - v prnim se najde posledni
parcela - ale musi se cekat az dobehnou vsechny tj - 5*100
-1= 499 pokusu.
(16:03:08) Petr Zderadicka: Pockej, to nechapu. Maxerror je
100. Kdyz bude step vetsi nez split, tak thread skonci na
prekroceni maxerroru a zapise ho do tabulky (to znamena
zapise maxerror). Dispatcher zaregistruje split = maxerror a
ukonci zpracovani.
Pokud bude step mensi nez split, treba 50, tak step (zacina
na 100) najde posledni parcelu na 120, tak po skonceni
zapise svuj split 30, pokud thread, ktery zpracovava step od
150 nic nenajde, napise svuj split 50 (dispatcher tedy vidi
80), thread ktery zpracovava od 200 taky nic nenajde, posle
50. Dispatcher ma tim padem 130 a ukonci to. Pokud by treba
thread od 200 neco nasel, tak se dispatcher nastavi na split
tohoto threadu a ceka dal.
(16:19:25) Ivan Zderadicka: Ale ty thready bezi paraelne -
takze nez skonci budou natahovat dalsi a dalsi protoze
dispatcher nebude aktualizovany.
(16:22:41) Petr Zderadicka: Oni nebezi prece uplne
paralelne, kazdy nacteni trva jinak dlouho. Dispatcher to
bude schopen zkontrolovat po kazdem skonceni threadu. Po
jeho kontrole a rozhodnuti uz zadny thread nezacne a thready
ktere bezi, tak dobehnou, to je ted taky.
(16:29:09) Ivan Zderadicka: No to je dost zjednodusujici ale
budiz, dal jsem tam taky moznost thready okamzite ukoncit
(ale pak by se muselo hlidat ze dobehli thready s nizzsima
cislama) - v budoucnu to bude potreba - pokud bude treba
aplikace musi okamzite skoncit a lepsi je to udelat
kontrolovane. Jestli jsem dobre vyrozumnel tak split se meri
na urovni workeru a pak se pouze updatuje do dispatheru.
Stale si myslim, ze prehlednejsi by bylo aby threan nahral
pouze jednu parcelu, ale to by bylo na delsi debatu.
(16:36:03) Petr Zderadicka: Jo, ale reportuje se pouze
posledni split, ktery thread ma, kdyz skonci. Okamzite to
ukoncit - to je ok, ale to bych oddelil od normalniho
zpracovani. Nejaky kill signal - to je ok tak aby vsechno
popadalo. To by melo jit tak, ze projedes pool a kazdymu
objektu tam nastavis nejakou promennou, ne?
(16:59:01) Ivan Zderadicka: Jo tak s tim splitem to chapu.
ten kill signal uz tam je (jediny problem nedoreseny je
pokud to je blocknuty na IO). Nejak se vyhybas otazce jedne
parcely thread ne :-) bezim dom vice zitra.
(16:59:48) Petr Zderadicka: Podle me by toho bylo moc na
sync, obvzlaste pri hodne threadech.
(09:17:01) Ivan Zderadicka: No nevim - podle me by se to
nepoznalo - vsecny sychronizovany operace jsou trivialni - v
porovnani s i/o ktery bezi ve threadu to nic neni. No ale
ale jak myslis, vidim ze te nepresvedcim.
(09:17:02) Petr Zderadicka <AUTO-REPLY> : I am currently
away from the computer.
(10:29:19) Petr Zderadicka: Presvedcis, napiseme testovaci
programy a zmerime je. Uvidime, jestli tam je nejaky
overhead nebo ne. Staci jen mirne upravit CommandData, aby
posilaly i subnumber a zjednodusit mirne klienta, vyhazet
ruzny loopy. To je prace na par hodin. Pak stahnem nejakou
evaluacku JMetteru nebo OptimizeIt a podivame se na to.
(10:32:34) Ivan Zderadicka: No tak az takhle vedecky -
nestacilo by jen dat step 1 a zkusit to parkrat pustit ( v
porovnani treba se step 100)?
(10:33:19) Petr Zderadicka: No to by klient ale delal
subnumbery, to bys musel nastavit subnumber na 1
(10:33:49) Ivan Zderadicka: No jo vlastne mas pravdu.
(10:33:51) Petr Zderadicka: Pak by tam ale bylo strasne malo
hitu.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Tak jsem to konecne snad dodelal, nove ukoncovani cuzaku
je postnute do CVS-ka, zmeny jsou popsane v nove verzi
dokumentu, ktera je postnuta, zmeny v CVS jsou
komentovany cislem tohohle requestu.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
koncepce zmeny
Logged In: YES
user_id=1137225
A tady se k tomu daji dopisovat komentare a pridavat dalsi
soubory.
Logged In: YES
user_id=603395
(15:49:44) Ivan Zderadicka: Tak email dosel uz v pohode
-koukal jsem na to -
urcite souhlasim s tim ze to patri do dispatcheru - bude to
observer pattern - dispather je observer jednotlivych threadu.
nerozumim trochu tomu vypoctu splitu
ale nebylo by lepsi delat update stavu po kazdym downloadu?
takhle se musi cekat na konec - kdyz mas velky step o to se
ti prodlouzi moznost detekovat split. Vem si ze pobezi
soubezne pet threadu se step 100 - v prnim se najde posledni
parcela - ale musi se cekat az dobehnou vsechny tj - 5*100
-1= 499 pokusu.
(16:03:08) Petr Zderadicka: Pockej, to nechapu. Maxerror je
100. Kdyz bude step vetsi nez split, tak thread skonci na
prekroceni maxerroru a zapise ho do tabulky (to znamena
zapise maxerror). Dispatcher zaregistruje split = maxerror a
ukonci zpracovani.
Pokud bude step mensi nez split, treba 50, tak step (zacina
na 100) najde posledni parcelu na 120, tak po skonceni
zapise svuj split 30, pokud thread, ktery zpracovava step od
150 nic nenajde, napise svuj split 50 (dispatcher tedy vidi
80), thread ktery zpracovava od 200 taky nic nenajde, posle
50. Dispatcher ma tim padem 130 a ukonci to. Pokud by treba
thread od 200 neco nasel, tak se dispatcher nastavi na split
tohoto threadu a ceka dal.
(16:19:25) Ivan Zderadicka: Ale ty thready bezi paraelne -
takze nez skonci budou natahovat dalsi a dalsi protoze
dispatcher nebude aktualizovany.
(16:22:41) Petr Zderadicka: Oni nebezi prece uplne
paralelne, kazdy nacteni trva jinak dlouho. Dispatcher to
bude schopen zkontrolovat po kazdem skonceni threadu. Po
jeho kontrole a rozhodnuti uz zadny thread nezacne a thready
ktere bezi, tak dobehnou, to je ted taky.
(16:29:09) Ivan Zderadicka: No to je dost zjednodusujici ale
budiz, dal jsem tam taky moznost thready okamzite ukoncit
(ale pak by se muselo hlidat ze dobehli thready s nizzsima
cislama) - v budoucnu to bude potreba - pokud bude treba
aplikace musi okamzite skoncit a lepsi je to udelat
kontrolovane. Jestli jsem dobre vyrozumnel tak split se meri
na urovni workeru a pak se pouze updatuje do dispatheru.
Stale si myslim, ze prehlednejsi by bylo aby threan nahral
pouze jednu parcelu, ale to by bylo na delsi debatu.
(16:36:03) Petr Zderadicka: Jo, ale reportuje se pouze
posledni split, ktery thread ma, kdyz skonci. Okamzite to
ukoncit - to je ok, ale to bych oddelil od normalniho
zpracovani. Nejaky kill signal - to je ok tak aby vsechno
popadalo. To by melo jit tak, ze projedes pool a kazdymu
objektu tam nastavis nejakou promennou, ne?
(16:59:01) Ivan Zderadicka: Jo tak s tim splitem to chapu.
ten kill signal uz tam je (jediny problem nedoreseny je
pokud to je blocknuty na IO). Nejak se vyhybas otazce jedne
parcely thread ne :-) bezim dom vice zitra.
(16:59:48) Petr Zderadicka: Podle me by toho bylo moc na
sync, obvzlaste pri hodne threadech.
(09:17:01) Ivan Zderadicka: No nevim - podle me by se to
nepoznalo - vsecny sychronizovany operace jsou trivialni - v
porovnani s i/o ktery bezi ve threadu to nic neni. No ale
ale jak myslis, vidim ze te nepresvedcim.
(09:17:02) Petr Zderadicka <AUTO-REPLY> : I am currently
away from the computer.
(10:29:19) Petr Zderadicka: Presvedcis, napiseme testovaci
programy a zmerime je. Uvidime, jestli tam je nejaky
overhead nebo ne. Staci jen mirne upravit CommandData, aby
posilaly i subnumber a zjednodusit mirne klienta, vyhazet
ruzny loopy. To je prace na par hodin. Pak stahnem nejakou
evaluacku JMetteru nebo OptimizeIt a podivame se na to.
(10:32:34) Ivan Zderadicka: No tak az takhle vedecky -
nestacilo by jen dat step 1 a zkusit to parkrat pustit ( v
porovnani treba se step 100)?
(10:33:19) Petr Zderadicka: No to by klient ale delal
subnumbery, to bys musel nastavit subnumber na 1
(10:33:49) Ivan Zderadicka: No jo vlastne mas pravdu.
(10:33:51) Petr Zderadicka: Pak by tam ale bylo strasne malo
hitu.
Logged In: YES
user_id=1137225
Tak jsem to konecne snad dodelal, nove ukoncovani cuzaku
je postnute do CVS-ka, zmeny jsou popsane v nove verzi
dokumentu, ktera je postnuta, zmeny v CVS jsou
komentovany cislem tohohle requestu.