[Fwd: Re: Transactions in Squeak?]

Mark A. Schwenk mas at wellthot.com
Wed Jul 12 06:12:03 UTC 2000


-------- Original Message --------
From: "Michael A. Olson" <mao at sleepycat.com>
Subject: Re: Transactions in Squeak?
To: "Mark A. Schwenk" <mas at wellthot.com>
CC: squeak at cs.uiuc.edu

Hi,

Paul Fernhout recently posted a note asking about Open Source
transaction libraries that Squeak could use to provide platform-
independent transaction-protected data management.  Mark Schwenk
responded with a pointer to Berkeley DB from Sleepycat Software,
and a Cc: to me.

For those not familiar with Berkeley DB, it's an embedded
database library that provides scalable, fast transaction
services.  It runs in multi-threaded or multi-process
configurations, can managed terabytes of data and thousands
of concurrent users, and survives application, system, and
hardware failures.  It's used by a very large number of
commercial customers for mission-critical database services
in applications that they sell to their end users.

Berkeley DB is Open Source under fairly simple terms.  If the
program that uses Berkeley DB is freely redistributable in
source code form, then it qualifes for use and redistribution
of Berkeley DB at no charge.  In the case of interpreted languages
like Perl, Python, Tcl, and (possibly) Squeak, we consider the
interpreter to be the application that "uses" Berkeley DB.
As a result, programmers who write applications in those
languages, and who use Berkeley DB, may do so at no charge.

There are two significant technical issues in using Berkeley DB
in Squeak.

First, Berkeley DB is written entirely in C.  We have language
bindings for C++, Java, Perl, Python, and Tcl, but not for
Smalltalk.  For use in Squeak, you'd need to write Smalltalk
(or Squeak) bindings for Berkeley DB.  I'm not sure whether it
is a problem for you if part of your core software is written
in a language other than Smalltalk.

Second, we don't at present have a port of Berkeley DB to MacOS
or Windows CE.  We'd very much like a MacOS port, but don't
have the expertise in-house to do the work and to support it
over time.  If we could get a port contributed back to us, we
would be extremely happy.  We don't have plans for a WinCE
port at present.  We're waiting to see how the embedded OS
wars shake out over the next six months.  We've just finished
a port to VxWorks and have one underway to QNX Neutrino.  We
will choose the next embedded OS when the Neutrino port is

done and when we see what's showing at the upcoming Embedded
Systems show in San Jose.

Right off the bat, it doesn't appear to me that there are any
difficult licensing issues.  However, I do have one question
that could change my answer.

I read on the squeak.org site that for performance reasons, you
can generate an equivalent C program for any Squeak program.
Does that C program have to link in (or communicate via IPC with)
a run-time engine that provides Squeak-specific services?  In
particular, would that C program call Berkeley DB directly,
or would it make calls via a Squeak run-time component to the
database library?

Regards,
					mike





More information about the Squeak-dev mailing list