『Couchbase MeetUP Tokyo - #7 - 祝ver 2.5!ユーザ事例もあるよ -』に行ってきたのメモ

2014/02/25 19:00
品川フロントビル 株式会社ネクストで開催
http://couchbasejpcommunity.doorkeeper.jp/events/8914

=============================================

couch base@viber

ユーザー事例

DB Architecture

1st
in-memory DB

2nd
redis cluster
mongo cluster

mongo dosen't scale
redis with no sharding
redis sharder not manageable and robust

3rd
Couchebase clusters
Couchebase backup clusters
over 300 application servers
6 couchebase clusters
total 100-120 couchebase servers

=============================================

CouchebaseとDEVOPS

WZICORP
モバイルソーシャルゲーム
ネイティブアプリとハイブリッド

CLIインターフェイスが揃っているのでDEVOPSしやすいよ

=============================================

Ameba Couchebaseの利用事例

高塩さん

サイバーエージェントでは開発した人が運用している

アメーバブログを当初始めた
その後アメーバピグの開発を始めた
ガールフレンド(仮)

当初会員の情報、ブログの情報、認証情報すべて同じDBに入れていた
その後認証情報を切り分けた

アプリケーションごとにログイン画面があったが、
守るべき場所をひらすために認証画面を一本化した

ログインアプリとログインさせたい側のアプリケーション
ログインアプリ側とログインセッションにそれぞれCouchbaseを利用している

CouchbaseのドキュメントIDを受渡している

8core 32GB SAS HDD * 8台
リプレース前は4core 12GB SATA * 8台だった

Centos6.2
Couchebase Server 2.0.1 CE
Bucket * 1

トラブル

2.0.0から2.0.1
RPM updateでCompaction Daemonがcrashする
ディスクの容量が増え続けてしまった
clean installで解消した

Metadata Purge
MetadataがDiskに残る
2.2.0にUpgradeで解消予定

カウチベースを選んだ理由

expireが効くから
memcacheプロトコルが使えた

=============================================

Couchebase Server Release Note 2.5解説

土田さん

2014/2/14 EE2.5.0リリース
2014/2/14 CE2.2.0リリース
build番号は一緒

2.2のおさらい

XDCEのプロトコルmemcachedプロトコルに変更
metadata purge設定が追加(削除されたアイテムのメタデータを除去することが可能に)
閲覧アカウント接待可能

2.5の重要な機能

・ラック・アウェアネス(EE限定)
ラックやAZなど物理的に従属している環境を気にしながらレプリケーションしてくれる
Server Groupごとにサーバノードを定義できます

・XDCRデータセキュリティ(EE限定)
データ暗号化機能
今までは暗号化されていなかった
通信経路は信頼されているネットワーク上という前提だった

・接続制御の最適化
11210ポートからmemcachedプロトコルを通じて転送される
Client SDKは影響ないよ
Couchbase社に問い合わせたところ後方互換性はあると問い合わせ済

2.5へアップグレードする際の注意事項

・対象クラスタが2以上のレプリカを設定している場合、いくつかのvBucketはクラスタ全体に配布される
・XDCR暗号化のためにポート番号があらたに4つ予約されているので注意が必要

Releate Noteでは書かれていないこと

・RAM QuotaがWebコンソールから設定変更可能になっている
・auto failoverのデフォルト値が30秒から120秒に変更されている
・Metadata Purge Intervalが0.04(=1時間)まで設定できるようになっている

=============================================

N!QL

next generation query language
ニッケルと読みます

SQLライクに検索できる言語

標準でViewという検索のための仕組みがあり、非常に高速です
ただしViewは事前に検索する項目を特定しておく必要があり、任意の項目で自由に検索したりソートしておいたりといったことができない
SQLに慣れている人にとって、NoSQLデータベースでの検索は手を出しにくかったりした

結構なSQLが書ける

count,avg,like,group by,having by,limitなどが使える

CouchebaseはJSON形式でデータを保持しているので、必然的に検索した結果はJSON形式となります
また、結果だけでなく、項目の指定の仕方も多少異なります
構造化されていた場合は"."でつなげて指定
配列の構造を持ったデータの場合もhoge[0]やhoge[1]も指定できる

JSONのような構造化された文章むけに拡張された構文がある

・配列の長さを条件に指定
・項目の存在地チェック
・ドキュメントのIDを取得
など、まだまだいっぱいある
紹介しきれる量ではない

過度な期待はNG

SQLライクであり、そのものではありません
・検索のみで、挿入、更新、削除はできません
・Developer Preview2なのであくまでも開発者向け
・お世辞にも速いとはいえません(T_T)

実際に試したい方はオンラインでものページが有ります
http://query.pub.couchbase.com/tutorial/

幾つか制限がある

スキーマレスなので テーブルのjoinといった概念がない

自分自身にジョインするような構文はある