SlideShare a Scribd company logo
1 of 40
Download to read offline
自己紹介
   Yohei Sasaki (@yssk22)
     CouchDB JP
     node.js JP
     relaxed
http://www.ipa.go.jp/about/pubcomme/2010
          03/201003cloud.pdf
IPAの報告書
   まあ、この場は、MongoDB を候補に入
    れてない時点で報告書として(ry
CouchDB JP @ 2010
   2010
     1月 Hackathon 開催
     3月 OSC Tokyo Spring
      ○ /w MongoDB, Lotus Notes, Redis
     ...
     ...
     ...
     12月 MongoDB & CouchDB 勉強会
参考:google 先生に聞いてみた
   CouchDB?lang=ja
     約 178,000 件
   MongoDB?lang=ja
     約 200,000 件
ところで CouchDB の 2010年
   CouchDB 1.0 released
     データが消えるバグがある幻のバージョン!
     1.0.1 に update してください


   2つの Distributed CouchDB
     CouchDB on Android
     BigCouch


   CouchOne によるサポート
     VP of Documentation from MySQL
     事例もたくさん
      ○ http://blog.couchone.com/
     NoSQL じゃないよ宣言
最近の話題
   Wikileaks も CouchDB で.
     http://pollen.nymphormation.org/afgwar/_des
     ign/afgwardiary/index.html

     簡単にコピーして raw data とアプリケー
     ションをゲットきます...
2011年
   個人的にコミュニティでやりたいこと
     Hack-a-thon / 3month


     CouchDB 自体で日本語サイト
      ○ リニューアル
      ○ 近々 github にて開発者募集します.
        node.js + CouchDB


     翻訳...?
      ○ 絶賛挫折中...
2010/11/30
id: yssk22 (CouchDB-JP)
BigCouchとは何か。
 資料を見た感じ
 実際に使って見た感じ
その前にCouch

Cluster
Of
Untrasted
Commodity
Hardware    の上で動くデータベース
もっとも稼働実績のあるCOUCH
   Ubuntu 9.10 以降の Ubuntu Desktop が
    入ったハードウェア
     desktopcouch と呼ばれるPIMソフトウェア


   P2P でデスクトップもサーバーも何で
    もかんでもつなぐ
     内部的には CouchDB の双方向レプリケー
      ションによる実装
     ぱっと見Dropbox的何か
今年の出来事.
だが、しかし
   こういうクラスタでは満足しない人たち
    がいた。
     Without the Clustering,
     it's just OuchDB
蛇足:
   CouchDB の開発者は元々Lotus
    Notes/Domino の開発者
     というかNotes/Dominoの設計を現代風にし
     たらCouchDBになった感じ


   Your data. Anywhere がスローガン。

   NoSQL なんてどうでもいいよ。
BigCouchとは何か。
   CoucDBが目指すClusterが何なのかはとも
    かくとして

   サーバーサイドでCouchDBのクラスタリン
    グを可能にし

   スケーラビリティと可用性を確保したもの


   普通のCouchDBにしか見えない
構成 – 要するに並べたもの
 http://example.com:5984/
Software Stack
            HTTP API

            chttpd

            Fabric
        DB操作の実行           shard の問い合わせ



     REXI              MEM3

                              差分レプリケーション
Software Stack / notes
   BigCouch オリジナルコンポーネント
     chttpd
         CouchDB 互換のHTTP Server.
     Fabric
      ○ Routing と Proxy
     MEM3
      ○ Sharding ロジック
     REXI
      ○ 並列クエリ
         MapReduce が複数台に渡って行われるときに必要
BigCouchの表: chttpd
   http://example.com:5984/_utils/
BigCouchの裏: CouchDB
   http://localhost:15984/_utils/
Fabric/mem3/rexi ...の前に
   bigcouch の etc/default.ini を確認

[cluster]
q=4         #   Shard の数
n=3         #   Shard ごとのコピー数
r=3         #   読み込み時の整合性確保数
w=1         #   書き込み時の整合性確保数

   Shard = CouchDB上の1つのデータベース
q=4, n=3, w=2, w=1
 4つのShardを準備
 bigcouchのインスタンス
  数に応じて分散される
q=4, n=3, w=2, r=1
   3つのShardに書き込み



             REXI PUT/POST
PUT/POST
q=4, n=3, w=2, r=1
   2つのwriteが成功した時点で終了
     3つめが完了したか
    どうかは気にしない


201 Created
q=4, n=3, w=2, r=1
   w と同じ
     読み込み時にレスポンスを返す前に読み込
    み確認する数
MapReduce View Index
 すべてのノードで実行
 リクエストの発生したノードが
     結果のマージ(ソート)
     (reduce関数が定義されていれば)最後の
     Rereduceを実行する


   REXI のおかげで"マージ"までの処理は
    並行実行される
使ってみた(1)
   中の人曰く、
    「ドキュメントはWebにあるものが全て」

   インストール
     ./configure
     make
     make install


   apt-get install erlang で入るerlangが古かっ
    たのでソースから入れた@Ubuntu 10.10
     otp_src_R13B03 以降?
使ってみた(2)
   ./bin/bigcouch で起動する

   etc/vm.args 重要
使ってみた (3)
   ノードの追加
     curl –X PUT
      http://{one_of_nodes}:5986/nodes/bigcouch@{host_
      added} –d {}

     :5986/nodes が管理用DB
     ノードを追加時に管理用DB間のreplicationが始
      まる
      ○ [info] [<0.131.0>] [--------] starting nodes ->
        'bigcouch@nodeb.localdomain' internal replication
      ○ [info] [<0.131.0>] [--------] starting dbs ->
        'bigcouch@nodeb.localdomain' internal replication
使ってみた (4)
   DBの追加
     curl –X PUT http://{one_of_nodes}:5984/test


   Document の追加
     curl –X PUT
     http://{one_of_nodes}:5984/test/foo –d {}



   もうここからはCouchDBの世界?
実験1. ドキュメントの分散確認
   実際は Consistent Hash で shard DBの中
    に入っている
     shard DB = shards/{range}/{dbname}
      ○ range はシャード数次第
      ○ Document ID でパーティショニング
      ○ curl -X GET
        http://192.168.203.128:5986/shards%2F55555555
        -aaaaaaa9%2Ftestdb/foo
        {"_id":"foo","_rev":"1-
        967a00dff5e02add41819138abb3284d"}
     Document ID を Sequential UUID で実装すると
     ちゃんと分散される
実験2. ノードのダウン (n=w)
   node数 >= w
     問題なし!


   node数 < w
     timeout が起こる
     timeout 時間内にnodeが復旧しても、接続中
     の client は timeout
実験3. ノードのダウン (n>w)
   サービスの継続性は n=w のときと同じ

   データの整合性は落ちる
     ノードが停止中のデータは復帰時に復旧されな
      い
     例: n = 2, w = 1 の時
     ○ document A は n 個 書き込まれている
        http://node1:5984/test1/doca
        http://node2:5984/test1/doca

     ○ document B は w 個 しか複製がない
        http://node2:5984/test1/docb
実験4. r=w が重要?
   書き込みデータの整合性が落ちた状態でも読
    み取りデータの整合性を高める

   例:
     ドキュメントの状態:
      ○ http://node1:5984/test1/doca
      ○ http://node2:5984/test1/doca
      ○ http://node2:5984/test1/docb
     r = 1:
      ○ GET http://node1:5984/docb => 404
     r = 2:
      ○ GET http://node1:5984/docb => 200 OK
      ○ 存在しないドキュメントでも別のノードを参照してく
         れる
トレードオフの関係
   q: シャード数
     増やせば増やすほど MapReduce の負荷が分散される


   n: 複製するシャード数
     増やせば増やすほどディスク容量を食う
     r <= n, w <= n でなければならない

   w: 書き込み保証数
     増やせば増やすほど書き込みレイテンシは下がるが、整合性が高くなる
      ○ n = r の場合は w = 1 でOK


   r: 読み込み保証数
     増やせば増やすほど読み込みレイテンシは下がるが、整合性が高くなる
      ○ n = w の場合は r = 1 でOK
運用は結構大変
   q, n, r, w, の各種調整
     可用性をどこまで確保するの? という話
     ぶっちゃけ CouchDBのレプリケーションで
     十分じゃね? と思えなくもない...


   クラスタの管理操作は 管理用DBを直接
    いじる必要がある...
     丌整合状態のドキュメントがどこにあって
     どうなっているのかはすぐにはわからない
おまけ: cloudant.com
   http://cloudant.com/

   CEO 曰く:
     ○ CouchDBに adhoc query がないのはつらい
     ○ CouchApp はドキュメントがないからあまり
       使われてないよ
     ○ node.js いいよね, node.js いいよね
まとめ
   BigCouch:
     可用性を高めた Clustered CouchDB
     CouchDB の レプリケーション機能とは別に
     独自モジュール (fabric, rexi, memc) で分散
     環境を実装

     そこそこ動くけど、使いこなすの難しい
      ○ 使うだけなら cloudant.com

More Related Content

What's hot

レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)
レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)
レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)Katsutoshi Kojima
 
