Fast Search on Multiple Keys w/Omnibase

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Fast Search on Multiple Keys w/Omnibase

Jeffrey Odell-2
I'm evaluating OmniBase.  All my prior persistence has been in Relational
DBs, so I am doing some object db stuff for the first time.

I have a simple test application that has a large collection of People.  I
would like to search on multiple keys, for example an ID and Last Name.  If
I persist an ODBBTreeDictionary, I can choose one key.  I'm presuming I
should use this object to get key level concurrency.

If, for example, I choose the ID, then it makes sense that the
ODBBTreeDictionary can become the "primary" dictionary for controlling
concurrency to the Persons in the system.  However, I would like a fast
lookup by Last Name too.

It occurred to me I could encapsulate multiple ODBBTreeDictionary instances
in a PersonDatabase object, and create methods on PersonDatabase such as
#addPerson:.  These methods could maintain multiple dictionaries, as well as
implement search by the various keys.  It can also manage the OmniBase
Object clustering, to make sure I get only one Person object in the
database, referenced by multiple ODBBTreeDictionary instances.

Is this a sensible approach, or am I overlooking a more reasonable approach?

TIA -

jlo


Reply | Threaded
Open this post in threaded view
|

Re: Fast Search on Multiple Keys w/Omnibase

Jeffrey Odell-2
I have created some simple frameworks for handling this if anyone using
OmniBase is interested.

jlo

"Jeffrey Odell" <[hidden email]> wrote in message
news:3c3b8897$1@tobjects....
> I'm evaluating OmniBase.  All my prior persistence has been in Relational
> DBs, so I am doing some object db stuff for the first time.
>
> I have a simple test application that has a large collection of People.  I
> would like to search on multiple keys, for example an ID and Last Name.
If
> I persist an ODBBTreeDictionary, I can choose one key.  I'm presuming I
> should use this object to get key level concurrency.
>
> If, for example, I choose the ID, then it makes sense that the
> ODBBTreeDictionary can become the "primary" dictionary for controlling
> concurrency to the Persons in the system.  However, I would like a fast
> lookup by Last Name too.
>
> It occurred to me I could encapsulate multiple ODBBTreeDictionary
instances
> in a PersonDatabase object, and create methods on PersonDatabase such as
> #addPerson:.  These methods could maintain multiple dictionaries, as well
as
> implement search by the various keys.  It can also manage the OmniBase
> Object clustering, to make sure I get only one Person object in the
> database, referenced by multiple ODBBTreeDictionary instances.
>
> Is this a sensible approach, or am I overlooking a more reasonable
approach?
>
> TIA -
>
> jlo
>
>