Article View: pl.comp.programming
Article #217063Re: Integracja bibliotek event-based
From: Mateusz Viste
Date: Thu, 11 Jun 2020 19:58
Date: Thu, 11 Jun 2020 19:58
61 lines
3747 bytes
3747 bytes
2020-06-11 o 11:00 -0700, Maciej Sobczak napisał: > > Trzymajmy się założeń: była mowa o bibliotece "do http", innej "do > > tweetera" i trzeciej "baza danych". > > Nie. Była mowa o integracji kilku bibliotek event-based. > Przykłady dot. HTTP, bazy danych i Twittera to były *przykłady* do > zobrazowania problemu a nie konkretne zadania do rozwiązania. No widzisz, ja nie zajmuję się akademickimi rozważaniami, staram się rozwiązywać wyłącznie praktyczne problemy. Było trafniejszy przykład dać. > Nie. W szczególności biblioteka do baz danych automatycznie dobierze > metodę komunikacji zależnie od tego, gdzie jest baza. W > szczególności, jeśli baza jest na tym samym komputerze Unix domain? Też socket. > to istnieją sprawniejsze metody komunikacji, niż sockety. "sprawniejsze" w tym kontekście jest niezwykle śmieszne. Nie słyszałem jeszcze o tym, by komukolwiek udało się odciążyć serwer bazodanowy poprzez zmianę kanału komunikacji na "sprawniejszy" (pomijam ew. głupoty jak silne ssl po localhost). To po prostu nie ma żadnego znaczenia. No ale rozumiem, że znów chodzi o to, że oczekiwałeś złotego rozwiązania na ogólny problem, a ja tu włażę w kaloszach i saperką. Idealista. > Pomijając drobny fakt, że select() nie nadaje się do obsługi tysięcy > socketów Użyj poll(). Względnie epoll(). > Co więcej, jest kompletnie bez sensu, żebyś duplikował ciężką pracę, > którą biblioteka i tak robi w środku. To zależy od konkretnego przypadku. Ciężka praca polegająca na otwarciu połączenia żeby sprawdzić tweetera nie jest tak znów ciężka. Przy innych rzeczach może być inaczej. > Doszedłeś w ten sposób do wniosku, że do obsługi *kilku* bibliotek > event-based potrzebne są wątki. Albo wyjdą z biblioteki albo do niej > wejdą. Ale będą potrzebne. Przy założeniu, że chcesz quasi-natychmiastowy czas reakcji, że biblioteka nie udostępnia socketa(ów), że nie pracujesz na żadnych przerwaniach sprzętowych oraz że nie chcesz busy loop z opóźnieniem (lub bez)... to tak. Wszystko zależy od założeń projektowych. > tego stanu nie da się uwspólnić w jednym wątku, bez ciężkich > kompromisów typu kręcenie się w pętli z odpytywaniem (nawet z jakimś > mniej lub bardziej przemyślanym opóźnieniem). "ciężki kompromis"? Bez przesady. Tak działał m.in. Win 3.x. I w praktyce bardzo fajnie mu wychodziło. Kwestia doboru timingu do akceptowalnego poziomu latencji oraz możliwości buforowych tego, co biblioteki mają obsłużyć. A jeśli ma być nowocześnie i szybko to wątki. No ale ty chcesz uniwersalny lek na zło całego świata. :) Mateusz
Technical Details
Message-ID:
<20200611215852.33a1c421@mateusz>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin2!goblin.stu.neva.ru!aioe.org!.POSTED.nyPK7k8oeDafdNpooDsxZQ.user.gioia.aioe.org!not-for-mailReferences:
<5d642286-413d-47db-91b0-c689bbe167f4o@googlegroups.com> <20200609094640.04ee0ae2@mateusz> <aa97820e-825e-4efe-b403-2c1f496dc7ffo@googlegroups.com> <20200610105625.30b3dad0@mateusz> <e642682f-3296-4377-85b1-4c7dee0359b4o@googlegroups.com> <20200611103732.69e48f11@mateusz> <9386ac2d-2d1d-46db-8f52-250c1511dfebo@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin2!goblin.stu.neva.ru!aioe.org!.POSTED.nyPK7k8oeDafdNpooDsxZQ.user.gioia.aioe.org!not-for-mail From: Mateusz Viste <mateusz@xyz.invalid> Newsgroups: pl.comp.programming Subject: Re: Integracja bibliotek event-based Date: Thu, 11 Jun 2020 21:58:52 +0200 Organization: . . . Lines: 86 Message-ID: <20200611215852.33a1c421@mateusz> References: <5d642286-413d-47db-91b0-c689bbe167f4o@googlegroups.com> <20200609094640.04ee0ae2@mateusz> <aa97820e-825e-4efe-b403-2c1f496dc7ffo@googlegroups.com> <20200610105625.30b3dad0@mateusz> <e642682f-3296-4377-85b1-4c7dee0359b4o@googlegroups.com> <20200611103732.69e48f11@mateusz> <9386ac2d-2d1d-46db-8f52-250c1511dfebo@googlegroups.com> NNTP-Posting-Host: nyPK7k8oeDafdNpooDsxZQ.user.gioia.aioe.org Mime-Version: 1.0 X-Complaints-To: abuse@aioe.org X-Notice: Filtered by postfilter v. 0.9.2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit