11

そのため、私はSmalltalkを約6か月間使用しており(SqueakとPharo)、主にデータ分析を行っており、最初のSeasideアプリを起動しようとしています。それで、そこにいるすべてのSmalltalkersへの私の質問は、あなたのお気に入りの永続化ソリューションは何ですか?マグマ、GOODS、GLORPを見てきました。私は長年のPythonハッカーなので、ORMを取得しますが、オブジェクト指向のように見えるため、MagmaまたはGOODSの方が優れたソリューションのようです。

簡単なメモ:アプリを複数のVMにまたがってスケーリングしたいので、データをイメージに保存するだけでは実際には機能しません。

ありがとう!

4

3 に答える 3

12

複数のVMにまたがって拡張する場合は、GemStone/Sを確認することをお勧めします。

ただし、GemStoneは独自の商用製品であることに注意してください。だから、あなたそれを支払う必要があります。ただし、価格設定モデルは通常、より大きなエディションが必要な場合は、通常、ユーザーがそのエディションの料金を支払うように設計されています。価格は、4GiByteディスク/1 GiByte RAM /1CPUバージョンで0ドルから始まります。

もう1つ注意すべき点は、GemStone Smalltalkは独自の方言であるため、Squeakコードは変更されずに実行されることはおそらくないでしょうが、移植はかなり簡単なはずです。(たとえば、GemStoneのエンジニアは、Monticello(Squeakのバージョン管理システム)パッケージをGemStone / Sにロードできるようにするアダプターを作成しました。また、通常、Seasideが実行されることを確認します。)

では、GemStoneとは何ですか?基本的に、これは自動オブジェクト永続化を備えた分散VMです。通常のSmalltalkVMと比較して説明するのが最も簡単です。2つのSmalltalkVMを並べて実行している場合、それぞれに独自のオブジェクトメモリ(つまり、ガベージコレクタが管理するもの)があります。そして、そのオブジェクトメモリはRAMにあります。GemStoneでは、クラスター内のすべてのVMが同じオブジェクトメモリ共有し、RAMではなくディスク上に存在します。したがって、オブジェクトはいつでもどこでも「そこに」あるので、データベースは必要ありません。オブジェクト指向のデータベースも必要ありません。

(これは非常に単純な説明にすぎません。たとえば、ヒープはVM間で実際には共有されませ。それは意味がなく、ネットワーク全体で作成するすべての一時オブジェクトを複製する必要はありません。代わりに、グローバルリポジトリがあります。オブジェクト(基本的には辞書)であり、ガベージコレクターが既知のルートオブジェクトから開始し、そこから到達可能なすべてのオブジェクトを保持し、到達できないオブジェクトを削除するのと同様に、GemStoneはグローバルリポジトリオブジェクトから開始します。そこから到達可能なオブジェクトのみを永続化/複製します。)

GemStoneにはデータベース風の機能もあるため、グローバルリポジトリへのアクセスはACIDトランザクションにラップされ、SQLに触発されたSmalltalkishクエリ言語があります。

GemStoneには、よく知られている「LAMP」(Linux、Apache、MySQL、PHP)に類似した「 GLASS 」(GemStone、Linux、Apache、Seaside、Smalltalk)と呼ばれる優れたアプライアンスがあります。GLASSには、SeasideがプリインストールされたGemStoneの無料版と、Xubuntu上で実行されるApacheでセットアップされたすべてのものが含まれ、すべてがVMWareディスクイメージにきちんとパッケージ化されています。

于 2009-07-07T09:01:39.250 に答える
3

GLASSだけでは、データの概要を把握するのに役立ちません。SandstoneDBはそうします。SandstoneDBは、使用する金額に応じて、GOODSとGLASSの両方(または単独でも)で使用できます(Sandstoneはあらゆる意味で無料で、GLASSは商用ですが、小規模なインストールの場合は無料のビールのように無料です)。

sandstoneDBページをチェックしてください。そして、これがGOODS用のアダプターです。SandstoneDBをGLASSで使用するには、ストアをSDMemoryStoreに切り替えるだけです。SandstoneDBのSDMemoryStoreに関するクラスコメントを参照してください。

于 2009-07-12T10:31:19.893 に答える
1

選択できる場合は、GLASSまたはMagmaも選択します(プロジェクトの規模によって異なります)。

SqueakのGLorpはPostgreSQLでのみ機能することを考慮に入れてください。ほとんどのデータベースと通信するためのデータベースドライバであるSqueakDBXを開発しました。現在、Glorpを変更して、すべてのGlorp(PostgreSQLだけでなく)で使用できるようにしています。しかし、これは今年の終わりまでありません。

于 2009-07-07T13:53:22.173 に答える