The big difference is speed .. I use a prevalence layer on one of my
applications that has updates happenning to the object graph hundreds
to thousands of times a second. The only reason I even need a
prevalence layer is so if I crash I can start up where I left off and
the benchmarks show prevalence being orders of magnitude faster than
dealing with the database (3000-9000 times faster). I have no need for
concurrency (single app) and I don't to pay for a database license nor
do I gain the point of failure it brings  (my employer keeps getting
happier)

There seem to be alot of misconceptions about prevalence .. every
change is updated as it is done automatically there is no "saving" ...
there is snap shotting but this is quite different than saving .. the
state is already saved in the transactional log.

When it comes to referential integrity throughout your graph you are
correct that it can become troublesome as you may have changes that
span multiple objects and a crash in between could leave you in a
state that does not make sense. You can easily work around this in
your own code although some prevalence layers support transactional
writing (I forget if bamboo does or not). Bamboo is certainly not the
only prevalence layer around butit is a greta intro to the concept.

Cheers,

Greg
On 10/6/06, Eddie Lascu <[EMAIL PROTECTED]> wrote:
Frans,

You may be right, but I wouldn't spec a DB just for that. After reading
about prevalence, I understand that its scope is different: a cheap, fast
and reliable way to preserve state. The challenge that I see is that you
must design with that in mind. Even if the repository would be a database,
rather than the prevalent layer, you would still need to recover from a
crash and reestablish the state of the system prior to the shut down. In
Bamboo's case, you gotta love the interception mechanism that routes all the
operation through the prevalence layer so that they are logged before
executed. All you need to do is to link your objects in the Prevalent
Engine. How can this compare to placing the application state inside a RDB,
using transaction logs?

Regards,
Eddie





-----Original Message-----
From: Discussion of advanced .NET topics.
[mailto:[EMAIL PROTECTED] Behalf Of Frans Bouma
Sent: Friday, October 06, 2006 2:30 PM
To: [email protected]
Subject: Re: [ADVANCED-DOTNET] Prevalent systems

       I always say: there must be a reason why systems like Oracle, DB2
and SqlServer use disk-based transaction logs. I.o.w.: IF
you decide to place the application state inside a relational database (and
why wouldn't you, they're designed for that), your
application state is well protected and you have all the tools at hand to
restore an application with an application state  which is
known to be solid and fully recovered.

               FB

===================================
This list is hosted by DevelopMentor.  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

===================================
This list is hosted by DevelopMentor(r)  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com



--
If knowledge can create problems, it is not through ignorance that we
can solve them.

Isaac Asimov

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to