Je compte passer le backend de mon serveur NNTP en événementiel. Le
but est de rendre le tout plus rapide et plus modulaire. Le principe :
chaque action reçoit les messages à traiter comme fichier dans un
répertoire lui servant de file d'attente. Ces répertoires sont
surveillés par Linux::Inotify2. Une tâche regroupe un certain nombre
d'actions. À l'intérieur d'une même tâche, les actions s'envoient les
messages à traiter directement par l'API événementielle.
J'ai commencer à me pencher sur POE, mais je regrette que leurs
sessions n'aient pas de priorité. D'autre part j'ai lu sur le web des
critiques sur la lenteur de POE. J'ai alors décourvert qu'il existe sur
le CPAN toute une floppée de module événementiel (EV, Event,
Event::Lib, Stem...). Je n'ai absolument pas le temps de les tester
tous, de les benchmarker, etc... Je viens donc vous demander votre
avis. Lesquels avez-vous utilisés ? Quels ont été leurs défauts, leurs
avantages ?
--
Voter [parallélogramme] était permis,
mais seulement le dimanche, si je ne m'abuse.
*- Zelda Touque sur fr.rec.jeux.nomic -*
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jerome Quelin
Jogo wrote:
D'autre part j'ai lu sur le web des critiques sur la lenteur de POE.
tu commences à voir la lenteur de poe aux environs de 1000 messages / seconde. cela dépend bien sûr de ce que tes gestionnaires d'événements font, ainsi que de la puissance de la machine qui fait tourner le code.
donc pour ton cas (nntp), je ne pense pas que poe soit "trop lent".
J'ai alors décourvert qu'il existe sur le CPAN toute une floppée de module événementiel (EV, Event, Event::Lib, Stem...). Je n'ai absolument pas le temps de les tester tous, de les benchmarker, etc... Je viens donc vous demander votre avis. Lesquels avez-vous utilisés ? Quels ont été leurs défauts, leurs avantages ?
j'utilise poe pour certains choses, c'est assez sympa. bien sûr, cela demande de modifier la manière dont on code (prog événementielle), mais on s'y fait.
il y a bcp de composants poe haut niveau (cf poe::component::client::nntp dans ton cas). ajoute à cela que poe s'interface facilement avec des tas de toolkits (tk, gtk, wx, etc.), je te recommande définitivement poe.
j'ai fait une présentation sur poe aux fpw 2007, disponible sur : http://merlin.mongueurs.net/talks/intro_poe.pdf
voilà, à toi de voir bien sûr. jérôme --
Jogo wrote:
D'autre part j'ai lu sur le web des critiques sur la lenteur de POE.
tu commences à voir la lenteur de poe aux environs de 1000 messages /
seconde. cela dépend bien sûr de ce que tes gestionnaires d'événements font,
ainsi que de la puissance de la machine qui fait tourner le code.
donc pour ton cas (nntp), je ne pense pas que poe soit "trop lent".
J'ai alors décourvert qu'il existe sur le CPAN toute une floppée de module
événementiel (EV, Event, Event::Lib, Stem...). Je n'ai absolument pas le
temps de les tester tous, de les benchmarker, etc... Je viens donc vous
demander votre avis. Lesquels avez-vous utilisés ? Quels ont été leurs
défauts, leurs avantages ?
j'utilise poe pour certains choses, c'est assez sympa. bien sûr, cela
demande de modifier la manière dont on code (prog événementielle), mais on
s'y fait.
il y a bcp de composants poe haut niveau (cf poe::component::client::nntp
dans ton cas). ajoute à cela que poe s'interface facilement avec des tas de
toolkits (tk, gtk, wx, etc.), je te recommande définitivement poe.
j'ai fait une présentation sur poe aux fpw 2007, disponible sur :
http://merlin.mongueurs.net/talks/intro_poe.pdf
voilà, à toi de voir bien sûr.
jérôme
--
jquelin@gmail.com
D'autre part j'ai lu sur le web des critiques sur la lenteur de POE.
tu commences à voir la lenteur de poe aux environs de 1000 messages / seconde. cela dépend bien sûr de ce que tes gestionnaires d'événements font, ainsi que de la puissance de la machine qui fait tourner le code.
donc pour ton cas (nntp), je ne pense pas que poe soit "trop lent".
J'ai alors décourvert qu'il existe sur le CPAN toute une floppée de module événementiel (EV, Event, Event::Lib, Stem...). Je n'ai absolument pas le temps de les tester tous, de les benchmarker, etc... Je viens donc vous demander votre avis. Lesquels avez-vous utilisés ? Quels ont été leurs défauts, leurs avantages ?
j'utilise poe pour certains choses, c'est assez sympa. bien sûr, cela demande de modifier la manière dont on code (prog événementielle), mais on s'y fait.
il y a bcp de composants poe haut niveau (cf poe::component::client::nntp dans ton cas). ajoute à cela que poe s'interface facilement avec des tas de toolkits (tk, gtk, wx, etc.), je te recommande définitivement poe.
j'ai fait une présentation sur poe aux fpw 2007, disponible sur : http://merlin.mongueurs.net/talks/intro_poe.pdf
voilà, à toi de voir bien sûr. jérôme --
Jogo
>> D'autre part j'ai lu sur le web des critiques sur la lenteur de POE.
tu commences à voir la lenteur de poe aux environs de 1000 messages / seconde.
Je suis effectivement en dessous. Un même message va générer une vingtaine d'évènements, et on a rarement plus de 10 articles / seconde.
donc pour ton cas (nntp), je ne pense pas que poe soit "trop lent".
Certe, mais un de mes objectifs est tout de même d'accélérer la transmission d'un message (de pair à pair). C'est un critère souvent pris en compte pour un serveur Usenet (cf http://news.anthologeek.net/).
il y a bcp de composants poe haut niveau (cf poe::component::client::nntp dans ton cas).
Ce module n'implémente pas la RFC 4644. Je ne pense pas utiliser de composants d'aussi haut niveau.
Merci beaucoup,
-- C'est surtout particulièrement masochiste et contre-productif. Si le principe c'est que celui qui gueule le plus fort à raison, fufe va devenir un bourbier innomable que même le fme actuel c'est fr.comp.os.vms à côté. -- Éric Marillier dans fufe --
>> D'autre part j'ai lu sur le web des critiques sur la lenteur de POE.
tu commences à voir la lenteur de poe aux environs de 1000 messages /
seconde.
Je suis effectivement en dessous. Un même message va générer une
vingtaine d'évènements, et on a rarement plus de 10 articles / seconde.
donc pour ton cas (nntp), je ne pense pas que poe soit "trop lent".
Certe, mais un de mes objectifs est tout de même d'accélérer la
transmission d'un message (de pair à pair). C'est un critère souvent
pris en compte pour un serveur Usenet (cf http://news.anthologeek.net/).
il y a bcp de composants poe haut niveau (cf poe::component::client::nntp
dans ton cas).
Ce module n'implémente pas la RFC 4644. Je ne pense pas utiliser de
composants d'aussi haut niveau.
Merci beaucoup,
--
C'est surtout particulièrement masochiste et contre-productif. Si le
principe c'est que celui qui gueule le plus fort à raison, fufe va
devenir un bourbier innomable que même le fme actuel c'est
fr.comp.os.vms à côté.
-- Éric Marillier dans fufe --
>> D'autre part j'ai lu sur le web des critiques sur la lenteur de POE.
tu commences à voir la lenteur de poe aux environs de 1000 messages / seconde.
Je suis effectivement en dessous. Un même message va générer une vingtaine d'évènements, et on a rarement plus de 10 articles / seconde.
donc pour ton cas (nntp), je ne pense pas que poe soit "trop lent".
Certe, mais un de mes objectifs est tout de même d'accélérer la transmission d'un message (de pair à pair). C'est un critère souvent pris en compte pour un serveur Usenet (cf http://news.anthologeek.net/).
il y a bcp de composants poe haut niveau (cf poe::component::client::nntp dans ton cas).
Ce module n'implémente pas la RFC 4644. Je ne pense pas utiliser de composants d'aussi haut niveau.
Merci beaucoup,
-- C'est surtout particulièrement masochiste et contre-productif. Si le principe c'est que celui qui gueule le plus fort à raison, fufe va devenir un bourbier innomable que même le fme actuel c'est fr.comp.os.vms à côté. -- Éric Marillier dans fufe --
Jogo
Bonjour,
Je me répond à moi-même. Après un bon mois d'hésitations j'ai finalement opté pour EV et Coro. Les avantages principaux étant la possibilité d'avoir des priorités, et la simplicité de l'implémentation. Je peux ainsi par exemple facilement désynchroniser les appels à PostgreSQL.
Je vais même finalement étendre cette architecture au frontend. Grace à IO::Stream je peux non seulement avoir des connexions asynchrones, mais aussi y ajouter facilement un filtre SSL.
-- http://marion.matabio.net/
Bonjour,
Je me répond à moi-même. Après un bon mois d'hésitations j'ai
finalement opté pour EV et Coro. Les avantages principaux étant la
possibilité d'avoir des priorités, et la simplicité de
l'implémentation. Je peux ainsi par exemple facilement désynchroniser
les appels à PostgreSQL.
Je vais même finalement étendre cette architecture au frontend. Grace
à IO::Stream je peux non seulement avoir des connexions asynchrones,
mais aussi y ajouter facilement un filtre SSL.
Je me répond à moi-même. Après un bon mois d'hésitations j'ai finalement opté pour EV et Coro. Les avantages principaux étant la possibilité d'avoir des priorités, et la simplicité de l'implémentation. Je peux ainsi par exemple facilement désynchroniser les appels à PostgreSQL.
Je vais même finalement étendre cette architecture au frontend. Grace à IO::Stream je peux non seulement avoir des connexions asynchrones, mais aussi y ajouter facilement un filtre SSL.