GAEとScalaの話を聞いてきた

 BPStudy#22に参加してきました。


===
2009-06-26 BPStudy 19:00-
@EBISU303 501会議室

●スティルハウス鈴木

ご都合ドットコム Flexクライアント GAE/J

Flexメインに使ってる人 会場にゼロw

Datastoreは使いにくいんじゃない
スケーラブルなwebアプリのためのベストプラクティス環境
Datastore ←→ RDBMS

クラスタリング環境は難易度がとたんに上がる
そこをgoogleが担保

memcacheのデータが消えるタイミング
だいたい大丈夫(まつだ)

ユーザ指定秒数で消える
追い出されて消える 容量

パフォーマンスのためにmemcache
ステートはserverが変わると見れない 変数とか

h2は別のノードに振られたときに見れない memcacheは見える

appserver サンドボックスによる制限
30秒かかるリクエスト 例外発生
時間のかかる処理はcronかtask queueで
レスポンス送出時 チャンクで

strutsはノーサポート

スケールアウト
高負荷時の自動デプロイ 50分ぐらい?
軽いアプリでも分散してる感じある

safety limitはある

1回のクエリで最大1000件まで

startindexでも1000までしか指定できない
なぜなら1300がなめないとわからない

1000をみつけてブックマークして、300番目をする

どうしてもそうしたければ連番振るのもいい パフォーマンスは落ちるけど

どんなクエリでもページングできるライブラリがある python
ページに表示する

「最後のページ数」はフェッチできない
下からなめればいいから「最後のページ」は取れる
ページ数は不明になる

order順を何にするかによって、はまることがある ページングで
日付は同一になる場合があるので キーとプロパティを組み合わせてユニークにしてしまう

クエリ
クエリはインデックス+スキャンで実装

クエリは使ったら負け byひが
リストプロパティとか

イコールフィルターならインデックスジョインは起こらない
イコーリティじゃないフィルターをかけた場合、順番を決めてとってくる場合
ソートにインデックスが必要だから

どうなるか
1個のエンティティに対して5000までしかインデックスが作れない
容量が爆発する

コンポジットインデックス
爆発しやすい 不用意に使わない

RDBの関連をそのまま当てはめるとはまる
部門 1 に従業員 10000だと、1人更新中にほかの人が各自更新しようとすると9999がリトライになる
分散エンティティグループ

個々のエンティティ
更新スピード
1~10回/秒

join出来ない
非正規化して対処する

group by が出来ない
集約したい値は集約用のエンティティを用意

toUpper, toLowerできないのであらかじめした値をプロパティに持っておく

OR !=はそのまま書けない ドモルガンの法則で書き換えが必要

●yuroyoro
Scala

Lift

SDK内のdatanucleus-enhancerを1.1.3に差し替える

JVMで動きます

ファーストクラス関数
静的型付け+型推論

対話型インタプリタある

カリー化 部分適用

パターンマッチ

Lift
h2やmysql使う

controllerない
リクエスト来ると描画を始める
snipetでいろいろ処理する
外にアクセスしたりっていうのはmodelでやる
カスタムタグチック

viewドリブン

レンダリングを保持した関数が実行できる
レンダリングのときに必要なパラメータを
渡した関数オブジェクトを呼び出せる

コード書く側はあまり意識しなくていい

javascriptのarguments.calleeみたいな

動的SQL
s2jdbc的な

create tableとか画面上を流れる

関数型で作るメリット
イベントに対してボタンの割り当て
動的に関数を作れる
===

勉強会
Keep
会場運営ありがとうございました
Problem
途中から急激に冷えた 寒い
Try

じぶん
Keep
 GAEの入門から発展まで聞けたのでよかった
Problem
 もともとの体調不良にいろいろ直撃した
 懇親会キャンセルしてほんとすみません
Try
 大きな部屋は温度調節難しいのが当たり前なので、何か上着を持っていこう
 GAEとDataStoreはごちゃごちゃ考える前に使う

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中