Gluster fsにおいて内在するincident要因
Gluster fsにおいて内在するincident要因Gluster fsにおいて内在するincident要因
Gluster fsにおいて内在するincident要因TaikaiSebastianHirose
 
シーサーでのInfiniBand導入事例
シーサーでのInfiniBand導入事例シーサーでのInfiniBand導入事例
シーサーでのInfiniBand導入事例Naoto MATSUMOTO
 
ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例知教 本間
 
Stream processing and Norikra
Stream processing and NorikraStream processing and Norikra
Stream processing and NorikraSATOSHI TAGOMORI
 
Bgworkerで簡易クラスタ管理
Bgworkerで簡易クラスタ管理Bgworkerで簡易クラスタ管理
Bgworkerで簡易クラスタ管理Masahiko Sawada
 
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
10年効く分散ファイルシステム技術 GlusterFS & Red Hat StorageEtsuji Nakai
 
Pgcon2012 ori-20120224
Pgcon2012 ori-20120224Pgcon2012 ori-20120224
Pgcon2012 ori-20120224Manabu Ori
 
Cephのベンチマークをしました
CephのベンチマークをしましたCephのベンチマークをしました
CephのベンチマークをしましたOSSラボ株式会社
 
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」Takuya ASADA
 
Kyoto Tycoon Guide in Japanese
Kyoto Tycoon Guide in JapaneseKyoto Tycoon Guide in Japanese
Kyoto Tycoon Guide in JapaneseMikio Hirabayashi
 
Redis Intro Osc2010 Tokyo Spring
Redis Intro Osc2010 Tokyo SpringRedis Intro Osc2010 Tokyo Spring
Redis Intro Osc2010 Tokyo SpringMakoto Ohnami
 
C++のビルド高速化について
C++のビルド高速化についてC++のビルド高速化について
C++のビルド高速化についてAimingStudy
 
Xとかオワコン?
Xとかオワコン?Xとかオワコン?
Xとかオワコン?Naohiro Aota
 
Web Service on SSD
Web Service on SSDWeb Service on SSD
Web Service on SSDKazuho Oku
 
Drbd9資料 osc発表
Drbd9資料 osc発表Drbd9資料 osc発表
Drbd9資料 osc発表hkuroki
 
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜHUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜbasicinc_dev
 
Ctb57 with god7
Ctb57 with god7Ctb57 with god7
Ctb57 with god7kingtomo
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成弘毅 露崎
 

What's hot (20)

レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)
レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)
レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)
 
Gluster fsにおいて内在するincident要因
Gluster fsにおいて内在するincident要因Gluster fsにおいて内在するincident要因
Gluster fsにおいて内在するincident要因
 
シーサーでのInfiniBand導入事例
シーサーでのInfiniBand導入事例シーサーでのInfiniBand導入事例
シーサーでのInfiniBand導入事例
 
ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例
 
Stream processing and Norikra
Stream processing and NorikraStream processing and Norikra
Stream processing and Norikra
 
WDD2012_SC-004
WDD2012_SC-004WDD2012_SC-004
WDD2012_SC-004
 
Bgworkerで簡易クラスタ管理
Bgworkerで簡易クラスタ管理Bgworkerで簡易クラスタ管理
Bgworkerで簡易クラスタ管理
 
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
10年効く分散ファイルシステム技術 GlusterFS & Red Hat Storage
 
Pgcon2012 ori-20120224
Pgcon2012 ori-20120224Pgcon2012 ori-20120224
Pgcon2012 ori-20120224
 
