Smalltable、OODB、STM、分散バージョン管理

0
Kazunori Sato @kazunori_279

Smalltableと書こうとして、ついついSmalltalkと書いてしまう程度のSmalltalkファン(もう何年も触ってないけど)

2009-12-23 09:33:48
Kazunori Sato @kazunori_279

しかし #appengine のフロントとなるクライアントSQLiteに対してORM書いたりするより、ObjectStoreのクライアント側API/分散キャッシュみたいなのがあればいいんだよな #smalltable

2009-12-23 09:38:00
Kazunori Sato @kazunori_279

クライアントのローカルでオブジェクトのグラフを永続化して、それを #appengine と同期する #smalltable

2009-12-23 09:40:13
Kazunori Sato @kazunori_279

しかしレコード単位の同期ならタイムスタンプの楽観排他でいいけど、グラフとグラフの同期とかマージとか排他って謎の世界 #appengine

2009-12-23 09:42:25
Kazunori Sato @kazunori_279

ObjectStoreの分散キャッシュってそういうのどう実装してたのだろう>グラフとグラフの同期

2009-12-23 09:45:13
Kazunori Sato @kazunori_279

要件ごとのインデックス設計が重要/必要になるって、OODBも #appengine も共通してるね

2009-12-23 09:49:32
Kazunori Sato @kazunori_279

object databases the essentialsを引っ張り出して読んでみよう

2009-12-23 09:54:06
Kazunori Sato @kazunori_279

リッチクライアント同士でp2pっぽく分散キャッシュ連携(cache fusion)して、 #appengine に同期・保存する…とか。

2009-12-23 10:06:17
Suguru ARAKAWA @ashigeru

@kazunori_279 なんとなく、object-based STM を思い出しました

2009-12-23 10:39:43
【ヽ´ん`】 @dev_momen

@kazunori_279 Neo4jの場合は、普通にロックを使ってるみたいですね。ぜんぜん詳しく書いてないですが、FAQの1.4を。 http://wiki.neo4j.org/content/FAQ

2009-12-23 11:00:03
Kazunori Sato @kazunori_279

あ!近いかも。要はトランザクショナルでACIDなオブジェクトです。トランザクショナル・コンポーネントも近いかな RT @ashigeru: @kazunori_279 なんとなく、object-based STM を思い出しました

2009-12-23 11:03:45
Kazunori Sato @kazunori_279

これはクライアント側分散キャッシュとかあります? RT @nsharp_2ch: @kazunori_279 Neo4jの場合は、普通にロックを使ってるみたいですね。FAQの1.4を。 http://wiki.neo4j.org/content/FAQ

2009-12-23 11:06:03
Kazunori Sato @kazunori_279

HTML5やFlashのオブジェクトがすでにトランザクショナルでACIDで、#appengine 通じて同期/排他されればええのになぁ~というお話。#smalltable

2009-12-23 11:08:11
あおうさ @bluerabbit777jp

@kazunori_279 #appengine と同期するクライアントDB #smalltable はかなり興味ありますね。これほぼ間違いなくくる技術だと思います。今のうちに抑えておいて必要な時に備えたい。しかし、なかなか本気で手を出すに至っていない。

2009-12-23 11:13:43
Kazunori Sato @kazunori_279

ところでSTMってentity beanにすごく似てる気がするのは気のせいだろうか。オブジェクトレベルでのtx排他とか…

2009-12-23 11:15:40
Suguru ARAKAWA @ashigeru

トランザクション境界用の仮想ヒープを作って、そこのグローバルロックとっていいならそんなに難しくないかもですね。オブジェクトにUUIDふって変更があった部分だけ楽観ロックで差し替えるイメージ。シャドーイング系の実装が合いそう。

2009-12-23 11:16:03
Kazunori Sato @kazunori_279

@bluerabbit777jp 実はクライアントのSQLiteも要らないんじゃないかと思い始めてて、クライアントのオブジェクトがそのまま永続化/同期/排他されれば理想かなと。

2009-12-23 11:17:32
【ヽ´ん`】 @dev_momen

@kazunori_279 最新版ではread-only modeが追加されたそうですが、それを分散キャッシュを通して使えるのかまではちょっと分かりません・・・。(´・ω・`)

2009-12-23 11:18:16
Kazunori Sato @kazunori_279

@ashigeru 昔のObjectStoreは分散キャッシュで性能出してたので、キャッシュ間の整合性確保とかグラフのマージとかどうしてたのかな~と思ってます。

2009-12-23 11:20:06
Kazunori Sato @kazunori_279

.@nsharp_2ch リッチクライアントでオフライン利用も考えると、オブジェクトのグラフをそれぞれのローカルストアに保存して楽観排他とかほしいなぁ~と。

2009-12-23 11:22:32
Suguru ARAKAWA @ashigeru

@kazunori_279 Object Storeに詳しくないので見当違いかもしれませんが、STMの世界だと http://www.cs.rochester.edu/u/scott/papers/2004_TR839.pdf の3.2.1辺りが参考になるかも

2009-12-23 11:25:19
Kazunori Sato @kazunori_279

EJB 2のEntity Beanのインスタンスは(スレッドじゃなく)txレベルで楽観排他されて、永続化されて、ロールバックもするトランザクショナルなオブジェクトだったけど、これは常識なのかまめちしきなのか…?

2009-12-23 11:25:28
Kazunori Sato @kazunori_279

@ashigeru お!資料thxです!STM面白そうですね。。さっそく勉強します

2009-12-23 11:26:33
きしだൠ(K1S) @kis

@kazunori_279 EJB2ってついてるってことは、おっさん知識!

2009-12-23 11:27:20
Suguru ARAKAWA @ashigeru

@kazunori_279 グラフのマージはそれほど難しくなくて、 http://research.sun.com/scalable/pubs/OOPSLA2006.pdf の3. Transactional Factoriesあたりが参考になればいいなと

2009-12-23 11:27:31