[om-list] FramerD
Luke Call
lacall at onemodel.org
Mon May 21 08:16:47 EDT 2001
I've been looking at framerd and even have installed the 2.1 beta and
barely started using it a little bit. It is very interesting. I read
about their C/C++ api and looked at some of the java code. I've started
some scheme tutorials--it's pretty fun after not using it for so long. I
sent an email to their developer mailing list asking some questions
about mixing scheme and java w/ their system, etc., but haven't heard
back. I'm wondering a little about their current development since the
latest code seems dated Nov. 2000 and there is very little activity on
the mailing lists.
Still, they have a lot of very cool-sounding features that would take a
long time to duplicate--like they wrote this with projects like ours in
mind. I'll keep playing around.
Luke
Mark Butler wrote:
> Luke,
>
> I glanced at the FramerD documentation once before, and had same impression.
> However, on closer examination it looks like a very good match.
>
> FramerD is not written in LISP, it is written in C. It just happens to be a
> database designed to store semantic networks like the ones we are dealing with
> very efficiently. It has a small Scheme interpreter, but you are not required
> to use it. It is also distributed, which is great for very large database
> clusters, like the type Google uses (I read that they use a *4000* node Linux
> cluster for their web index).
>
> FramerD was developed precisely to overcome the objections you raise below, in
> particular scalability and interoperability with other programming languages.
> I certainly wouldn't use it to run a bank quite yet, but I can certainly see
> it being used in terabyte scale data analysis applications.
>
> You would like an architecture good for five to seven years. I don't think
> any relational database will give it to us. We have chosen a field that
> relational databases are notoriously poorly suited for. OODMS manufacturers
> regularly advertise how their databases help customers obtain performance
> 10-20 times higher than their previous relational databases on the same
> application.
>
> The main reasons for this are:
>
> 1. OODMSs cluster related records together on disk, RDBMSs generally cannot.
> 2. The SQL parser & query planner are mostly dead weight for simple traversal
> operations
> 3. Typical relational databases are optimized for table scans, which work best
> if you have a large number of very specialized tables, not OO style all
> purpose tables.
> 4. Relational database query protocols require too many network round trips to
> perform well with graph structured data.
>
> Of course, in principle, one could re-engineer the internals and network
> protocols of a relational database to cluster records efficiently on disk,
> implement distributed client record caches, and arrange to transfer records
> from different tables in one burst, but no one has done it yet.
>
> I am trying to help a little with Postgres, but it is going to be a long time
> before it will replace any decent dedicated OODMS for graph traversal
> operations. Right now they have a lot of work to do to get to where Oracle
> was a decade ago, and object oriented features aren't much of a priority.
>
> I have recent experience implementing a genealogy database in Oracle, with the
> freedom to customize the tables for that particular application. The two core
> tables were person and person_event, each with two or three dozen attributes.
> To generate a pedigree chart or a family group sheet, we had to run twenty or
> thirty SQL queries because of the way the records are related in a graph.
> Performance is okay, but many times slower than the equivalent flat file
> application I wrote for a related family history research firm.
>
> Now if we took that same model and split it up so that every attribute value
> was in its own record, it is hard for me to imagine that even a single user
> could get any work done unless the application was written with a very large
> RAM object cache. Even then, performance would crawl until the current
> working set of objects was brought into memory, something that never quite
> happens with ad hoc queries.
>
>
> The only major problem I can see with FramerD is that it does not yet have
> transaction support, something that would need to be added before using it for
> a mission critical system, and something the lack of which can sometimes be a
> major annoyance. The bright side is, as in the case of MySQL, leaving out
> transaction support can add a factor of 5 to update performance. For many
> applications, that is a worthwhile tradeoff - I sure wish I could turn off
> transaction logging when loading a million row table in Oracle.
>
>
> - Mark
>
>
> Luke Call wrote:
>
>>But how would lisp handle terabytes
>>of data, and our requirements? We've been over this in detail, remember?
>>I have used lisp (the scheme dialect, taught by one of the leading
>>lights at the time) and couldn't seem to find ways to map it to the real
>>world, though I asked the professors about it a lot back then (10 yrs
>>ago). Like how to do object systems (write your own), persistence (not
>>discussed), access to operating system facilities, databases, or other
>>necessary utililties (well, didn't know, weren't so interested in that
>>anyway), etc. Great for AI and education, they kept saying--so I say we
>>may use it for that, as described below--as an embedded language to
>>express things within the model that rows/columns can't so well (as
>>discussed before), like formulas, algorithms, and actions performed by
>>entities in the model, and perhaps more.
>>
>
> _______________________________________________
> om-list mailing list
> om-list at onemodel.org
> http://www.pairlist.net/mailman/listinfo/om-list
>
>
>
More information about the om-list
mailing list