[ANN] Introducing Magma, an object database for Squeak

Chris Muller afunkyobject at yahoo.com
Thu Aug 1 18:11:26 UTC 2002


Hi Göran,

> Ah, I see you have a somewhat different definition of the word "concurrency
Actually, I did define concurrency on the page about concurrency:

  http://minnow.cc.gatech.edu/squeak/2666

My intended meaning is "when two sessions try to concurrently change the same
object."  Perhaps your definition is concurrent access to the database.  I'll
check my object database text to verify the meaning.

>GemStone sends "events" to the clients when they ought to
>"cross" as you call it. And if they don't follow that advice they are
>finally "forced to abort" or something like that I think.

As a professional GemStone consultant, the only problem with that strategy is
when the client doens't respond.  The reason they don't respond is often the
same reason they didn't refresh in the first place; they're tied up in a long,
inefficient operation that is preventing a process switch.

I have a different strategy planned for minmizing the impact to the server of
rude sessions who don't keep up to date.  Basically, the server will stop
recording object changes for them, meaning NO FURTHER IMPACT to the server. 
Then, when the finally do cross (if they do) instead of refreshing changed
objects, the server will tell that client to refresh every *read* object.  This
will all be done before the client program is handed back control from their
crossing of the transaction boundary.

I have not implemented this yet, so right now the server just terminates rude
sessions.

> Btw, at Swikipage 2639 " simulteneous indexes" should be "simultaneous
indices". I think. :-) The page was locked so...

Thank you for pointing out my misspelling.  Let me clarify the status of the
Swiki pages.  They are not "done", but they were far enough along that I
considered them "worthy to show to you fine folk."  I locked the Swiki pages
which were not complete so I could more easily get all of my own language put
together without the potential for needing to integrate other readers language
before they were even done.  I have already unlocked the ones that I'm done
with.

> At page 2638 the "Two kinds of ReadStrategies" seems a bit incomplete.
Perhaps you could proof read that again. 

Yes.  I plan to add more detail to that, and others.  I really want to gauge
the level of interest before I spend a lot of effort to make everything perfect
though.

> if transaction A reads object
>foo that has been changed by transaction B after A started. I believe
> GemStone calls that a "read conflict" or something

Yes, I made sure Magma would be able to support "dirty read" detection.  In
fact, if you look in MagmaSession, I'm pretty sure you can see some methods in
the private category that are intended for this purpose, but that functionality
is not complete.  It's actually quite a low priority for me.

> have you run any load tests or regression tests? I mean - how
> stable would you say Magma is right now? 

Let me describe the state of Magma right now.  Due to its infrastructure
nature, the quality is very high for the functionality that I have currently
implemented.  While it is not proven and not stressed, all of the functionality
you see exercised in MagmaTestCase and MagmaCollectionTester should be solid as
a rock.

Because my tests utilize multiple Squeak images, you cannot simply click on
"Run All" in the SUnit browser.  I plan to post the page about how to test
Magma's functionality on the Swiki.

Having said that, let me also say that I still have *new functionality* that I
still need to implement.  For example, a garbage collection tool, finishing up
the dirty reads, and more.

I made the design and implementation as efficient as I possibly could, so I'm
not anticipating any performance issues when used as intended (i.e., keeping
transactions short, etc.).

Don't worry, I have been through, literally, thousands of tests with Magma. 
The code is lucid and easy to maintain.  Additionally, I plan to be actively
provide 100% support for this for at least the first month.  Like I said, I
still have work to do to get it where *I* want it.

Regards,
  Chris

__________________________________________________
Do You Yahoo!?
Yahoo! Health - Feel better, live better
http://health.yahoo.com



More information about the Squeak-dev mailing list