reklama

Uváznutí v Aktor systému

BoneFlute

  • *****
  • 1 285
    • Zobrazit profil
Re:Uváznutí v Aktor systému
« Odpověď #15 kdy: 16. 10. 2019, 20:22:20 »
No, nejprve asi musíš definovat uváznutí. Jak poznáš, že nekonečná sekvence zpráv mezi aktory není korektní chování? Vždyť na tom, že si aktory posílají zprávy tam a zpátky není nic neobvyklého. Navíc právě díky tomu mutable stavu uvnitř nikdy nevíš, že je ta série zpráv skutečně nekonečná, můžeš mít uvnitř nějaký counter, který po tisíci iteracích přestane ok posílat, a zas to může být očekávané chování. Takhle asi narazíš buď na vágní definici uváznutí, nebo na Halting problem, jak zmiňoval někdo výše.

No, momentálně jsem ve stavu kdy zjišťuju co se s tím dá dělat. Mnohé věci mi jsou jasné, mnohé ne.

Tak možná by šlo, v případě deterministické funkce tu chybu odvodit podle toho vzoru víše. U nedeterministické funkce jsem samozřejmě v háji.

Také jsem uvažoval, že bych to prostě jen výce vyhranil, aby to nebylo snadné, udělat cyklus. Třeba potvrzenka k tomu svádí. Takže udělat speciální typ zprávy, na kterou se neodpovídá.

A tak.

reklama


Re:Uváznutí v Aktor systému
« Odpověď #16 kdy: 17. 10. 2019, 09:49:40 »
Tak možná by šlo, v případě deterministické funkce tu chybu odvodit podle toho vzoru víše. U nedeterministické funkce jsem samozřejmě v háji.
Determinismus toho moc neřeší. Ty actory můžou mít celkem složitý vnitřní stav. I pseudonáhodné generátory jsou deterministické a vzory se tam hledají dost blbě.

Periodicky se opakující vzor může být naprosto korektní chování. Představ si třeba komunikaci s nějakým senzorem.
Citace
Také jsem uvažoval, že bych to prostě jen výce vyhranil, aby to nebylo snadné, udělat cyklus. Třeba potvrzenka k tomu svádí. Takže udělat speciální typ zprávy, na kterou se neodpovídá.
Jo, pokud bude hlídač vědět, co tam má lítat, tak už se dá hlídat víc. Ale taky se to začíná blížít unit testům, které tu už pár lidí doporučovalo.

BoneFlute

  • *****
  • 1 285
    • Zobrazit profil
Re:Uváznutí v Aktor systému
« Odpověď #17 kdy: 17. 10. 2019, 14:47:46 »
Ale taky se to začíná blížít unit testům, které tu už pár lidí doporučovalo.

Ty unittesty byla evidentně rada z nepochopení. Tu jsem vyškrtl.

Re:Uváznutí v Aktor systému
« Odpověď #18 kdy: 17. 10. 2019, 17:40:54 »
Ale taky se to začíná blížít unit testům, které tu už pár lidí doporučovalo.

Ty unittesty byla evidentně rada z nepochopení. Tu jsem vyškrtl.
Možná by stálo za to rozepsat důvody, proč tady unittesty nepomůžou. Mohlo by to tu diskuzi trochu posunout.

Osobně nevidím nějaký zásadní rozdíl mezi specializovaným hlídačem nějakého protokolu (musí být specializovaný, protože obecně tam může lítat opravdu cokoliv) a specializovaným testem nějakého rozhraní. Oboje kontroluje, jestli ta komunikace odpovídá nějaké předloze, jen to kontrolují jindy.

Nebo jsou ty aktory nějaké zprasené produkty třetí strany bez podpory, zdrojáků a naděje?

BoneFlute

  • *****
  • 1 285
    • Zobrazit profil
Re:Uváznutí v Aktor systému
« Odpověď #19 kdy: 17. 10. 2019, 18:02:46 »
Ale taky se to začíná blížít unit testům, které tu už pár lidí doporučovalo.

Ty unittesty byla evidentně rada z nepochopení. Tu jsem vyškrtl.
Možná by stálo za to rozepsat důvody, proč tady unittesty nepomůžou. Mohlo by to tu diskuzi trochu posunout.