Cephのベンチマークをしました
CephのベンチマークをしましたCephのベンチマークをしました
Cephのベンチマークをしました
 
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
 
Kyoto Tycoon Guide in Japanese
Kyoto Tycoon Guide in JapaneseKyoto Tycoon Guide in Japanese
Kyoto Tycoon Guide in Japanese
 
Redis Intro Osc2010 Tokyo Spring
Redis Intro Osc2010 Tokyo SpringRedis Intro Osc2010 Tokyo Spring
Redis Intro Osc2010 Tokyo Spring
 
C++のビルド高速化について
C++のビルド高速化についてC++のビルド高速化について
C++のビルド高速化について
 
Xとかオワコン?
Xとかオワコン?Xとかオワコン?
Xとかオワコン?
 
Web Service on SSD
Web Service on SSDWeb Service on SSD
Web Service on SSD
 
Drbd9資料 osc発表
Drbd9資料 osc発表Drbd9資料 osc発表
Drbd9資料 osc発表
 
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜHUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
 
Ctb57 with god7
Ctb57 with god7Ctb57 with god7
Ctb57 with god7
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
 

Viewers also liked

mathematical_notation
mathematical_notationmathematical_notation
mathematical_notationKenta Oono
 
Couch Db.0.9.0.Pub
Couch Db.0.9.0.PubCouch Db.0.9.0.Pub
Couch Db.0.9.0.PubYohei Sasaki
 
私の考えるドキュメント指向
私の考えるドキュメント指向私の考えるドキュメント指向
私の考えるドキュメント指向Yohei Yamamoto
 
Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発Hironao Sekine
 
Encode勉強会:GENCODE: The reference human genome annotation for The ENCODE Proje...
Encode勉強会:GENCODE: The reference human genome annotation for The ENCODE Proje...Encode勉強会:GENCODE: The reference human genome annotation for The ENCODE Proje...
Encode勉強会:GENCODE: The reference human genome annotation for The ENCODE Proje...Kenta Oono
 
Randomforestで高次元の変数重要度を見る #japanr LT
 Randomforestで高次元の変数重要度を見る #japanr LT Randomforestで高次元の変数重要度を見る #japanr LT
Randomforestで高次元の変数重要度を見る #japanr LTAkifumi Eguchi
 
機械学習と深層学習の数理
機械学習と深層学習の数理機械学習と深層学習の数理
機械学習と深層学習の数理Ryo Nakamura
 
基礎からのベイズ統計学 2章 勉強会資料
基礎からのベイズ統計学 2章 勉強会資料基礎からのベイズ統計学 2章 勉強会資料
基礎からのベイズ統計学 2章 勉強会資料at grandpa
 
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理Ken'ichi Matsui
 
統計学の基礎の基礎
統計学の基礎の基礎統計学の基礎の基礎
統計学の基礎の基礎Ken'ichi Matsui
 
Building Healthier Communities: TEDMED 2016
Building Healthier Communities: TEDMED 2016Building Healthier Communities: TEDMED 2016
Building Healthier Communities: TEDMED 2016Luminary Labs
 
