オープンソースカンファレンス2008Tokyo/Fall

一応取ったメモをのせておきます。


〜話題のHadoopとかって何なのよ?メジャーな分散ファイルシステムをざっくり比較詳解〜

分散ファイルシステムが必要とされる背景
分散ファイルシステムはスケーラブルです。
・データの需要は指数関数的に増えている

現在の状況
安いハードウェアで、スケーラブルで高速性、耐障害性、信頼性の高い分散ファイルシステムの出現。

簡単に分散並列処理プログラムがかけるような、アプリケーションフレームワークの登場。


[Lustre File System]
オープンソースソフトウェアの分散ファイルシステム

OSCというクライアント

MGSとはメタデータ
 クラスタ情報の管理

MDSとはメタデータ

OSSとは、オブジェクトストレージサーバ
 OST

メタデータと、データを分離するのはどの分散ファイルシステムでも同じ。

セルという、二台のサーバで一つの単位を使っている。
object strage cell

特徴
ネットワークに非常に多くのネットワークを使う事ができる。
ハードウェアがディスクの冗長性を保証している。

OSTが増えると、リニアにIO性能が上がる。
テラバイトクラスのファイルシステムに対応。物理ファイルを1OSTもしくは複数のOST二対応して言う。POSIX APIをサポート。多くの短いトランザクションより、少なめの長いトランザクションが得意
特定の物理ディスクにIOが集中するようなトランザクションは苦手。

[Hadoop]
GFSとMapReduceとBigTableオープンソース

概要
 拡張性
 経済性
 効率性
 信頼性 ←信頼性をソフトウェアで担保。自動的に複数コピーを作成する事で高信頼性を担保

 2000ノードクラスで実行、将来は10000ノードを目標
 HWの故障を前提に保証

構成要素
HDFS(Java実装)分散ファイルシステム
Hadoop Map/Reduce(Java実装)分散処理フレームワーク
hBase(Java実装)分散型

ファイルはブロックという単位に分割され、それぞれレプリケーションされる。
ファイルシステムはそれらのブロックをMapを基に復元する。

重要な概念
Hadoop
実装の名前の事

Map/Reduce
Hadoop上で実行するプログラムが採用しているプログライングスタイル。

Job
必要なクラスやライブラリを集めたもの

Task
 個々のmapやreduceお処理を実行するプログラム

HDFS


特徴
汎用ファイルシステムではない
大サイズのファイルアクセスを得意とする。

Name NodeとData Nodeに分かれている。

レプリケーション
 ファイルはブロック単位に分割される。最後のブロック以外、サイズは同じ
 ブロックサイズとレプリケート数はファイルによって返る事ができる。

Blockreport(データノードのすべてのブロックリスト)とheartbeat

起動時にはsafemodeで立ち上がり、ファイルをチェックする。
場合によってはレプリケートが始まる。

メタデータの持続
 
FsImageとEditLogはHDFSの中心データ構造。これが壊れると起動しない。 



〜やっぱりすごい!Memcahed!!最新MySQLサポートツールズのご紹介
Memchached
吉岡さんがみにきていた。
つっこみがちょっと怖かったす。


なぜ使うか、規模が追いつかなくなる。sql実行頻度、データ量が多い。
とかなっていくと、キャッシュが有効利用できなくなる。サーバ間で共有できない。

スラブ・アロケータ
クライアントはサーバリストへのキーをハッシュする。

telnetから直接たたいてもいいらしい。11211番ポート

telnet接続でのデモをみた。
headerを含めて6000行から7000行との事
テキストプロトコル
単にkeyを入れたら早く帰ってくる。
memchahedは馬鹿である。でも早い。
コンシステントハッシュ法。

参考資料。
タンジェント.org

gihyo memcachdを知り尽くす。という記事を読め。


MEM(mysql Enterprise Monitor)
モニターできるツールの詳解。

Mysql Workbench
ER図の作成が可能なデータベースデザインツール。
逆生成も可能。


MySQL Proxy
クライアントとMySQLサーバの間に入る。
フィルタリングとかクエリーインジェクションができる。
ロードバランサー的に使える。
Luaで動作の拡張が行える


MySQL Connector C++
JDBCAPIC++で使える様にするというもの。


CMake
UnixにおけるMake。
特徴はクロスプラットフォーム