Hello, I would like to know if it is possible to scale an application written with Aida/Web. With Ruby On Rails, several Mongrel server are load balanced with Apache. I would like to know if it is possible to do something siimilar, but it doesn't seem to be possible because a lot of objects are stored into the image (urls, users and groups, etc)... Is there a solution to this problem (without using Gemstone of course)? I ask this because I don't want to use a framework that doesn't scale... Any help is welcome. Sebastien _________________________________________________________________ Téléphonez gratuitement à tous vos proches avec Windows Live Messenger ! Téléchargez-le maintenant ! http://www.windowslive.fr/messenger/1.asp _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
Salut Sebastien, welcome to the list!
sop soptwo wrote: > I would like to know if it is possible to scale an application written with Aida/Web. > With Ruby On Rails, several Mongrel server are load balanced with Apache. Yes, you can scale similary, with many images running behind a load balancer like Apache. Proven in practice! Mogrel is in our case called Swazoo web server and is part of Aida by default. What you need is to configure load balancer for session affinity, so that each session will always run on the same image. Also, Aida is capable to run thousands of sessions, at a rate up to 35 requests/s, per one image! See http://www.aidaweb.si/aidaweb-benchmarks.html, also http://www.swazoo.org/benchmarks/swazoo-vs-apache.html > I would like to know if it is possible to do something siimilar, but it doesn't seem to be possible > because a lot of objects are stored into the image (urls, users and groups, etc)... All this can be put in some database. Contrary to RoR Aida doesn't handle RDB persistence by default and it leaves this duty to the domain model. Also you'll extend URLResolver (for urls) and WebSecurityManager (for users/groups) for such purpose. > Is there a solution to this problem (without using Gemstone of course)? Solution is somewhere in direction as stated above, but I agree, we should try to extend Aida with some ActiveRecord like framework so that handling relational databases in a scalable way would be there out of the box. Problem is that currently we lack expertise on the RDB field and I'd really hope we will find someone soon. > I ask this because I don't want to use a framework that doesn't scale... Don't worry, with appropriate design of domain model and it's persistence you can scale as much as you want! Best regards Janko -- Janko Mivšek AIDA/Web Smalltalk Web Application Server http://www.aidaweb.si _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
In reply to this post by sop soptwo
Hi,
I did some experiements some weeks ago to see how Scribo can scale with a Magma repository. The cool thing with Magma is that your objects work like if they were in your image. I put the Scribo repository, the UrlResolver, WebSecurityManager and WebIndex in a Magma repository. This repository was shared between 5 Squeak VMs. I used Apache for load balancing, and I wrote a small bash script to make sure that user sessions are always in the same vm, with a cookie. So, when a request came, the script checked for this cookie, and if it find it, redirect to the right VM. If not, use the load balancing, and then AIDA started a session, with a cookie for the next request. I can say that it worked great! According to httperf, this setup can handle 150 requests per second :) The script and Apache configuration was adapted from this one by Ramon Leon for Seaside: http://onsmalltalk.com/programming/smalltalk/seaside/scaling-seaside-more-advanced-load-balancing-and-publishing/ Cheers! Nico -- Nicolas Petton http://nico.bioskop.fr ___ ooooooo OOOOOOOOO |Smalltalk| OOOOOOOOO ooooooo \ / [|] -------------------------------- Ma clé PGP est disponible ici : http://nico.bioskop.fr/pgp-key.html _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida signature.asc (204 bytes) Download Attachment |
When I'll have time, I will write a detailed article on my blog about
this :) Nico Le jeudi 16 octobre 2008 à 13:15 +0200, nico a écrit : > Hi, > > I did some experiements some weeks ago to see how Scribo can scale with > a Magma repository. > > > The cool thing with Magma is that your objects work like if they were in > your image. > > I put the Scribo repository, the UrlResolver, WebSecurityManager and > WebIndex in a Magma repository. > > This repository was shared between 5 Squeak VMs. > > I used Apache for load balancing, and I wrote a small bash script to > make sure that user sessions are always in the same vm, with a cookie. > > So, when a request came, the script checked for this cookie, and if it > find it, redirect to the right VM. If not, use the load balancing, and > then AIDA started a session, with a cookie for the next request. > > I can say that it worked great! > > According to httperf, this setup can handle 150 requests per second :) > > The script and Apache configuration was adapted from this one by Ramon > Leon for Seaside: > http://onsmalltalk.com/programming/smalltalk/seaside/scaling-seaside-more-advanced-load-balancing-and-publishing/ > > Cheers! > > Nico > _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida signature.asc (204 bytes) Download Attachment |
Nico, this is really good reference for Aida scalability and it would be
nice if you publish also the code. Is your work part of ScriboPersistence effort? Maybe we can make an AidaMagmaPersistence package to store those basic Aida data like security settings, users/groups, urls ... Janko nico wrote: > When I'll have time, I will write a detailed article on my blog about > this :) > > Nico > > Le jeudi 16 octobre 2008 à 13:15 +0200, nico a écrit : >> Hi, >> >> I did some experiements some weeks ago to see how Scribo can scale with >> a Magma repository. >> >> >> The cool thing with Magma is that your objects work like if they were in >> your image. >> >> I put the Scribo repository, the UrlResolver, WebSecurityManager and >> WebIndex in a Magma repository. >> >> This repository was shared between 5 Squeak VMs. >> >> I used Apache for load balancing, and I wrote a small bash script to >> make sure that user sessions are always in the same vm, with a cookie. >> >> So, when a request came, the script checked for this cookie, and if it >> find it, redirect to the right VM. If not, use the load balancing, and >> then AIDA started a session, with a cookie for the next request. >> >> I can say that it worked great! >> >> According to httperf, this setup can handle 150 requests per second :) >> >> The script and Apache configuration was adapted from this one by Ramon >> Leon for Seaside: >> http://onsmalltalk.com/programming/smalltalk/seaside/scaling-seaside-more-advanced-load-balancing-and-publishing/ >> >> Cheers! >> >> Nico >> >> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Aida mailing list >> [hidden email] >> http://lists.aidaweb.si/mailman/listinfo/aida -- Janko Mivšek AIDA/Web Smalltalk Web Application Server http://www.aidaweb.si _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
Le vendredi 17 octobre 2008 à 10:04 +0200, Janko Mivšek a écrit :
> Nico, this is really good reference for Aida scalability and it would be > nice if you publish also the code. Hi Janko, Sure I can publish the code. I didn't keep it, because it was just really basic subclasses of UrlResolver etc that committed changes. It won't take much time to rewrite them. > Is your work part of > ScriboPersistence effort? No, it was part of "playing with Magma before working on the MagmaPersister" effort. > > Maybe we can make an AidaMagmaPersistence package to store those basic > Aida data like security settings, users/groups, urls ... Why not :) Nico -- Nicolas Petton http://nico.bioskop.fr ___ ooooooo OOOOOOOOO |Smalltalk| OOOOOOOOO ooooooo \ / [|] -------------------------------- Ma clé PGP est disponible ici : http://nico.bioskop.fr/pgp-key.html _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida signature.asc (204 bytes) Download Attachment |
In reply to this post by Janko Mivšek
Le vendredi 17 octobre 2008 à 10:04 +0200, Janko Mivšek a écrit :
> Nico, this is really good reference for Aida scalability and it would be > nice if you publish also the code. Is your work part of > ScriboPersistence effort? > > Maybe we can make an AidaMagmaPersistence package to store those basic > Aida data like security settings, users/groups, urls ... I also think that it would be nice to move the ScriboPersistence package to AidaPersistence to store all objects, and just extend the package in Scribo. Masashi, what do you think? Cheers! Nico -- Nicolas Petton http://nico.bioskop.fr ___ ooooooo OOOOOOOOO |Smalltalk| OOOOOOOOO ooooooo \ / [|] -------------------------------- Ma clé PGP est disponible ici : http://nico.bioskop.fr/pgp-key.html _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida signature.asc (204 bytes) Download Attachment |
Hi Nico,
2008/10/17 nico <[hidden email]>: > Le vendredi 17 octobre 2008 à 10:04 +0200, Janko Mivšek a écrit : >> Nico, this is really good reference for Aida scalability and it would be >> nice if you publish also the code. Is your work part of >> ScriboPersistence effort? >> >> Maybe we can make an AidaMagmaPersistence package to store those basic >> Aida data like security settings, users/groups, urls ... > > I also think that it would be nice to move the ScriboPersistence package > to AidaPersistence to store all objects, and just extend the package in > Scribo. > > > Masashi, what do you think? I prefer that AIDA has its own simple persistence support. ScriboPersistence is basically designed for Document objects, so it would need some efforts for supporting more generic objects. I think simple XML format is preferable for storing AIDASite settings, SecurityManager accounts, etc. XML is portable among platforms and editable by normal site-administrators. Probably I can add some SIXX methods to AIDASite, WebUser, etc for simple persistence. After that, let's reconsider if we can integrate it with ScriboPersistence. Cheers, -- [:masashi | ^umezawa] _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
Free forum by Nabble | Edit this page |