スティルハウスの書庫の書庫

はてなダイアリーで書いてた「スティルハウスの書庫」を移転してきました。

2009-06-01から1ヶ月間の記事一覧

JavaWorld DAY「BigtableとMapReduceがもたらす“クラウドの最終進化”とは」

JavaWorld DAY 2009でのセッション発表のお知らせです。タイトル:「BigtableとMapReduceがもたらす“クラウドの最終進化”とは」詳細URL: http://www.idg.co.jp/expo/jwday/2009/session/#S-7

クラウド構築はどんだけ大変かメモ

Underneath the Covers at Google: Current Systems and Future Directions The Joys of Real Hardware Typical first year for a new cluster: ~0.5 overheating (power down most machines in <5 mins, ~1-2 days to recover) ~1 PDU failure (~500-1000 m…

大規模サイトのスケーラビリティ確保について

スケーラビリティに関するベストプラクティス:eBayからの教訓 Facebookのデータセンターに見るMySQL活用事例 - MySQLカンファレンス QCon Tokyo 2009 に行ってきました。二日目のメモ

KVSのメモ

http://d.hatena.ne.jp/shozzy/20090302/1235962175 そう考えると、先にも書いたとおり「開発効率という点でどうなのかなぁ?」と思ってしまう。Javaで業務アプリ書くときに、「RDB、SQLは使わないで、Mapをファイルに永続化させるようにしてね」とか縛られ…

BPStudy#22 の資料です

BPStudy#22のプレゼン資料はこちらです。

セミナーのお知らせ:GAEとBigtableってどう使う?

Google App Engine(GAE)と、Googleの分散データストアBigtableに関する技術セミナーです。Googleが公開するBigtableに関する論文のほか、「Google I/O 2008」「同2009」で発表された情報を中心に紹介します。参加申し込み:こちらからお申し込みください日…

Bigtableの内部構造

Bigtableの概要 Bigtableとは 構造化データを管理するための分散化ストレージ 膨大な数の汎用サーバーをつなげてペタバイト規模のデータを扱えるよう設計されている Bigtableの歴史 およそ7人年の開発作業を経て、2005年4月からプロダクション利用を開始 200…

GAEのサーバー構成とリクエストの流れ

<Google App Engine Stackの構成(引用元)> GAE Stackの特徴 現在の利用状況 8万以上のアプリを収容 140M PV/day 20万人以上の開発者が利用 統合環境を提供 サーバーの構築や管理が不要。デプロイが容易 ログ管理、管理コンソールや各種ツールを提供 スケ…

Google App Engineのtips集

(随時更新中です。間違いなどありましたらコメントをお願いします!)このページのtinyurl: http://tinyurl.com/gaetips Datastoreのtips Bigtableの内部構造 BigtableによるDatastoreの実装 Datastoreによるクエリの実装 トランザクションとエンティティグ…

Datastoreによるクエリの実装

クエリ=インデックス+スキャン すべてのクエリは「インデックス+スキャン」に変換される Bigtableはクエリをサポートしていない。GAEのアプリが実行するすべてのクエリは、インデックスとスキャンの組み合わせに変換される Datastoreのインデックスとは …

BigtableによるDatastoreの実装

Bigtableにできること Bigtableは「ソート済みのExcel表」のようなデータ構造 個々のセルは過去の履歴を残せる 巨大なkey-value store。個々の行の「キー」があれば「値」を高速に取得できる キーの辞書順でソートされている スキーマレス(各行ごとにカラム…

トランザクションとエンティティグループ

Datastoreのトランザクション エンティティグループ単位でACIDを保証 Bigtableは行単位のACIDしか保証しない。Datastoreではエンティティグループ単位でのACIDを保証している 楽観的排他制御(optimistic lock)を実装 エンティティグループのrootエンティテ…

Datastoreのtips

Datastoreのパフォーマンス Datastoreのパフォーマンスは、エンティティの数とは無関係 保存されているエンティティが1件でも、1000件でも、1000万件でも、パフォーマンスに変化はない Datastore performance doesn't depend on how many entities you have …

開発環境とプロダクション環境の違い

開発環境のDatastore 開発環境ではトランザクションはサポートされない ロールバックしても値は元に戻らない http://groups.google.com/group/google-appengine-java/browse_thread/thread/815312d5d152a5c5

Big Table: A Distributed Structured Storage Systemを見たメモ

Big Table: A Distributed Structured Storage System <Googleの典型的なクラスターノード構成> クラスターノード構成 クラスターノード Intelベースの安いPC Linux OS Scheduler slave GFS chunk server Cluster scheduling master Lock service (Chubby)…

KVSやMapReduceはクラウドの真価ではない

ちょっと逆説的に書きました。key-value store (KVS)やMapReduceは、クラウドにはなくてはならない重要な技術ではありますが、それらの技術単体では一般のエンジニアにとってそれほど価値はありません。もともと分散ストレージや分散処理技術は昔から学術研…

The Softer Side Of Schemas - Mapping Java Persistence Standards To the Google App Engine Datastoreを見たメモ

The Softer Side Of Schemas - Mapping Java Persistence Standards To the Google App Engine Datastore Datastoreについて Datastoreとは トランザクショナル パーティション化されている 階層化データモデル スキーマレス Bigtableベース RDBやSQL DBでは…

Offline Processing on App Engine: a Look Aheadを見たメモ

Offline Processing on App Engine: a Look Ahead 背景 バックグラウンド処理やバッチ処理の要求がとても多い cronはあるが、たくさんの処理や高頻度の処理には向かない 概要 現状はApp Engine Labsの扱い:APIが未確定。課金方法も未定 Python版が6/18にリ…

App Engine: Now Serving Javaを見たメモ

App Engine: Now Serving Java Servlet API HTTP Sessionは永続化され、どのクラスタノードからでも同じセッション内容を取得できる App Engine API jar パッチリリースのアップグレードは自動的に行われ、再デプロイの必要はない ApiProxy APIコールはApiPr…

Building Scalable, Complex Apps on App Engineを見たメモ

Building Scalable, Complex Apps on App Engine List properties 01:40 List propertyとは何か? 複数の値を持てるプロパティ 順序付きリスト LPのメリット one-to-many関係にあるデータをコンパクトに扱える tupleやlistのようなデータを簡単に保存できる …

From Spark Plug to Drive Train: Life of an App Engine Requestを見たメモ

From Spark Plug to Drive Train: Life of an App Engine Request <Google App Engine Stackの構成(引用元)> Life of a request リクエストの受信 0:15 リクエストはクライアントから最も近いGoogleデータセンターに到着 Google内部ネットワークを経由し…

Working with Google App Engine Modelsを見たメモ

Working with Google App Engine Modelsを見たメモ Bigtableにできないこと joinできない (非正規化するか、ループを回して自前でjoinするしかないか?) (「正規化するな、JOIN済みのでっかいテーブルを作れ」) (List Propertyを使う) (merge join、…

Building Scalable Web Apps with App Engineを見たメモ

Google I/O 2008 - Building Scalable Web Apps with App Engine を見たメモ 書き込みはコストが高い 0:06 アプリケーションのパフォーマンスを決めるのは、書き込み処理の実装方法 読み込み処理は桁違いに速いので、あまり重要ではない Entity Groupを使わ…

Google I/OのGAE関連ビデオとそのメモ一覧

()内は個人的に面白かった度 Google I/O 2008 http://sites.google.com/site/io/google-io-sessions Working with Google App Engine Models(☆☆)メモ Datastore/Bigtableのデータモデルとその制約などを紹介 Best Practices - Building a Production Qua…

Bigtable論文を読んだメモ

Bigtable: A Distributed Storage System for Structured Dataをざっと読んだ感想: Bigtableは単なるソートされたkey-valueペアだ Multidimensionalという言葉に惑わされない方がよい レコードをイミュータブルにして履歴を残し、たまにGCするのはpgsqlやIn…

「クエリしたら負け」―RISCのようなBigtableとの付き合い方

昔のCISC vs RISCを思い出した。BigtableはかなりプリミティブなRISCのようなデータストア。高級な処理はできないが、それがひとつのブレークスルーを生み出している。RDB的発想だと、できるだけSQLの数を少なくしつつ、SQLでできることはコードでは書かない…

ひが氏「GAEは“老害”のリトマス試験紙」

Seasarカンファレンスのひが氏の発言より: Bigtable(の制約)を見て、またはサンドボックスの制限を見てGAEはダメだと思ったら「老害」の危険性がある ガツンと言われた。 GAEの制限には意味がある。... 犠牲を払うことでスケールするサービスを提供する。…

GAEのDatastore解説ビデオを見たメモ

http://sites.google.com/site/io/under-the-covers-of-the-google-app-engine-datastoreこのビデオを見たときのメモ(気になったポイントだけ): scan: 2 types of scan prefix scan range scan (Bigtableはscanがミソ、というかscanしかできない) entit…

Under the Covers of the Google App Engine Datastore

ひがさんのblogより: http://d.hatena.ne.jp/higayasuo/ http://sites.google.com/site/io/under-the-covers-of-the-google-app-engine-datastoreもう既に見ているかもしれないけど、一応ご報告。Google App Engine(Bigtable)の内部のデータのもちかたが詳し…

MapReduceは副作用なしでどこまで書けるのかな?

例えば、普通にExcelで式を貼り付けるだけなら副作用のあることはしてないから、みんながExcelの式で実装しているくらいのこと(集計とかフィルタとか)はMapReduceでもできますね(もちろんExcelマクロは除きます)。項目が100万行ある見積書でもさくっと合…