jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Roy T. Fielding <field...@gbiv.com>
Subject Re: Getting "custom" objects from the repository?
Date Sat, 16 Apr 2005 18:34:26 GMT
On Apr 16, 2005, at 11:17 AM, Daniel Dekany wrote:
> Assume I start transaction, modify a script
> and a template in the repository, and then commit the transaction. Now,
> when you start a new transaction later (e.g. for satisfying a HTTP
> request), you want to see the new objects, not the old ones, especially
> if you want to check what you have just committed. Also, you don't want
> to face with inconsistent states, where for example the script object 
> is
> in its old state, and the template object is in new state (since in
> general the old template works correctly only with the old script, and
> the new template works correctly only with the new script, and mixing
> the two will result in error 500 pages and other malfunctions). It's
> basically the same as the ACID thing of the RDBMS-es, and surely I 
> don't
> need to explain why is this absolutely important for server side
> applications.


> Now, on the JCR level everything is "ACID" (well, it can
> be if transactions are supported etc). But you will seldom use raw JCR
> without some kind of object mapping behind it, right?

Behind what?  JCR?  JCR has an implementation behind it (Jackrabbit)
and that implementation will have some kind of resource mapping, but
that certainly doesn't change the ACID properties.

> And if all the
> "ACID" loses with the object mapping (as the cache can't be kept
> precisely in sync with the content of the repository), then in practice
> you have just trashed the ACIDity of the JCR repository. Does anybody
> get what I'm saying?

No, you are making too many assumptions.  If the cache is not watching
for write actions and invalidating on successful writes, then it isn't
a valid cache.  It doesn't matter whether it is above JCR or within
the JCR implementation, it would still be an invalid cache.  There are
plenty of ways to implement a cache such that it never becomes invalid.


View raw message