Osobně nevidím nějaký zásadní rozdíl mezi specializovaným hlídačem nějakého protokolu (musí být specializovaný, protože obecně tam může lítat opravdu cokoliv) a specializovaným testem nějakého rozhraní. Oboje kontroluje, jestli ta komunikace odpovídá nějaké předloze, jen to kontrolují jindy.
Jen jsem se chtěl vyhnout uváznutí v cargo-cultu.

Odhlednuto od toho prakticky souhlasím. Teď řeším jak na to. Co a jak můžu zajistit. Jak mohu definovat protokol. Nebo zda validovat vlastní aktor. Co ještě dělat, a co už se nevyplatí.

Zatím uvažuju o tom, že připravím API tak, abych vývojáři dosažení uváznutí co nejvíc zkomplikoval. I zde se mohu ptát, jak.

Nebo jsou ty aktory nějaké zprasené produkty třetí strany bez podpory, zdrojáků a naděje?
Naopak. Jsem v okamžiku návrhu. Všechnu je zelené a krásné. Ale ty aktory může (bude moct) napsat kdokoliv.

reklama


Re:Uváznutí v Aktor systému
« Odpověď #20 kdy: 17. 10. 2019, 20:35:42 »
Naopak. Jsem v okamžiku návrhu. Všechnu je zelené a krásné. Ale ty aktory může (bude moct) napsat kdokoliv.

Hmm, a máš k tomu nějaké zadání? Třeba bychom se nad tím návrhem, vzory co omezí uváznutí atp. mohli zamyslet kolektivně..

Re:Uváznutí v Aktor systému
« Odpověď #21 kdy: 17. 10. 2019, 22:35:40 »
Naopak. Jsem v okamžiku návrhu. Všechnu je zelené a krásné. Ale ty aktory může (bude moct) napsat kdokoliv.

Hmm, a máš k tomu nějaké zadání? Třeba bychom se nad tím návrhem, vzory co omezí uváznutí atp. mohli zamyslet kolektivně..
Tak nějak. Zatím víme akorát to, že nějací nám neznámí programátoři budou psát nějaké blíže nespecifikované agenty. A ti agenti si budou mezi sebou posílat nějaká nám neznámá data. Jediné, co zatím víme, je že se to nebude testovat, páč to je kargokult.

Kdo ty agenty bude psát? Programátoři, poloprogramátoři, nebo cvičené opice? A v čem?
Co ti agenti budou dělat? Jaká konkrétní data si mezi sebou budou posílat?
Co ten komunikační protokol musí umět? Má být synchronní nebo asynchronní? Posílají si agenti zprávy přímo, nebo dávají obecné požadavky? Co latence a propustnost? Nestačí na to něco odladěného typu ZeroMQ?

BoneFlute

  • *****
  • 1 285
    • Zobrazit profil
Re:Uváznutí v Aktor systému
« Odpověď #22 kdy: 18. 10. 2019, 00:11:49 »
Jediné, co zatím víme, je že se to nebude testovat, páč to je kargokult.

Tímto přístupem se na to možná rovnou vykašli, ne?

uetoyo

  • ***
  • 133
    • Zobrazit profil
Re:Uváznutí v Aktor systému
« Odpověď #23 kdy: 18. 10. 2019, 00:14:52 »
To vypadá, že máš spíš jakýsi "filozofický" problém. Ono asi jasné zadání není nebo na něj vlastně ani aktory použít není třeba. Ale proč si to nekomplikovat že?

uetoyo

  • ***
  • 133
    • Zobrazit profil
Re:Uváznutí v Aktor systému
« Odpověď #24 kdy: 18. 10. 2019, 00:16:59 »
Citace
Tímto přístupem se na to možná rovnou vykašli, ne?

No to sis vlastně odpověděl ne?  ;)

BoneFlute

  • *****
  • 1 285
    • Zobrazit profil
Re:Uváznutí v Aktor systému
« Odpověď #25 kdy: 18. 10. 2019, 00:35:54 »
Naopak. Jsem v okamžiku návrhu. Všechnu je zelené a krásné. Ale ty aktory může (bude moct) napsat kdokoliv.

Hmm, a máš k tomu nějaké zadání? Třeba bychom se nad tím návrhem, vzory co omezí uváznutí atp. mohli zamyslet kolektivně..

