[aida] 6.2 news: Image based persistency

Janko Mivšek janko.mivsek at eranova.si
Thu Feb 24 17:23:31 CET 2011

Hi Chris,

On 22. 02. 2011 17:10, Chris Muller wrote:
> You forgot to mention, there is also Magma to "escape" for really big
> projects.  BTW, does Aida run on GemStone?

Yep, just much older 5.4, we need to upgrade it. In next months I hope.

> I don't want to start a debate, but I think it's good to be
> conservative about advocacy for image-persistence.  IMO, it's fine for
> "small prototypes" (< 1GB model) where it's ok to lose data, but not
> "medium" ones (2 - 10GB) and not any project where it's not ok to lose
> data.  If the image is somehow corrupted and being saved in that state
> so it won't relaunch, you would not discover this until the _next_time
> you tried to restart your server, which could be months later!  Sure,
> that scenario is unlikely, but certainly possible, and it would be a
> total loss if it happened which, to me, is unacceptable.

First, there is a difference between VW and Squeak images and specially
VMs. While VW is rock solid, Squeak/Pharo is/was not and from here I see
the source of perception like yours.

I namely run my hosting business for 7 years now on image based
persistence, on VW image currently around 600MB in size. Without any
loss of data in whole 7 years!

With Eliot as VW VM designer now working on Squeak/Pharo VMs I'm sure we
will soon achieve similar stability and therefore suitability for
Squeak/Pharo image based persistency as well.

> What happens if the model grows faster than expected beyond memory
> capacity?  How do you get your app ported over to GemStone w/
> licensing, etc. and back up and running quickly?  How does one
> "upgrade their image" if the model is stuck in an old image?  Does the
> image save start to take longer and longer as the image grows?

Those if not all reasons goes int that 1% of special cases I wrote. At
least on VW I upgrade an image by "filling-out" all objects and file in
on the fresh one. This is called BOSS-out/in on VW, while on
Squeak/Pharo I still need to check the right way doing it.

> Magma is simple and fast enough that, if I ever had any qualms about
> any of the above issues, then I would just start with that in the
> first place, and be comforted in knowing I'm prepared for growth and
> cannot lose data.  No object-persistence mechanism for Squeak or Pharo
> comes close to Magma in terms of the _safety_ of the domain model.

I came from VW world and start with Gemstone back in 1998, while coming
to Squeak and heard about Magma about 4 years ago. This is one of
reasons why I don't know it much, the other is that Gemstone actually
provides near 100% transparency (you don't need to know any Gemstone
specifics) while on Magma you need to program the Magma presistency,
AFAIK. Which means that you became dependent on Magma, therefore your
code is not portable anymore. While on Gemstone because of so strongy
transparency it is. Magma is also working only on Squeak (Pharo?), while
Aida apps are working and directly transferable to 6 dialects now.

One big Magma advantage is open sourcelness of course and this is why I
warmly support your work now and in the future. And I'm looking forward
to support in Aida too, if someone will volunteer to add Magma support.

Best regards

>  - Chris
> 2011/2/22 Janko Mivšek <janko.mivsek na eranova.si>:
>> Dear Aiders,
>> In newest 6.2 one very important feature is enabled by default and it is
>> important to understand the consequences of that: Image based persistency.
>> Image based persistency basically means a periodic snapshoot of the
>> image to the disk. This is the simplest but very effective persistency
>> solution which I'm successfully using on my production servers for
>> years. It is suitable for low to medium sized projects, in my experience
>> near 99% of all. And you have a Gemstone as a solution to "escape" for
>> really big projects.
>> Aida 6.2 has a hourly snapshot enabled by default and active immediately
>> after the installation. It is active on OneClick image as well.
>> Snapshot is implemented in method:
>>        AIDASite class>>imageSnapshot.
>> Snapshot is periodically scheduled in Aida's scheduler, see:
>>        AIDASite default scheduler
>> Another feature enabled by default is a nightly cleanup, which removes
>> all nonactive guest sessions and release application state on all
>> session. This feautre is also scheduled in above mentioned scheduler.
>> Best regards
>> Janko
>> --
>> Janko Mivšek
>> Aida/Web
>> Smalltalk Web Application Server
>> http://www.aidaweb.si
>> _______________________________________________
>> Aida mailing list
>> Aida na aidaweb.si
>> http://lists.aidaweb.si/mailman/listinfo/aida

Janko Mivšek
Smalltalk Web Application Server

More information about the Aida mailing list