Download - Couchbase 30-dbtechshowcase-tokyo2014
![Page 1: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/1.jpg)
COUCHBASE SERVER 30で広がるNOSQL採用事例例
株式会社アットウェア 河村 康爾 db tech showcase Tokyo 2014
本セッションのゴール
bull Couchbaseのアーキテクチャをご理理解いただき
bull 様々な利利用事例例を通しておぉ使えるかもと思っていただく
自己紹介bull 株式会社アットウェア
bull 河村 康爾 ijokarumawak
bull Couchbaseの普及活動コンサル導入支援
bull Couchbase-‐‑‒JPコミュニティ運営
bull Mobileハッカソン 優勝チームとしてSFでプレゼン
httpswwwyoutubecomwatchv=BH3Vb_9pcN8t=155
COUCHBASE CONNECTbull 延べ1000人以上の参加者
bull Enterprise Developer Operations Architecture Mobile Customer Generalのカテゴリで様々なセッション
httpwwwcouchbasecomconnect
COUCHBASE HISTORY
1820
211322
2510
30
201201
201212
20130613201309
201402
201405
20141006
DCP Shared Thread Pool13Tunable Memory Disk IO priority13
Stream-based ViewsXDCR13Graceful failover Delta node recovery13
Incremental backuprestore13XDCR pause amp resume13
Encrypted access13Cluster-wide diagnostics13
hellip and more
Mobile
性能bull 非常に高いスループット
bull 1ノードで100K~simOPS (ON RAM)
bull 30でさらに高性能にConnectでは5台のEC2インスタンス(c34xlarge)で3M OPSのデモ
bull 1ms未満のレイテンシ
bull 台数に応じてリニアにスケール
httpwwwcouchbasecomconnectagendageneral-session-welcome-keynote
httpinfocouchbasecom2014-Fall-Benchmark-Results-LPhtml
COUCHBASEで 解決できる問題
COUCHBASE SERVERの特徴
bull 柔軟なスキーマ
bull 一貫した高性能
bull 伸縮自在のスケーラビリティ
bull 高可用性
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
READバッファ rarr 高性能ストレージ
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
SoR13(System of Record)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
MANAGED CACHE
httpwwwslidesharenetCouchbasehowto-nosql-30-webinar-series-couchbase-101
REACTIVE PROGRAMING
httpwwwslidesharenetRuslanMeshenbergnetflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 2: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/2.jpg)
本セッションのゴール
bull Couchbaseのアーキテクチャをご理理解いただき
bull 様々な利利用事例例を通しておぉ使えるかもと思っていただく
自己紹介bull 株式会社アットウェア
bull 河村 康爾 ijokarumawak
bull Couchbaseの普及活動コンサル導入支援
bull Couchbase-‐‑‒JPコミュニティ運営
bull Mobileハッカソン 優勝チームとしてSFでプレゼン
httpswwwyoutubecomwatchv=BH3Vb_9pcN8t=155
COUCHBASE CONNECTbull 延べ1000人以上の参加者
bull Enterprise Developer Operations Architecture Mobile Customer Generalのカテゴリで様々なセッション
httpwwwcouchbasecomconnect
COUCHBASE HISTORY
1820
211322
2510
30
201201
201212
20130613201309
201402
201405
20141006
DCP Shared Thread Pool13Tunable Memory Disk IO priority13
Stream-based ViewsXDCR13Graceful failover Delta node recovery13
Incremental backuprestore13XDCR pause amp resume13
Encrypted access13Cluster-wide diagnostics13
hellip and more
Mobile
性能bull 非常に高いスループット
bull 1ノードで100K~simOPS (ON RAM)
bull 30でさらに高性能にConnectでは5台のEC2インスタンス(c34xlarge)で3M OPSのデモ
bull 1ms未満のレイテンシ
bull 台数に応じてリニアにスケール
httpwwwcouchbasecomconnectagendageneral-session-welcome-keynote
httpinfocouchbasecom2014-Fall-Benchmark-Results-LPhtml
COUCHBASEで 解決できる問題
COUCHBASE SERVERの特徴
bull 柔軟なスキーマ
bull 一貫した高性能
bull 伸縮自在のスケーラビリティ
bull 高可用性
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
READバッファ rarr 高性能ストレージ
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
SoR13(System of Record)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
MANAGED CACHE
httpwwwslidesharenetCouchbasehowto-nosql-30-webinar-series-couchbase-101
REACTIVE PROGRAMING
httpwwwslidesharenetRuslanMeshenbergnetflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 3: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/3.jpg)
自己紹介bull 株式会社アットウェア
bull 河村 康爾 ijokarumawak
bull Couchbaseの普及活動コンサル導入支援
bull Couchbase-‐‑‒JPコミュニティ運営
bull Mobileハッカソン 優勝チームとしてSFでプレゼン
httpswwwyoutubecomwatchv=BH3Vb_9pcN8t=155
COUCHBASE CONNECTbull 延べ1000人以上の参加者
bull Enterprise Developer Operations Architecture Mobile Customer Generalのカテゴリで様々なセッション
httpwwwcouchbasecomconnect
COUCHBASE HISTORY
1820
211322
2510
30
201201
201212
20130613201309
201402
201405
20141006
DCP Shared Thread Pool13Tunable Memory Disk IO priority13
Stream-based ViewsXDCR13Graceful failover Delta node recovery13
Incremental backuprestore13XDCR pause amp resume13
Encrypted access13Cluster-wide diagnostics13
hellip and more
Mobile
性能bull 非常に高いスループット
bull 1ノードで100K~simOPS (ON RAM)
bull 30でさらに高性能にConnectでは5台のEC2インスタンス(c34xlarge)で3M OPSのデモ
bull 1ms未満のレイテンシ
bull 台数に応じてリニアにスケール
httpwwwcouchbasecomconnectagendageneral-session-welcome-keynote
httpinfocouchbasecom2014-Fall-Benchmark-Results-LPhtml
COUCHBASEで 解決できる問題
COUCHBASE SERVERの特徴
bull 柔軟なスキーマ
bull 一貫した高性能
bull 伸縮自在のスケーラビリティ
bull 高可用性
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
READバッファ rarr 高性能ストレージ
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
SoR13(System of Record)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
MANAGED CACHE
httpwwwslidesharenetCouchbasehowto-nosql-30-webinar-series-couchbase-101
REACTIVE PROGRAMING
httpwwwslidesharenetRuslanMeshenbergnetflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 4: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/4.jpg)
COUCHBASE CONNECTbull 延べ1000人以上の参加者
bull Enterprise Developer Operations Architecture Mobile Customer Generalのカテゴリで様々なセッション
httpwwwcouchbasecomconnect
COUCHBASE HISTORY
1820
211322
2510
30
201201
201212
20130613201309
201402
201405
20141006
DCP Shared Thread Pool13Tunable Memory Disk IO priority13
Stream-based ViewsXDCR13Graceful failover Delta node recovery13
Incremental backuprestore13XDCR pause amp resume13
Encrypted access13Cluster-wide diagnostics13
hellip and more
Mobile
性能bull 非常に高いスループット
bull 1ノードで100K~simOPS (ON RAM)
bull 30でさらに高性能にConnectでは5台のEC2インスタンス(c34xlarge)で3M OPSのデモ
bull 1ms未満のレイテンシ
bull 台数に応じてリニアにスケール
httpwwwcouchbasecomconnectagendageneral-session-welcome-keynote
httpinfocouchbasecom2014-Fall-Benchmark-Results-LPhtml
COUCHBASEで 解決できる問題
COUCHBASE SERVERの特徴
bull 柔軟なスキーマ
bull 一貫した高性能
bull 伸縮自在のスケーラビリティ
bull 高可用性
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
READバッファ rarr 高性能ストレージ
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
SoR13(System of Record)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
MANAGED CACHE
httpwwwslidesharenetCouchbasehowto-nosql-30-webinar-series-couchbase-101
REACTIVE PROGRAMING
httpwwwslidesharenetRuslanMeshenbergnetflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 5: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/5.jpg)
COUCHBASE HISTORY
1820
211322
2510
30
201201
201212
20130613201309
201402
201405
20141006
DCP Shared Thread Pool13Tunable Memory Disk IO priority13
Stream-based ViewsXDCR13Graceful failover Delta node recovery13
Incremental backuprestore13XDCR pause amp resume13
Encrypted access13Cluster-wide diagnostics13
hellip and more
Mobile
性能bull 非常に高いスループット
bull 1ノードで100K~simOPS (ON RAM)
bull 30でさらに高性能にConnectでは5台のEC2インスタンス(c34xlarge)で3M OPSのデモ
bull 1ms未満のレイテンシ
bull 台数に応じてリニアにスケール
httpwwwcouchbasecomconnectagendageneral-session-welcome-keynote
httpinfocouchbasecom2014-Fall-Benchmark-Results-LPhtml
COUCHBASEで 解決できる問題
COUCHBASE SERVERの特徴
bull 柔軟なスキーマ
bull 一貫した高性能
bull 伸縮自在のスケーラビリティ
bull 高可用性
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
READバッファ rarr 高性能ストレージ
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
SoR13(System of Record)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
MANAGED CACHE
httpwwwslidesharenetCouchbasehowto-nosql-30-webinar-series-couchbase-101
REACTIVE PROGRAMING
httpwwwslidesharenetRuslanMeshenbergnetflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 6: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/6.jpg)
性能bull 非常に高いスループット
bull 1ノードで100K~simOPS (ON RAM)
bull 30でさらに高性能にConnectでは5台のEC2インスタンス(c34xlarge)で3M OPSのデモ
bull 1ms未満のレイテンシ
bull 台数に応じてリニアにスケール
httpwwwcouchbasecomconnectagendageneral-session-welcome-keynote
httpinfocouchbasecom2014-Fall-Benchmark-Results-LPhtml
COUCHBASEで 解決できる問題
COUCHBASE SERVERの特徴
bull 柔軟なスキーマ
bull 一貫した高性能
bull 伸縮自在のスケーラビリティ
bull 高可用性
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
READバッファ rarr 高性能ストレージ
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
SoR13(System of Record)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
MANAGED CACHE
httpwwwslidesharenetCouchbasehowto-nosql-30-webinar-series-couchbase-101
REACTIVE PROGRAMING
httpwwwslidesharenetRuslanMeshenbergnetflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 7: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/7.jpg)
COUCHBASEで 解決できる問題
COUCHBASE SERVERの特徴
bull 柔軟なスキーマ
bull 一貫した高性能
bull 伸縮自在のスケーラビリティ
bull 高可用性
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
READバッファ rarr 高性能ストレージ
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
SoR13(System of Record)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
MANAGED CACHE
httpwwwslidesharenetCouchbasehowto-nosql-30-webinar-series-couchbase-101
REACTIVE PROGRAMING
httpwwwslidesharenetRuslanMeshenbergnetflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 8: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/8.jpg)
COUCHBASE SERVERの特徴
bull 柔軟なスキーマ
bull 一貫した高性能
bull 伸縮自在のスケーラビリティ
bull 高可用性
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
READバッファ rarr 高性能ストレージ
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
SoR13(System of Record)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
MANAGED CACHE
httpwwwslidesharenetCouchbasehowto-nosql-30-webinar-series-couchbase-101
REACTIVE PROGRAMING
httpwwwslidesharenetRuslanMeshenbergnetflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 9: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/9.jpg)
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
READバッファ rarr 高性能ストレージ
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
SoR13(System of Record)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
MANAGED CACHE
httpwwwslidesharenetCouchbasehowto-nosql-30-webinar-series-couchbase-101
REACTIVE PROGRAMING
httpwwwslidesharenetRuslanMeshenbergnetflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 10: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/10.jpg)
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
READバッファ rarr 高性能ストレージ
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
SoR13(System of Record)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
MANAGED CACHE
httpwwwslidesharenetCouchbasehowto-nosql-30-webinar-series-couchbase-101
REACTIVE PROGRAMING
httpwwwslidesharenetRuslanMeshenbergnetflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 11: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/11.jpg)
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
SoR13(System of Record)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
MANAGED CACHE
httpwwwslidesharenetCouchbasehowto-nosql-30-webinar-series-couchbase-101
REACTIVE PROGRAMING
httpwwwslidesharenetRuslanMeshenbergnetflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 12: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/12.jpg)
READバッファ rarr 高性能ストレージ
Web App
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
SoR13(System of Record)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
MANAGED CACHE
httpwwwslidesharenetCouchbasehowto-nosql-30-webinar-series-couchbase-101
REACTIVE PROGRAMING
httpwwwslidesharenetRuslanMeshenbergnetflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 13: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/13.jpg)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
SoR13(System of Record)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
MANAGED CACHE
httpwwwslidesharenetCouchbasehowto-nosql-30-webinar-series-couchbase-101
REACTIVE PROGRAMING
httpwwwslidesharenetRuslanMeshenbergnetflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 14: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/14.jpg)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
SoR13(System of Record)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
MANAGED CACHE
httpwwwslidesharenetCouchbasehowto-nosql-30-webinar-series-couchbase-101
REACTIVE PROGRAMING
httpwwwslidesharenetRuslanMeshenbergnetflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 15: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/15.jpg)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
SoR13(System of Record)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
MANAGED CACHE
httpwwwslidesharenetCouchbasehowto-nosql-30-webinar-series-couchbase-101
REACTIVE PROGRAMING
httpwwwslidesharenetRuslanMeshenbergnetflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 16: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/16.jpg)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
MANAGED CACHE
httpwwwslidesharenetCouchbasehowto-nosql-30-webinar-series-couchbase-101
REACTIVE PROGRAMING
httpwwwslidesharenetRuslanMeshenbergnetflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 17: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/17.jpg)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
MANAGED CACHE
httpwwwslidesharenetCouchbasehowto-nosql-30-webinar-series-couchbase-101
REACTIVE PROGRAMING
httpwwwslidesharenetRuslanMeshenbergnetflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 18: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/18.jpg)
READバッファ rarr 高性能ストレージ
Web AppWeb App Web App
DNSLB
Web Scale
MANAGED CACHE
httpwwwslidesharenetCouchbasehowto-nosql-30-webinar-series-couchbase-101
REACTIVE PROGRAMING
httpwwwslidesharenetRuslanMeshenbergnetflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 19: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/19.jpg)
MANAGED CACHE
httpwwwslidesharenetCouchbasehowto-nosql-30-webinar-series-couchbase-101
REACTIVE PROGRAMING
httpwwwslidesharenetRuslanMeshenbergnetflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 20: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/20.jpg)
REACTIVE PROGRAMING
httpwwwslidesharenetRuslanMeshenbergnetflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 21: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/21.jpg)
REACTIVE PROGRAMING
httpwwwcouchbasecomconnectagendaefficient-data-access-reactive-programming-rxjava
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 22: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/22.jpg)
2 なにが起きても
稼働し続けるシステムを構築したい
HAウルトラ
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 23: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/23.jpg)
その前に アーキテクチャの話
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 24: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/24.jpg)
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 25: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/25.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 26: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/26.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 27: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/27.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 28: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/28.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
Bucket
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 29: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/29.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 30: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/30.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
vB
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 31: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/31.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 32: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/32.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 33: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/33.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App Server
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 34: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/34.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 35: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/35.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 36: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/36.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 37: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/37.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 38: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/38.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 39: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/39.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 40: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/40.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 41: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/41.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 42: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/42.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 43: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/43.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 44: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/44.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024
Bucket
1
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 45: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/45.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
App ServerCB SDK
CB 2 CB 3Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 46: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/46.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
App ServerCB SDK
CB 2
act
CB 3
act
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 47: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/47.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 48: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/48.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
x 341 x 341 x 342
Cluster Map
x 342 x 341 x 341
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 49: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/49.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 50: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/50.jpg)
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 51: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/51.jpg)
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
リバランス
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 52: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/52.jpg)
CB 4CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 53: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/53.jpg)
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 5 6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 54: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/54.jpg)
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 55: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/55.jpg)
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 56: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/56.jpg)
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 57: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/57.jpg)
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 58: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/58.jpg)
CB 4
act
rep
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
45
6
1 23
4 56
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 59: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/59.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 60: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/60.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
フェイルオーバ
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 61: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/61.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4 5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 62: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/62.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 63: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/63.jpg)
CB 1
CONSISTENT HASHレプリカリバランスフェイルオーバ
act
rep
App ServerCB SDK
CB 2
act
rep
CB 3
act
rep
Bucket
x 1024act
rep x 1024 x rep
Bucket
1
vB
vB
2 3
4 6
1 23
4
5
cb = Couchbaseconnect(ldquocb1rdquo)user = cbget(ldquouser-‐‑‒789rdquo) SDK vBID = hash(ldquouser-‐‑‒789rdquo) node = clusterMapget(vBID) return nodeget(ldquouser-‐‑‒789rdquo)
Cluster Map
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 64: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/64.jpg)
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 65: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/65.jpg)
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 66: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/66.jpg)
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 67: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/67.jpg)
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 68: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/68.jpg)
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone)
クラスタ内レプリカampフェイルオーバ
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 69: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/69.jpg)
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group (RackZone) Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 70: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/70.jpg)
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
1 23
4 56
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 71: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/71.jpg)
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 72: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/72.jpg)
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 73: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/73.jpg)
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 74: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/74.jpg)
CB 4
act
rep
CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
act
rep
CB 2
act
rep
CB 3
act
rep
1 2 3
4
5
6
123
45
6
Group 1 Group 2
Region
Rack Zone Awareness
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 75: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/75.jpg)
CB 4CB 1
HAウルトラ
httpwwwcouchbasecomconnectagendareaching-highest-level-disaster-recovery-multi-site-replication
CB 2 CB 3
Group 1 Group 2
Region
Rack Zone Awareness
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 76: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/76.jpg)
HAウルトラ
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region1
CB 4CB 1 CB 2 CB 3
Group 1 Group 2Region2
XDCR
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 77: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/77.jpg)
3 フォーマットの異異なるデータを収集蓄積して分析したい
WRITEバッファ rarr 分析用データストレージ
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 78: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/78.jpg)
WRITEバッファ rarr 分析用データストレージ
XDCRConnector
N1QL + xDBCElasticsearch amp Kibana
CEP
httpenwikipediaorgwikiInternet_of_Things
30のTunable Memoryによってキーメタデータの制限がなくなりより大量量のデータを保存可能に
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 79: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/79.jpg)
クエリ
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 80: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/80.jpg)
VIEW
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 81: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/81.jpg)
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 82: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/82.jpg)
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 83: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/83.jpg)
VIEW
bull Map JSONの任意の項目で二次インデックスを生成
bull Reduce Mapで生成したキー単位で集計
bull ベストプラクティス 二次インデックス用途でリアルタイム性がクリティカル or 要素が有限な場合はインデックス用ドキュメントの生成が吉
item_777 name ldquocoffeerdquo category ldquosoft-‐‑‒drinkrdquo
cat_soft-‐‑‒drink items [ldquo777rdquo ldquo888rdquo hellip]
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 84: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/84.jpg)
ELASTICSEARCH連携bull Elasticsearchはデータベースか
bull Couchbase ConnectセッションでのDemo
bull オブジェクトを保存して取得する簡単な操作
bull ESとCBの違いをデモ
bull Elasticsearch query 51 msget 34 ms インデクシング等のオーバヘッド
bull Couchbase 045 mshttpwwwcouchbasecomconnectagendaintegrating-elasticsearch-real-time-kibana
XDCR
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 85: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/85.jpg)
コマーシャル
httpwwwapresscom9781430266136
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 86: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/86.jpg)
LUCID WORKSbull Couchbaseのパートナー
bull ldquoFusionrdquo Apache Solrベースのエンタープライズ検索索エンジン
bull XDCRを利利用してニアリアルタイムにCouchbase Serverに保存したドキュメントをインデックス
bull Contextual Experience Data Driven decision
bull Processing Data amp Find Signalshttpwwwcouchbasecomconnectagendapartner-keynote-lucidworks
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 87: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/87.jpg)
N1QL
httpquerypubcouchbasecomtutorial1
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 88: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/88.jpg)
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 89: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/89.jpg)
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 90: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/90.jpg)
N1QL
httpquerypubcouchbasecomtutorial1
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 91: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/91.jpg)
N1QLパイプライン
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 92: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/92.jpg)
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 93: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/93.jpg)
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 94: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/94.jpg)
N1QL XDBCドライバ
httpwwwcouchbasecomconnectagendaenterprise-reporting-visualization-bi-etl-couchbase-n1ql-odbc-jdbc
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 95: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/95.jpg)
N1QL エコシステム
httpwwwcouchbasecomconnectagendaan-n1ql-for-every-query
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 96: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/96.jpg)
利利用事例例
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 97: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/97.jpg)
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 98: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/98.jpg)
VIBER
初代 第二世代 第三世代
内製のインメモリDB
Sharder
MongoDB cluster
Redis cluster
x 150 servers
x 100+ servers Couchbase Server120 servers6 clusters
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 99: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/99.jpg)
EBAYbull Couchbase Server以外にも様々なデータベースを利利用「適材適所」が大事
bull Couchbase Serverの良良いところ
bull 低コストで高いスケーラビリティ
bull Web規模のKVによる読み書き性能
bull スキーマの柔軟性
bull オープンソースでありエンタープライズモデルであること
bull eBay Marketplace
bull 1億+のアクティブ購入者と販売者6億+の商品
bull 日に20億+のページビュー800億+のデータベースアクセス
bull 5+ペタバイトのサイトストレージ容量量80+ペタバイトのデータ分析用ストレージ容量量
httpwwwcouchbasecomconnectagendacouchbase-ebay
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 100: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/100.jpg)
EBAYbull マルチチャネルプロダクトカタログ
bull 512GB RAM 16TB SSD x 4node x 2DC
bull 双方向XDCR
bull Authトークン
bull 128GB RAM 1TB HDD x 3node cluster x 3DC
bull 3DCで双方向XDCR
bull 今後適用範囲を拡大予定
httpwwwcouchbasecomconnectagendacouchbase-ebay
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 101: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/101.jpg)
LINKED INbull 世界最大のプロフェッショナル向けSNS
bull データ参照のスケーリング
bull データベース内の全てのデータをCouchbase ServerのRAMに展開
bull ユーザのフォロー情報仕事の情報
bull Hadoopを利利用してオフラインでキャッシュを作成
bull MemcachedからCouchbase Serverへ移行行
bull MongoDBやRedisも検討したがCBを採用
bull memcached互換レプリカリバランス
bull コールドキャッシュの問題を解決
bull Couchbase Server専任チームがある
bull SALTやIngraphsといった内製ツールを利利用
Web App
httpwwwcouchbasecomconnectagendacouchbase-linkedin
XDCR
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 102: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/102.jpg)
HIPPObull Java based Open Source CMS (Jackrabbit Spring)
bull 花屋のジレンマ
bull データをパーソナライズし動的なWebサイトを生成
bull ビッグデータを顧客ターゲティングに活用
bull ユーザの状態過去実績ペルソナ
bull 数ミリ秒で大量量の計算
bull Couchbase採用の理理由 Scalability amp Performance
bull HIPPOユーザの事例例 WELEDA Randstad Dutch Police
httpwwwcouchbasecomconnectagendagaining-actionable-insights-big-data
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 103: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/103.jpg)
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイ
ルアプリを開発したい
MOBILEソリューション
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 104: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/104.jpg)
MOBILEソリューション
Couchbase Lite
SyncGateway
Couchbase13Server
bull モバイル端末に組み込み可能なローカルドキュメントDBとSDKのセット
bull pushpull型レプリケーション
bull オフラインで稼働するAppオンライン時にデータ同期
bull ユーザ認証
bull チャネル データセットをグループ分け
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 105: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/105.jpg)
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 106: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/106.jpg)
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 107: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/107.jpg)
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 108: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/108.jpg)
COUCHBASE CONNECT APP
httpwwwcouchbasecomconnectagendasolving-iot-m2m-data-access-challenges
httpsgithubcomFireflyLogiccouchbase-connect-14
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 109: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/109.jpg)
MOBILE BALLOONbull Androidデバイス Couchbase Lite
bull Laptop Couchbase Server amp Sync GW
bull WiFiレンジから外れてもデバイスに保存戻ったら同期再開
httpwwwcouchbasecomconnectagendacouchbase-mobile-balloon-demo
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 110: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/110.jpg)
国内での利利用事例例
httpwwwcouchbasecom
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 111: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/111.jpg)
サイバード様
httpwwwcybirdcojp
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 112: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/112.jpg)
SCSK殿
httpswwwscskjpproductcommoncouchbase
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 113: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/113.jpg)
まとめ 重要なのでもう一度度
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 114: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/114.jpg)
4大利利用動機
1 WebアプリWebサイトの表示を高速にしてより良良いユーザ体験を提供したい
2 なにが起きても稼働し続けるシステムを構築したい
3 フォーマットの異異なるデータを収集蓄積して分析したい
4 オフラインでも動いてオンラインになったら都合良良くサーバとデータ同期するモバイルアプリを開発したい
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 115: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/115.jpg)
いつでもお声がけください
bull より詳細な製品説明デモ相談サイジングトレーニング
bull 一緒に開発してほしい
bull hellip etc
bull 株式会社 atWare Couchbase担当 までwwwatwarecojp
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 116: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/116.jpg)
COUCHBASE JP MEETUP
httpcouchbasejpcommunitydoorkeeperjpevents16749
QUESTIONS
![Page 117: Couchbase 30-dbtechshowcase-tokyo2014](https://reader035.vdocuments.net/reader035/viewer/2022081515/559444f31a28ab06308b4852/html5/thumbnails/117.jpg)
QUESTIONS