Aktory jako služby, poskytující data i poskytující výpočty. Aktor jako klient se bude dotazovat jiných aktorů. Libovolný aktor může poslat dotaz libovolnému jinému. Zpráva vede přes prostředníka, který schraňuje zprávy, a pak je předává adresátům. Aktor dostane zprávu, podle ní vykoná svou úlohu - sám, nebo deleguje na jiného. Prostředník pošle zpět zprávu: zpráva uložena, zpráva vyzvednuta.

Zprávy coby komunikační protokol mám zatím bez pravidel. V dalším kroku bych rád nějaký formální jazyk typu KQML.

Tedy jak vidno, není to nic světoborného. Taky tam v tom zadání nejsou žádná zvláštní omezení. Jakékoliv postřehy vítám.

Pointa je, že jsem teda napsal první prototyp, a hned jsem si ho zacyklil. Tedy nejde mi o to, že by to muselo být vysloveně neprůstřelné jen by to snad nemuselo být tak snadné to rozbít.

gill

  • ***
  • 232
    • Zobrazit profil
    • E-mail
Re:Uváznutí v Aktor systému
« Odpověď #26 kdy: 18. 10. 2019, 09:01:47 »
Mě by také zajímalo, co tím řešíš, dvousměrná komunikace je v asynchronním programování často anti-pattern. Jak už tu někdo napsal, konečnost výpočtu obecně zjistit nelze. Ale nekonečná smyčka je u většiny reálných programů to co chceš, z toho příkladu není jasné, kde je chyba. Mezi posíláním zpráv to klidně může vykonávat něco užitečného. Bez konkrétního zadání je diskuze zbytečná.

Re:Uváznutí v Aktor systému
« Odpověď #27 kdy: 18. 10. 2019, 09:02:48 »
Aktory jako služby, poskytující data i poskytující výpočty.

Abychom zkusili trochu utéct XY problému, co to má vlastně dohromady dělat? K čemu ta aplikace slouží? Jaké jsou požadavky na rozšiřitelnost, distribuovanost, odolnost proti výpadkům sítě, konzistenci, živý upgrade atp.? To jsou asi otázky relevantní pro aplikaci, pro kterou se někdo rozhodne použít aktory..

gill

  • ***
  • 232
    • Zobrazit profil
    • E-mail
Re:Uváznutí v Aktor systému
« Odpověď #28 kdy: 18. 10. 2019, 09:09:57 »

jak z toho obecného popisu máme zjistit, proč dochází k zacyklení? nechceš ukázat konkrétní kód?

Re:Uváznutí v Aktor systému
« Odpověď #29 kdy: 18. 10. 2019, 09:18:27 »
Jediné, co zatím víme, je že se to nebude testovat, páč to je kargokult.
Tímto přístupem se na to možná rovnou vykašli, ne?
:o To byla narážka na tvůj příspěvek :
Jen jsem se chtěl vyhnout uváznutí v cargo-cultu.
Jo a
Aktory jako služby, poskytující data i poskytující výpočty. Aktor jako klient se bude dotazovat jiných aktorů. Libovolný aktor může poslat dotaz libovolnému jinému. Zpráva vede přes prostředníka, který schraňuje zprávy, a pak je předává adresátům. Aktor dostane zprávu, podle ní vykoná svou úlohu - sám, nebo deleguje na jiného. Prostředník pošle zpět zprávu: zpráva uložena, zpráva vyzvednuta.

Zprávy coby komunikační protokol mám zatím bez pravidel. V dalším kroku bych rád nějaký formální jazyk typu KQML.

Tedy jak vidno, není to nic světoborného. Taky tam v tom zadání nejsou žádná zvláštní omezení. Jakékoliv postřehy vítám.

Pointa je, že jsem teda napsal první prototyp, a hned jsem si ho zacyklil. Tedy nejde mi o to, že by to muselo být vysloveně neprůstřelné jen by to snad nemuselo být tak snadné to rozbít.
není zadání. Tohle je teoretický popis úplně obecného actor systému. Pokud ty actory můžou dělat a posílat cokoliv, tak nemáš co hlídat. Jakékoliv chování může být správně.

 

reklama