On 2/17/10 9:44 AM, Gabriel Brunstein wrote:
I didn´t know the advantages and disadvantages of Gemstone over Magma, I've found http://gemstonesoup.wordpress.com/2009/03/09/why-glass/ with this comment:

"Denis, the most obvious difference is that magma is used from a smalltalk image (squeak, pharo,…) as a database add-on. Gemstone _is_ the database and the image you run.

In gemstone even the system classes are in the image that are persistent. Some parts of gemstone oodb are built in a native language. They are optimized in more traditional way for the speed of objects acquiry. Magma is done in pure smalltalk and should therefor be really flexible in what you can do with it.

From the programming side they aren’t that different. You build your object graph in both and you need to attach this graph somewhere that it doesn’t get garbage collected. In Magma you have one database root where you attach your stuff. In Gemstone you can attach things just everywhere because everything is part of the persistent things.

I don’t know both that well. But Magma you can download and there you go. It is just a piece of software you load and you have a OO persistence layer. This is very good for deploying along with an image. I never tested to use magma as a server. Lately magma came up with some cool features like distributed databases, offline objects and high availability. I like to do some stuff with it.

On the other hand gemstone you must deploy in more server like environment. It eats a certain amount of your memory. But you get a server that performs really well, has proven scalability, cares more about security and user based data separation. It is something fast and solid for me. With the remote debugging features it is the ideal database for my purposes so that were the reasons to choose it.

I hope this helps you little bit in understanding. Magma and gemstone are in principal the same: they are OODBS. But for me the usage scenarios are completely different."


what do you think about it? maybe you can include something of that.
I'm using Magma on a project where there is a central server running Seaside & Magma that is the "master" application. There are also a few users who have a one-click Seaside & Magma image running on their local machines that launches Mozilla Prism to the local Seaside using OSProcess. I'm using Magma to maintain a local read-only copy of the master that can catch itself up when online. I'm also using Gjaller-like transactions that are generated against the domain model, and later sent to the master server to be "applied" when the user comes online again. I considered using Gemstone, but the problem with Gemstone for this particular case is its "server-ness". It runs a few different processes that all do different things (the DB, the memory caches, VMs, etc.). So in my situation I couldn't have a nice "one-click" setup that could be deployed on client machines that could also handle being disconnected from the "master" database.



2010/2/17 laurent laffont <[email protected] <mailto:[email protected]>>

    Really great informations :


        Scenario’s

    In different situations, there are different storage needs

       1. You are writing a small demonstration program to show your
          customers, and want to populate the system with some
          representative data. Add a class instance variable to store
          the instances, and simply save the image.
       2. You have a small system with a few hundred/thousand objects,
          and are not dependent on external systems. A prevayler-like
          system like SandstoneDB might be a perfect fit. Each object
          save means a disk access, so scaling ends with disk speed. A
          few old versions of the data are kept around, so backing up
          or reverting is easy. If you want a readable representation,
          SIXX might help.
       3. You have a legacy (relational) database, with extensive
          reporting written for it. Use an ORM.
       4. You have a complex and large object model that has to
          support changing the object model while developing. The
          solution is an OODB. Gemstone is the large and proven
          commercial offering. It has a free version for smaller
          databases (4GB data, 1 core, 1G ram), and has proven
          scalability to 500 machines. Magma is an open source OODB,
          seeing active development and growing more and more advanced
          functionality.



    Laurent Laffont



    On Wed, Feb 17, 2010 at 3:07 PM, laurent laffont
    <[email protected] <mailto:[email protected]>> wrote:

        No :)  Thanks for the link !

        Laurent Laffont



        On Wed, Feb 17, 2010 at 2:23 PM, Stephan Eggermont
        <[email protected] <mailto:[email protected]>> wrote:

            Hello Laurent,

            I assume you are aware of:

            http://www.seaside.st/documentation/persistence

            Stephan

            _______________________________________________
            Pharo-project mailing list
            [email protected]
            <mailto:[email protected]>
            http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project




    _______________________________________________
    Pharo-project mailing list
    [email protected]
    <mailto:[email protected]>
    http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project



_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


--
Dave Woodward
...................................................
www.promedmedical.net
317.332.6438
[email protected]

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to