If you can provide a more reliable implementation of a prevalence layer or, if you can describe a more transparent, faster or simpler architecture, please append a reference below:
I am tackling the object persistence problem myself right now and have some thoughts / questions about
Prevayler vs other aproaches
Prevayler looks really nice BUT I see two potential problems with it:
#The licence is
LGPL: unlike say (Apache or Linux licence)
LGPL tends to scare most businesses. the feeling (right or wrong) is that
LGPL is "viral" (just like GPL) and thus makes any project even if it does not modify the
LGPL component but just "uses" it)
LGPL as well. In terms of building a community around
Prevayler I'd think you might consider changing licence types to encourage more use.
#
Prevayler seems to be based on the notion that not only is hardware (memory) cheap but that there is going to be a "glut" of it (that is memory availabilty will grow faster than the demand for more memory). While I think
Prevayler looks like a cool project with some really big plusses to it (aside from fast access, the "open" query model would seem to be of high value for certian specialized data mining applications...) I am not sure that I buy either of those assumptions (as a "general" case).
Answer:
#The
LGPL is not viral, such as the GPL, but thanks for warning us that such a feeling exists.
#That memory will be cheap is just a question of time. See
BreakthroughsInMemoryTechnology. "memory availabilty will grow faster than the demand for more memory"
Prevayler is not based on that assumption. That will obviously depend on the application. For many applications, there is enough RAM already.
--
KlausWuestefeld
I am trying to work on "generalized" bridge technology (basically I want to save objects with the same programatic overhead that serialization imposes (or less) and do so to an arbitrary datastore). Even if, memory were free and in hideous surplus..., there are lots of applications that go through third party modules (such as say Crystal Reports, other report generators or data mining tools) and those tools are rather intrenched (one will not rapidly "overthrow" them, and people right now "want" and "depend" on them). Thus I see a need for a flexible "bridge" technology. If you know of other projects that are doing this please let me know (dshriver@engenia.com) because (naturally) I'm running into some hairy cases in developing such a bridge (BTW: Castor, Hibernate, OJB, TJDO (and the addons xDoclet...)- aren't the "general" or "low overhead" bridges I'm talking about; they require mapping files and other restrictions and my goal is to serialize arbitrary classes with almost no burden on the developer).
That being said
Prevayler does look like a really cool project and I hope to see more of it (more use and more development) in the future.
Prevalence technology sounds like a great breakthough. I'm trying to use it in a prototype project right now. Just an observation. Even with advances in memory (which will take a few years anyway) a large company could have many different systems running, and each with a prevalent system instead of a centralized big-iron dbms. As we all know unused or rarely used stuff will accumulate; data storage needs will always expand to fill availble memory. The solution to this in the industry is HSM (Hierarchical Storage Management). In HSM direct access devices are considered the 'fast' close to the user storage.
Prevalence changes this. I wonder if this is possible, could a policy based HSM process migrate objects from the prevaler storage into the storage hierarchy. Of course, its possible. Does it make sense. Just musing.
--- J. Betancourt
To do that transparently, I believe, would have the same complexity and overhead as an OODBMS. --
KlausWuestefeld