links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
Magma FAQs
Last updated at 8:18 pm UTC on 19 April 2011

What system changes does Magma make to Squeak?

The design has purposely remained mostly above the Smalltalk meta layer to facilitate easy transition to future versions of Squeak. As Squeaks in-memory object structure is enhanced legacy databases may remain true to Magma's custom serialized format (which requires additional information anyway).

What classes of objects does Magma support?

See Magma Supported Classes.

Does Magma save class variables or class-instance variables?

No. Those are variables persisted in your image and are ignored by Magma.

When persisting an object, what is the situation regarding persistency of the Dependent object?

The default behavior of Magma is to persist the directly connected graph. With the standard dependency mechanism, dependents are not directly connected, so they will not be persisted.

How does Magma interact with the classes in my image? What happens if I try to retrieve an instance of a class that I don't have defined in my image? Will it compile the class dynamically?


How do I protect my database from unauthorized access?

This is a complex question to which most implementors have or want a different solution. I believe, at the end of the day, the end-to-end argument cannot be refuted, therefore it is worth considering to put objects whose privacy needs protecting into a vault.

If I use Magma as a backend for Commanche, what kind of throughput can I expect?

It's hard to say because it depends so much on how its used. Here are some benchmarks from my computer. Magma tester comes with a benchmarking class so you can measure performance of various things to help determine suitability for a purpose.

How do you back up a live Magma database?

Use an admin session and send the #fullBackup message.
  | session |
  session := (MagmaRemoteLocation host: 'hostname' port: portNumber) newAdminSession.
  session fullBackup.
  [ (Delay forSeconds: 2) wait.
  session isFullBackupRunning ] whileTrue

How does Magma handle "catastrophic" failures? (e.g. rebooting the computer without shutting down Magma)

See Magma Backup and Recovery.