Why is MagmaSession>>#noteOldKeysFor: necessary?

Chris Muller asqueaker at gmail.com
Fri Jan 8 17:25:04 UTC 2010


Hi, sorry for the delay.

> I have a question about this. I looked into it, and I'm a bit concerned
> about scalability. I've did some testing and Magma can easily using a
> MagmaCollection, and an index on it, search through a million records and
> find the first 20 matching ones in 250 milliseconds. Thats actually pretty
> fast !! And since Magma is also scalable in the number of nodes you can add,
> you can more or less guarantee that every user can have a response time
> which is in that range. Which is very nice!
> So now the question. I noticed that this context framework uses a
> collectionreader, enumerates all elements in database, and sees if the the
> keywords match (with a match percentage). So it can be that the one you're
> actually looking for is just not found, since there is a timeout on the
> searching time (5 minutes - I don't know anybody that is willing to wait
> that long for a response). Is this correct what I'm saying, or did I not
> completely understand it?

Your understanding correct, with one clarification:

> collectionreader, enumerates all elements in database, and sees if the the

enumerates all elements in the reader...

Yes, the nature of the searching is linear, so that the framework can
endow _any object_ with keyword search capabilities with no coding (by
traversing its physical object graph).  That's why it's a background
with results-as-you-go.

But I should have to remembered you are working in a web environment,
and so this option is perhaps not appropriate.  Whether a web
interface _can_ support a highly-interactive UI with background search
results populating in real-time is superceded by whether it _should_;
in the natural, expected behavior of web applications.  Option 1 is
the best choice for web.

 - Chris


More information about the Magma mailing list