UX at York: starting small and scaling up (#nclxux)
UX at York: starting small and scaling up (#nclxux)UX at York: starting small and scaling up (#nclxux)
UX at York: starting small and scaling up (#nclxux)Ned Potter
 
機械学習の理論と実践
機械学習の理論と実践機械学習の理論と実践
機械学習の理論と実践Preferred Networks
 
情報幾何学の基礎、第7章発表ノート
情報幾何学の基礎、第7章発表ノート情報幾何学の基礎、第7章発表ノート
情報幾何学の基礎、第7章発表ノートKenta Oono
 
The Drift Brand Book
The Drift Brand BookThe Drift Brand Book
The Drift Brand BookDrift
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual TalksYuya Unno
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
 
UX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and ArchivesUX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and ArchivesNed Potter
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerLuminary Labs
 
Designing Teams for Emerging Challenges
Designing Teams for Emerging ChallengesDesigning Teams for Emerging Challenges
Designing Teams for Emerging ChallengesAaron Irizarry
 

Viewers also liked (20)

mathematical_notation
mathematical_notationmathematical_notation
mathematical_notation
 
Couch Db.0.9.0.Pub
Couch Db.0.9.0.PubCouch Db.0.9.0.Pub
Couch Db.0.9.0.Pub
 
私の考えるドキュメント指向
私の考えるドキュメント指向私の考えるドキュメント指向
私の考えるドキュメント指向
 
Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発
 
Encode勉強会:GENCODE: The reference human genome annotation for The ENCODE Proje...
Encode勉強会:GENCODE: The reference human genome annotation for The ENCODE Proje...Encode勉強会:GENCODE: The reference human genome annotation for The ENCODE Proje...
Encode勉強会:GENCODE: The reference human genome annotation for The ENCODE Proje...
 
Randomforestで高次元の変数重要度を見る #japanr LT
 Randomforestで高次元の変数重要度を見る #japanr LT Randomforestで高次元の変数重要度を見る #japanr LT
Randomforestで高次元の変数重要度を見る #japanr LT
 
機械学習と深層学習の数理
機械学習と深層学習の数理機械学習と深層学習の数理
機械学習と深層学習の数理
 
基礎からのベイズ統計学 2章 勉強会資料
基礎からのベイズ統計学 2章 勉強会資料基礎からのベイズ統計学 2章 勉強会資料
基礎からのベイズ統計学 2章 勉強会資料
 
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
 
統計学の基礎の基礎
統計学の基礎の基礎統計学の基礎の基礎
統計学の基礎の基礎
 
Building Healthier Communities: TEDMED 2016
Building Healthier Communities: TEDMED 2016Building Healthier Communities: TEDMED 2016
Building Healthier Communities: TEDMED 2016
 
UX at York: starting small and scaling up (#nclxux)
UX at York: starting small and scaling up (#nclxux)UX at York: starting small and scaling up (#nclxux)
UX at York: starting small and scaling up (#nclxux)
 
機械学習の理論と実践
機械学習の理論と実践機械学習の理論と実践
機械学習の理論と実践
 
情報幾何学の基礎、第7章発表ノート
情報幾何学の基礎、第7章発表ノート情報幾何学の基礎、第7章発表ノート
情報幾何学の基礎、第7章発表ノート
 
The Drift Brand Book
The Drift Brand BookThe Drift Brand Book
The Drift Brand Book
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 
UX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and ArchivesUX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and Archives
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 
Designing Teams for Emerging Challenges
Designing Teams for Emerging ChallengesDesigning Teams for Emerging Challenges
Designing Teams for Emerging Challenges
 

Similar to CouchDB JP & BigCouch

Couch DB in 15minutes
Couch DB in 15minutesCouch DB in 15minutes
Couch DB in 15minutesYohei Sasaki
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Masahito Zembutsu
 
Docker handson
Docker handsonDocker handson
Docker handsonkoda3
 
HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法Masahito Zembutsu
 
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもんMasahito Zembutsu
 
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーションDocker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーションMasahito Zembutsu
 
FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係moai kids
 
Hadoop book-2nd-ch3-update
Hadoop book-2nd-ch3-updateHadoop book-2nd-ch3-update
Hadoop book-2nd-ch3-updateTaisuke Yamada
 
20150101勉強会 dokku alt
20150101勉強会 dokku alt20150101勉強会 dokku alt
20150101勉強会 dokku altShugo Numano
 
Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Masahito Zembutsu
 
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!Midori Oge
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Masahiro Nagano
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1Ryosuke IWANAGA
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでRyo Nakamaru
 
Bossan dentoo
Bossan dentooBossan dentoo
Bossan dentookubo39
 
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Naoki Nagazumi
 
第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西Masahide Yamamoto
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますinfinite_loop
 

Similar to CouchDB JP & BigCouch (20)

Couch DB in 15minutes
Couch DB in 15minutesCouch DB in 15minutes
Couch DB in 15minutes
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
 
Docker handson
Docker handsonDocker handson
Docker handson
 
HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法
 
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもん
 
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーションDocker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
 
FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係FluentdとRedshiftの素敵な関係
FluentdとRedshiftの素敵な関係
 
Hadoop book-2nd-ch3-update
Hadoop book-2nd-ch3-updateHadoop book-2nd-ch3-update
Hadoop book-2nd-ch3-update
 
20150101勉強会 dokku alt
20150101勉強会 dokku alt20150101勉強会 dokku alt
20150101勉強会 dokku alt
 
Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴
 
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
 
Fig
FigFig
Fig
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
 
Bossan dentoo
Bossan dentooBossan dentoo
Bossan dentoo
 
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
 
第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
 
MongoDB
MongoDBMongoDB
MongoDB
 

More from Yohei Sasaki

20120317 CloudFoundry #pyfes
20120317 CloudFoundry #pyfes20120317 CloudFoundry #pyfes
20120317 CloudFoundry #pyfesYohei Sasaki
 
MongoDB on CloudFoundry
MongoDB on CloudFoundryMongoDB on CloudFoundry
MongoDB on CloudFoundryYohei Sasaki
 
MongoDB on CloudFoundry
MongoDB on CloudFoundryMongoDB on CloudFoundry
MongoDB on CloudFoundryYohei Sasaki
 
BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門Yohei Sasaki
 
RelaxCafe@CouchDB break.4
RelaxCafe@CouchDB break.4RelaxCafe@CouchDB break.4
RelaxCafe@CouchDB break.4Yohei Sasaki
 
CouchDB+OpenSocial - OSC 2009/Fall Tokyo (En)
CouchDB+OpenSocial - OSC 2009/Fall Tokyo (En)CouchDB+OpenSocial - OSC 2009/Fall Tokyo (En)
CouchDB+OpenSocial - OSC 2009/Fall Tokyo (En)Yohei Sasaki
 
CouchDB+OpenSocial - OSC 2009/Fall Tokyo
CouchDB+OpenSocial - OSC 2009/Fall TokyoCouchDB+OpenSocial - OSC 2009/Fall Tokyo
CouchDB+OpenSocial - OSC 2009/Fall TokyoYohei Sasaki
 
前回のまとめ
前回のまとめ前回のまとめ
前回のまとめYohei Sasaki
 
Finding Your Data with Views
Finding Your Data with ViewsFinding Your Data with Views
Finding Your Data with ViewsYohei Sasaki
 
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Yohei Sasaki
 

More from Yohei Sasaki (16)

20120317 CloudFoundry #pyfes
20120317 CloudFoundry #pyfes20120317 CloudFoundry #pyfes
20120317 CloudFoundry #pyfes
 
CloudFoundry@home
CloudFoundry@homeCloudFoundry@home
CloudFoundry@home
 
MongoDB on CloudFoundry
MongoDB on CloudFoundryMongoDB on CloudFoundry
MongoDB on CloudFoundry
 
MongoDB on CloudFoundry
MongoDB on CloudFoundryMongoDB on CloudFoundry
MongoDB on CloudFoundry
 
membase
membasemembase
membase
 
Bp study39 nodejs
Bp study39 nodejsBp study39 nodejs
Bp study39 nodejs
 
BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門
 
CouchDB
CouchDBCouchDB
CouchDB
 
RelaxCafe@CouchDB break.4
RelaxCafe@CouchDB break.4RelaxCafe@CouchDB break.4
RelaxCafe@CouchDB break.4
 
Media On Couch
Media On CouchMedia On Couch
Media On Couch
 
CouchDB+OpenSocial - OSC 2009/Fall Tokyo (En)
CouchDB+OpenSocial - OSC 2009/Fall Tokyo (En)CouchDB+OpenSocial - OSC 2009/Fall Tokyo (En)
CouchDB+OpenSocial - OSC 2009/Fall Tokyo (En)
 
CouchDB+OpenSocial - OSC 2009/Fall Tokyo
CouchDB+OpenSocial - OSC 2009/Fall TokyoCouchDB+OpenSocial - OSC 2009/Fall Tokyo
CouchDB+OpenSocial - OSC 2009/Fall Tokyo
 
前回のまとめ
前回のまとめ前回のまとめ
前回のまとめ
 
Finding Your Data with Views
Finding Your Data with ViewsFinding Your Data with Views
Finding Your Data with Views
 
Why CouchDB
Why CouchDBWhy CouchDB
Why CouchDB
 
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22
 

Recently uploaded

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 

Recently uploaded (8)

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 

CouchDB JP & BigCouch

  • 1.
  • 2. 自己紹介  Yohei Sasaki (@yssk22)  CouchDB JP  node.js JP  relaxed
  • 3. http://www.ipa.go.jp/about/pubcomme/2010 03/201003cloud.pdf IPAの報告書
  • 4. まあ、この場は、MongoDB を候補に入 れてない時点で報告書として(ry
  • 5. CouchDB JP @ 2010  2010  1月 Hackathon 開催  3月 OSC Tokyo Spring ○ /w MongoDB, Lotus Notes, Redis  ...  ...  ...  12月 MongoDB & CouchDB 勉強会
  • 6. 参考:google 先生に聞いてみた  CouchDB?lang=ja  約 178,000 件  MongoDB?lang=ja  約 200,000 件
  • 7. ところで CouchDB の 2010年  CouchDB 1.0 released  データが消えるバグがある幻のバージョン!  1.0.1 に update してください  2つの Distributed CouchDB  CouchDB on Android  BigCouch  CouchOne によるサポート  VP of Documentation from MySQL  事例もたくさん ○ http://blog.couchone.com/  NoSQL じゃないよ宣言
  • 8. 最近の話題  Wikileaks も CouchDB で.  http://pollen.nymphormation.org/afgwar/_des ign/afgwardiary/index.html  簡単にコピーして raw data とアプリケー ションをゲットきます...
  • 9. 2011年  個人的にコミュニティでやりたいこと  Hack-a-thon / 3month  CouchDB 自体で日本語サイト ○ リニューアル ○ 近々 github にて開発者募集します.  node.js + CouchDB  翻訳...? ○ 絶賛挫折中...
  • 13. もっとも稼働実績のあるCOUCH  Ubuntu 9.10 以降の Ubuntu Desktop が 入ったハードウェア  desktopcouch と呼ばれるPIMソフトウェア  P2P でデスクトップもサーバーも何で もかんでもつなぐ  内部的には CouchDB の双方向レプリケー ションによる実装  ぱっと見Dropbox的何か
  • 15. だが、しかし  こういうクラスタでは満足しない人たち がいた。  Without the Clustering, it's just OuchDB
  • 16. 蛇足:  CouchDB の開発者は元々Lotus Notes/Domino の開発者  というかNotes/Dominoの設計を現代風にし たらCouchDBになった感じ  Your data. Anywhere がスローガン。  NoSQL なんてどうでもいいよ。
  • 17. BigCouchとは何か。  CoucDBが目指すClusterが何なのかはとも かくとして  サーバーサイドでCouchDBのクラスタリン グを可能にし  スケーラビリティと可用性を確保したもの  普通のCouchDBにしか見えない
  • 18. 構成 – 要するに並べたもの http://example.com:5984/
  • 19. Software Stack HTTP API chttpd Fabric DB操作の実行 shard の問い合わせ REXI MEM3 差分レプリケーション
  • 20. Software Stack / notes  BigCouch オリジナルコンポーネント  chttpd  CouchDB 互換のHTTP Server.  Fabric ○ Routing と Proxy  MEM3 ○ Sharding ロジック  REXI ○ 並列クエリ  MapReduce が複数台に渡って行われるときに必要
  • 21. BigCouchの表: chttpd  http://example.com:5984/_utils/
  • 22. BigCouchの裏: CouchDB  http://localhost:15984/_utils/
  • 23. Fabric/mem3/rexi ...の前に  bigcouch の etc/default.ini を確認 [cluster] q=4 # Shard の数 n=3 # Shard ごとのコピー数 r=3 # 読み込み時の整合性確保数 w=1 # 書き込み時の整合性確保数  Shard = CouchDB上の1つのデータベース
  • 24. q=4, n=3, w=2, w=1  4つのShardを準備  bigcouchのインスタンス 数に応じて分散される
  • 25. q=4, n=3, w=2, r=1  3つのShardに書き込み REXI PUT/POST PUT/POST
  • 26. q=4, n=3, w=2, r=1  2つのwriteが成功した時点で終了  3つめが完了したか どうかは気にしない 201 Created
  • 27. q=4, n=3, w=2, r=1  w と同じ  読み込み時にレスポンスを返す前に読み込 み確認する数
  • 28. MapReduce View Index  すべてのノードで実行  リクエストの発生したノードが  結果のマージ(ソート)  (reduce関数が定義されていれば)最後の Rereduceを実行する  REXI のおかげで"マージ"までの処理は 並行実行される
  • 29. 使ってみた(1)  中の人曰く、 「ドキュメントはWebにあるものが全て」  インストール  ./configure  make  make install  apt-get install erlang で入るerlangが古かっ たのでソースから入れた@Ubuntu 10.10  otp_src_R13B03 以降?
  • 30. 使ってみた(2)  ./bin/bigcouch で起動する  etc/vm.args 重要
  • 31. 使ってみた (3)  ノードの追加  curl –X PUT http://{one_of_nodes}:5986/nodes/bigcouch@{host_ added} –d {}  :5986/nodes が管理用DB  ノードを追加時に管理用DB間のreplicationが始 まる ○ [info] [<0.131.0>] [--------] starting nodes -> 'bigcouch@nodeb.localdomain' internal replication ○ [info] [<0.131.0>] [--------] starting dbs -> 'bigcouch@nodeb.localdomain' internal replication
  • 32. 使ってみた (4)  DBの追加  curl –X PUT http://{one_of_nodes}:5984/test  Document の追加  curl –X PUT http://{one_of_nodes}:5984/test/foo –d {}  もうここからはCouchDBの世界?
  • 33. 実験1. ドキュメントの分散確認  実際は Consistent Hash で shard DBの中 に入っている  shard DB = shards/{range}/{dbname} ○ range はシャード数次第 ○ Document ID でパーティショニング ○ curl -X GET http://192.168.203.128:5986/shards%2F55555555 -aaaaaaa9%2Ftestdb/foo {"_id":"foo","_rev":"1- 967a00dff5e02add41819138abb3284d"}  Document ID を Sequential UUID で実装すると ちゃんと分散される
  • 34. 実験2. ノードのダウン (n=w)  node数 >= w  問題なし!  node数 < w  timeout が起こる  timeout 時間内にnodeが復旧しても、接続中 の client は timeout
  • 35. 実験3. ノードのダウン (n>w)  サービスの継続性は n=w のときと同じ  データの整合性は落ちる  ノードが停止中のデータは復帰時に復旧されな い  例: n = 2, w = 1 の時 ○ document A は n 個 書き込まれている  http://node1:5984/test1/doca  http://node2:5984/test1/doca ○ document B は w 個 しか複製がない  http://node2:5984/test1/docb
  • 36. 実験4. r=w が重要?  書き込みデータの整合性が落ちた状態でも読 み取りデータの整合性を高める  例:  ドキュメントの状態: ○ http://node1:5984/test1/doca ○ http://node2:5984/test1/doca ○ http://node2:5984/test1/docb  r = 1: ○ GET http://node1:5984/docb => 404  r = 2: ○ GET http://node1:5984/docb => 200 OK ○ 存在しないドキュメントでも別のノードを参照してく れる
  • 37. トレードオフの関係  q: シャード数  増やせば増やすほど MapReduce の負荷が分散される  n: 複製するシャード数  増やせば増やすほどディスク容量を食う  r <= n, w <= n でなければならない  w: 書き込み保証数  増やせば増やすほど書き込みレイテンシは下がるが、整合性が高くなる ○ n = r の場合は w = 1 でOK  r: 読み込み保証数  増やせば増やすほど読み込みレイテンシは下がるが、整合性が高くなる ○ n = w の場合は r = 1 でOK
  • 38. 運用は結構大変  q, n, r, w, の各種調整  可用性をどこまで確保するの? という話  ぶっちゃけ CouchDBのレプリケーションで 十分じゃね? と思えなくもない...  クラスタの管理操作は 管理用DBを直接 いじる必要がある...  丌整合状態のドキュメントがどこにあって どうなっているのかはすぐにはわからない
  • 39. おまけ: cloudant.com  http://cloudant.com/  CEO 曰く: ○ CouchDBに adhoc query がないのはつらい ○ CouchApp はドキュメントがないからあまり 使われてないよ ○ node.js いいよね, node.js いいよね
  • 40. まとめ  BigCouch:  可用性を高めた Clustered CouchDB  CouchDB の レプリケーション機能とは別に 独自モジュール (fabric, rexi, memc) で分散 環境を実装  そこそこ動くけど、使いこなすの難しい ○ 使うだけなら cloudant.com