Hi Jim
Hi Jim

Thanks for your comments - the MS Virtual PC side of things doesn't add any
complications, my question can just be read as wanting to transfer the same
Perl/BerkeleyDB system from one machine to another.

It seems that there is a difference between how the BerkeleyDB engine is
installed as between a Windows and a Unix/Linux installation - see Brian
Raven's comments. I've been trying ProcessExplorer at someone else's
suggestion to see which happens when the DB_File module is loaded. I
debugged the small Perl script that was producing some test BerkeleyDB files
using Komodo and I found that the only change to the loaded processes when
the DB_File module was loaded was a DB_File.dll one. Also I found that the
properties for that dll had a string that referred to version 4.1.25 of
BerkeleyDB which matched the version of the BerkeleyDB engine that my test
script showed. I'm not sure whether this confirms that the BerkeleyDB engine
is controlled by the DB_File module for a Windows machine?

Unfortunately I'm testing Perl scripts that already use DB_File so I can't
change the database system. These were written so that they could be run on
servers, whether Windows or Unix/Linux, that didn't have any more
sophisticated database system, such as MySQL, Oracle, so using DB_File with
the BerkeleyDB engine was the best option (assuming the DB_File module was
available).

Eric Robertson

-----Original Message-----
From: Jim Schueler [mailto:[EMAIL PROTECTED] 
Sent: Monday, November 12, 2007 6:07 PM
To: Eric Robertson
Cc: [email protected]
Subject: Re: Berkeley DB Installation

Hello.

I don't know anything about MS Virtual PC, so I don't understand your
question very well.  I have about 15 years expertise with BerkeleyDB on
Unix and wrote the BerkeleyDB::Lite module.  I only monitor this group to
answer BerkeleyDB questions, even though I don't think my module is
distributed by ActivePerl.

This doesn't seem to be a Perl problem, and even less likely to concern
ActivePerl. There is a BerkeleyDB Usenet group that is obstensibly
monitored by what used to be SleepyCat (now Oracle) engineers.  Have you
posted there?

BerkeleyDB is an embedded database.  It consists of a library that adds
database functionality to any application.  Usually, database
functionality means persistent storage of significant volumes of data.  
So on a diskless platform, a BerkeleyDB application at least requires a
virtualized file system.  Additionally BerkeleyDB optimization performs
caching and swapping separate from the OS/FS.  So a virtual file system
needs to be optimized specifically for BerkeleyDB to begin matching the
performance of native hard storage.

In short BerkeleyDB is a database engine instead of a database application
(although the BerkeleyDB distribution includes a primitive database server
to migrate up to a client/server model).  In your case, why use BerkeleyDB
at all?  The Perl ability to represent databases as tied objects was the
original appeal of BerkeleyDB back in the day.  But now, DBI does the same
thing for any database model/application.

Jim Schueler
Motor City Interactive



On Sat, 10 Nov 2007, Eric Robertson wrote:

> I posted a question 10 days ago and I've found that somehow or other it
got
> tagged onto the end of another thread so perhaps has been overlooked so
I'm
> trying again! Here's an amended version of that question.
> 
> I've been using a networked PC running NT4 Server to test some Perl CGI
> scripts using the remote debugging features of Komodo, which is running on
> an XP Pro PC. I've been experimenting with running the scripts on a
virtual
> machine (using MS Virtual PC) hosted by the XP Pro PC so that I only need
to
> have one PC to test these Perl scripts. This is working well except that
I'm
> having problems with some Perl scripts that use DB_File.
> 
> I don't seem to be able to read the same database files on the virtual
> machine and I have discovered that although I thought I had the same set
up
> on both machines this is not the case which could account for this. The
> standalone PC is running DB_File version 1.73 and Berkeley DB version
> 2.004010 while the virtual machine has DB_File version 1.806 and Berkeley
DB
> version 4.001025.
> 
> I came across a test to check how well Berkeley DB is working in
conjunction
> with Perl and I found that with the standalone machine it took 1 wallclock
> second to use DB_File to write 10,000 records while with the virtual
machine
> it took 58. There was a note associated with this test to say that there
was
> a bug in version 4.1 of Berkeley DB which might not have been corrected
and
> which would have caused it to run very slowly. I'm wondering if this is
> perhaps the problem although it could just be that this is because it's
> running in a virtual machine and/or I've not allocated enough RAM to the
> virtual machine.
> 
> I don't know how I've managed to have a different version of Berkeley DB
on
> the virtual machine. Am I correct in thinking that Berkeley DB comes with
> the OS and is not part of the Perl installation? I see that the Service
Pack
> on the standalone PC is SP5 whereas the one on the virtual machine is SP6
so
> perhaps this accounts for the difference. 
> 
> 
> _______________________________________________
> ActivePerl mailing list
> [email protected]
> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
> 

-- 



_______________________________________________
ActivePerl mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to