web: sync vs. async
Ciao, un cliente mi ha chiesto di aiutare a capire come rendere più veloce una applicazione web che raccoglie dati da molti utenti differenti in contemporanea (qualche centinaio) e si ingolfa in particolari momenti del mese di maggior accesso. Attualmente usano Tornado [1], un incrocio fra un server web ed un piccolo framework (che tramite un decoratore permette di rendere una funzione asincrona). Non ho alcuna esperienza di Tornado, qualche esperienza con twisted e qualche dubbio sul fatto che quel particolare problema abbia grandi vantaggi dall'approccio asincrono. L'applicazione lato client usa intensamente ajax e molte chiamate al server che fanno pochi conti ed una manciata di select semplici o di piccole join. La macchina ha 4 processori e 4 GB di RAM (principalmente libera). Ogni chiamata dallo stesso client cambia dati nella sessione che devono quindi essere sincronizzati fra una chiamata e l'altra. Mi pare di capire che non tutte le applicazioni beneficiano del fatto di funzionare in modalità asincrona: qui non esiste tempo di attesa significativo di dati dalla rete e pare poco (forse migliorabile in ogni caso) dal database. Avete qualche suggerimento? Qualche opinione (o link utile) sulla opportunità di usare un server così rispetto ad una configurazione classica apache + mod_wsgi? Chiaramente l'obiettivo è di distribuire il carico di lavoro su tutti i processori e successivamente su più macchine. sandro *:-) [1] http://www.tornadoweb.org/ _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python