Relational database management systems restrict you to using rows and columns and ALL database management systems, including OODBMSs:
-worry about RAM limitations;
-worry about paging data blocks from RAM to disk and back;
-restrict you to using query algorithms, data structures and query languages (SQL, OQL) that must work well on disk clusters.
It is, therefore, MUCH simpler (which makes it much more robust) and orders of magnitude Faster (no JDBC overhead).
You are finally free to write a decent object server, the way OO was intended since the beggining. See: NoMorePorridge
Why isn't Prevayler
a database? Granted it's not an RDBMS
, but it does look like a DBMS
is a DBMS
, as it manages command-logs and snapshots, which are nothing but object stores, and objects are made mainly of data. But, in practice, it's easier to explain how it works by reverse logic: first negating that Prevayler
is a database management system, thus removing all assumptions that this statement makes, and then explaining what Prevayler
is. The conclusion is that Prevayler
is a DBMS
, but you don't have to keep saying "no, it doesn't have SQL", "no, no JDBC", and things like that @:) -- CarlosVillela
is not a database. Read the beggining of the page. --KlausWuestefeld
At what point doesn't Prevayler
worry about RAM limitations? Surely worrying about RAM limitations is one of the primary concerns of Prevayler
assumes the PrevalentHypothesis
. Databases do not. --KlausWuestefeld
A "database" does not have to be on or assume disk. RAM-centric RDBMS
are in the works.
provides persistence. RAM-centric "databases" don't. I wouldn't even call them "databases". I would call them RAM-centric SQL engines. --KlausWuestefeld
Also, "database" does not have to be a relational database. The "navigational" databases of the 1960's are an example, as is OODBMS's (which some say are repackaged navigational DB's.) Thus, if we ignore
the RAM issue, don't assume just relational ("must fit a table shape"), then exactly how is a prevalance layer different from a database? It is a sub-set of databases? Perhaps it can be defined as a "database based in RAM that does not have to be relational".
Well, if you "ignore" all the differences between Prevayler
and a database then I suppose you can make yourself believe Prevayler
is a database. --KlausWuestefeld
assumes the Prevalent Hypothesis. Databases do not."
You have got to be kidding. Further comment moved to http://fishbowl.pastiche.org/archives/001295.html
Clearly, Klaus has a different definition of database than the rest of the world. Which, btw, he is welcome to do. However, it would make him seem more intelligent and less like man selling snake oil if he would define it and explicitly spell out "all the differences between Prevayler
and a database ".
Also, the idea that any software is not RAM dependant on any current hardware architectures displays a nievity about how a computer works. Software is highly RAM dependant, period. You can make some fantastic hypothisis about there being an inifinite amount of RAM (hell, you can even say that your CPU is infinitely fast), but when the software runs, it is dependant on there being enouh RAM to keep from swapping, that the RAM is error free, and the speed of the memory bus. It's also highly dependant on the cpu cache. Of course, it is dependant on a whole lot of other hardware concepts, but the previously mentioned items are particularly important for this type of software solution.