Database options was (Re: My first Magma experience ...)

Daniel Salama dsalama at user.net
Tue Apr 5 14:08:02 UTC 2005


I modified the free OmniBase to ignore the file locking in Linux for 
the time being. Then I tried running the same benchmark I ran against 
Magma and GOODS. I had a difficult time with OmniBase, I guess grasping 
the concept of everything needing to be in a transaction, so I don't 
know if my code is right. Can anyone tell me if this code would work 
with OmniBase:

	time := Time millisecondsToRun:
		[[db := OmniBase openOn: 'Macintosh HD:Users:dsalama:OB'.
		
		[OmniBase root at: 'FHKC834' put: (OrderedCollection new)]
			evaluateAndCommitIn: db newTransaction.
		
		[head := FHKC834Header new.
		head controlNumber: (self ediData controlNumber).
		head referenceNumber: (self ediData referenceNumber).
		head date: (self ediData date).
		head time: (self ediData time).
		head members: (OrderedCollection new).

		theBase := OmniBase root at: 'FHKC834'.
		theBase add: ediData.
		theBase markDirty]
			evaluateAndCommitIn: db newTransaction.
			
		numCommits := 0.
		Transcript cr.
		
		1 to: (((ediData members) size) / 100 asFloat) ceiling do:
			[:lp |
			txn := db newTransaction.
			theBase := txn root at: 'FHKC834'.
			head := theBase first.
			
			1 to: 100 do:
				[:i |
				(self ediData members at: (lp - 1 * 100 + i)) notNil
					ifTrue: [(head members) add: (self ediData members at: i)]].
			txn commit.
			numCommits := numCommits + 1.
			txn abort.
			Transcript show: '.']] ensure: [db close]].
	 db close.

	Transcript cr; show: (time/1000) asFloat; show: ' seconds to load into 
GOODS in ';
		show: numCommits; show: ' commit(s)'.

It's supposed to commit every 100th element of the members attribute. 
The reason I post this message is because it's been running for over 3 
hours and it hasn't finished. I find it hard to believe that OmniBase 
would take this long.

Thanks,
Daniel

On Apr 4, 2005, at 12:27 PM, Avi Bryant wrote:

> On Apr 4, 2005 5:41 PM, Daniel Salama <dsalama at user.net> wrote:
>> My understanding from David is that the commercial license does not
>> have Linux file locking support. I'd be willing to buy a commercial
>> license immediately if I knew the support for Linux was there.
>
> The second you have a commercial license, I can send you:
>
> - An up to date version of OmniBase (commercial) with the linux file
> locking merged in
> - The version of OSProcess it depends on
> - A tarball of the unix VM source modified to work properly with 
> OmniBase
> - A prebuilt VM for Mac OS X with the above modifications (if that's 
> useful)
>
> However, please do note that you can do a huge amount of evaluation,
> testing and development *without* the locking support and *without*
> using the commercial version... both of those are only things you
> would really need for a deployment scenario.
>
> Avi




More information about the Squeak-dev mailing list