トップスポーツチームの監督に教わる秘訣
この論文では、氏が発見した原則を要約し、その原則をいかにしてソフトウェア開発に応用するかを説明します。
作者 Steven Robbins, 翻訳者 編集部 投稿日 2008年6月19日 午前6時41分
非常に有名なソーシャルアプリケーションであるTwitter(サイト)の基調を成すアーキテクチャーが、近ごろ議論の対象となっている。Twitterはダウンタイムのインスタンス(source)があり、チームが問題の対処に乗り出すにつれて(source)、人気のある機能がいくつか登場した(source)。Twitterが前進しようとしている現状を観察することで、どんなことが分かるのか?全ユーザフォロワーのメッセージをコピーしたりしませんが、実際はもっと効率的かもしれません。現在データベースに入り、タイムラインが必要なときは、 データベースからタイムラインを構築し、毎回ではないけれども、メモリー内にキャッシュします。書き込みが非常に多いので、単にキャッシュをアップデートするためにデータベースを多く使用します。ですから、キャッシュには大量の(メッセージの)コピーがあります。でも、ディスクには1つのみです。われわれのアーキテクチャーについては、今後むしろ書き込みを多数おこなうことに近いかもしれません。そうすれば読み出しがずっと高速になるからです。SISメッセージアーキテクチャーから脱皮する可能性が、高容量のサイトやアプリケーションですでに人気を博しているData Shardingのようなデータテクニック(source)を使用するという道を切り開く。Randy Shoup氏は、shardingを使用し、ある程度の高いスケーラビリティーを目的としてeBayがシステムを設計した方法について語った(参考記事・英語)。
定義からしてデータはステートフルなので、データベース層で最も難しい問題は発生します。ここで、はじめのアクセスパスに対して並行にデータを分割します。たとえば、現在ユーザデータは20ホスト以上に分割されていて、各ホストはユーザの20分の1を含んでいます。ユーザ数が増加するにつれ、またわれわれが格納する各ユーザのデータが増大するにしたがって、ホストを追加し、さらにユーザを再分割します。繰り返しになりますが、アイテム、注文、アカウントごとに同じアプローチをとっています。さまざまなユースケースがデータの区画化のための、さまざまなスキーマを使用しています。Bogdan Nicolau氏は、データベースshardingの概要(source)について書いた。Bogdan氏は、アプリケーションのためにデータを分割する場所とその方法について決定する方法について議論した。決定する際の重要点は、
言わんとしていることは、たとえ選択したロジックがテーブルを分割しても、0ジョインが必要で、命令や複数のテーブルの分割を必要とする可能性のある制限条項を常に念頭に置いておかなければなりません。Bogdan氏は、shardingすることのアプリケーションサイド(source)に移った。複数のコードサンプルを提供して、サンプル問題とうまくやっていくことの他に、Bogdan氏は作業する理由を以下のように述べた。
見て分かるように、マッピングテーブルにデータを追加する必要があるので、書き込みの部分に重点がおかれています。読み出しの場合、関連するデータアルゴリズムの分割はもはや問題ではありません。
見て分かるように、マッピングテーブルにデータを追加する必要があるので、書き込みの部分に重点がおかれています。読み出しの場合、関連するデータアルゴリズムの分割はもはや問題ではありません。
InfoQには、パフォーマンスや拡張可能性に関するリソースがある。ここで参照できる(参考記事リンク)。
原文はこちらです:http://www.infoq.com/news/2008/06/twitter-and-sharding
セキュアなIT基盤と付帯運用サービス”SecureOnline”
12/16 ~野村総合研究所が提案~ 「不況を乗り切る!効果的なIT投資を考えるセミナー」
12/5 CSQ会員限定技術情報交換会にてJCP議長が標準化について語る
この記事では、私達がどのようにして大規模(240人月、10万行強)でインドとオランダの開発者も参加したスクラム・プロジェクトを成功させたのかを示しています。
Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。参加者はカンファレンスで各々の発表や、各セッションへの参加、諸外国のエンジニアとの出会い、ステージ上で DearXPを熱演などの様々な思い出を抱えて、無事日本に戻ってきました。
マイクロソフトのRobert Bellが、SilverlightとJavaを使用したインターオペラビリティのシナリオを紹介し、サンプルコードを例にとってアーキテクチャの手引きを提供します。
Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。サブミッションが選択された人、そうでない人も含めて、個々の目的意識の確認、膨大なプログラムから聞きたいセッションの選択、旅行の準備、プレゼンテーションの準備の期間を終えて、無事当日を迎えました。
筆者はアジャイルソフトウェア開発についての年に一度の国際会議であるAgile2008に初めて参加してきました。今年の日本からの参加者の数は14名にも及び、発表者は5名、受け持ったセッションは8つに及び、例年にない活躍を見せました。なぜ今年のAgile2008では、これほど多くの日本人が参加し発表に至ったのか? そのレポートをお届けします。
エスエムジーでは、Java全般を対象にしたトラブルシューティングサービス「JaTS」を提供しています。この記事では、前回に引き続き、JaTSにて蓄積したトラブル事例とその解決ノウハウの一部をお送りしている「Javaトラブルシューティングメールマガジン」(JTSMM)の総集編として、過去2ヶ月のトラブル事例と追加情報をダイジェストとして提供いたします。
この記事では、モデル駆動アプローチがうまく機能しない、または機能しなくなることによって期待した結果が実現できなくなる 8 つの理由について書きたいと思います。
No comments
返信