SlideShare a Scribd company logo
COUCHBASE SERVER 
3.0で広がるNOSQL採⽤用事例例 
株式会社アットウェア 河村 康爾 
db tech showcase Tokyo 2014
本セッションのゴール 
• Couchbaseのアーキテクチャをご理理解いた 
だき、 
• 様々な利利⽤用事例例を通して、おぉ、使えるか 
も!!と思っていただく
⾃自⼰己紹介 
• 株式会社アットウェア 
• 河村 康爾 @ijokarumawak 
• Couchbaseの普及活動、コンサル、導⼊入⽀支援 
• Couchbase-‐‑‒JPコミュニティ運営 
• Mobileハッカソン 
優勝チームとして 
SFでプレゼン! 
https://www.youtube.com/watch?v=BH3Vb_9pcN8#t=155
COUCHBASE CONNECT 
• 延べ1,000⼈人以上の参加者 
• Enterprise, Developer, Operations, Architecture, 
Mobile, Customer, Generalのカテゴリで様々な 
セッション 
http://www.couchbase.com/connect/
COUCHBASE HISTORY 
1.8 
2.0 
2.1 
2.2 
2.5 
1.0 
3.0 
2012/01 
2012/12 
2013/06 
2013/09 
2014/02 
2014/05 
2014/10/06 
DCP, Shared Thread Pool 
Tunable Memory, Disk I/O priority 
Stream-based Views/XDCR 
Graceful failover, Delta node recovery 
Incremental backup/restore 
XDCR pause & resume 
Encrypted access 
Cluster-wide diagnostics 
… and more! 
Mobile
性能 
• ⾮非常に⾼高いスループット 
• 1ノードで100K~∼OPS (ON RAM) 
• 3.0でさらに⾼高性能に、Connect 
では5台のEC2インスタンス 
(c3.4xlarge)で3M OPSのデモ! 
• 1ms未満のレイテンシ 
• 台数に応じてリニアにスケール 
http://info.couchbase.com/2014-Fall- 
Benchmark-Results-LP.html 
http://www.couchbase.com/connect/agenda/general-session-welcome-keynote/
COUCHBASEで 
解決できる問題
COUCHBASE SERVERの特徴 
• 柔軟なスキーマ 
• ⼀一貫した⾼高性能 
• 伸縮⾃自在のスケーラビリティ 
• ⾼高可⽤用性
4⼤大利利⽤用動機 
1. Webアプリ、Webサイトの表⽰示を⾼高速にしてより良良い 
ユーザ体験を提供したい! 
2. なにが起きても稼働し続けるシステムを構築したい! 
3. フォーマットの異異なるデータを収集・蓄積して分析した 
い! 
4. オフラインでも動いて、オンラインになったら都合良良く 
サーバとデータ同期するモバイルアプリを開発したい!
1. Webアプリ、Webサイトの表⽰示を⾼高速にし 
てより良良いユーザ体験を提供したい! 
READバッファ → ⾼高性能ストレージ
READバッファ → ⾼高性能ストレージ 
Web App
READバッファ → ⾼高性能ストレージ 
Web App
READバッファ → ⾼高性能ストレージ 
DNS/LB 
Web App Web App Web App
READバッファ → ⾼高性能ストレージ 
DNS/LB 
Web App Web App Web App
READバッファ → ⾼高性能ストレージ 
DNS/LB 
Web App Web App Web App 
SoR 
(System of Record)
READバッファ → ⾼高性能ストレージ 
DNS/LB 
Web App Web App Web App
READバッファ → ⾼高性能ストレージ 
DNS/LB 
Web Scale 
Web App Web App Web App
READバッファ → ⾼高性能ストレージ 
DNS/LB 
Web Scale 
Web App Web App Web App
MANAGED CACHE 
http://www.slideshare.net/Couchbase/howto-nosql-30-webinar-series-couchbase-101
REACTIVE PROGRAMING 
http://www.slideshare.net/RuslanMeshenberg/netflixoss-season-2-episode-2-reactive-async
REACTIVE PROGRAMING 
http://www.couchbase.com/connect/agenda/efficient-data-access-reactive-programming-rxjava/
2. なにが起きても 
稼働し続けるシステムを構築したい! 
HAウルトラ
その前に。 
アーキテクチャの話
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
CB 1
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
CB 1 
CB 2
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
CB 1 
CB 2 CB 3
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
CB 1 
CB 2 CB 3 
Bucket
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
CB 1 
CB 2 CB 3 
x 1,024 
Bucket 
vB
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
Bucket CB 1 
CB 2 CB 3 
x 1,024 
Bucket 
vB
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
Bucket CB 1 
CB 2 CB 3 
x 1,024 
Bucket 
1 
vB 
2 3 
4 5 6
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
Bucket CB 1 
CB 2 CB 3 
x 1,024 
Bucket 
1 
vB 
2 3 
4 x 341 5 x 341 6 x 342
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
CB 1 
App Server 
x 1,024 
Bucket 
Bucket CB 2 CB 3 
1 
vB 
2 3 
4 x 341 5 x 341 6 x 342
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
CB 1 
App Server 
CB SDK 
x 1,024 
Bucket 
Bucket CB 2 CB 3 
1 
vB 
2 3 
4 x 341 5 x 341 6 x 342
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
CB 1 
App Server 
CB SDK 
x 1,024 
Bucket 
Bucket CB 2 CB 3 
1 
vB 
2 3 
4 5 6 
cb = Couchbase.connect(“cb1”) 
x 341 x 341 x 342
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
CB 1 
App Server 
CB SDK 
x 1,024 
Bucket 
Bucket CB 2 CB 3 
1 
vB 
2 3 
4 5 6 
cb = Couchbase.connect(“cb1”) 
x 341 x 341 x 342 
Cluster Map
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
CB 1 
App Server 
CB SDK 
x 1,024 
Bucket 
Cluster Map 
Bucket CB 2 CB 3 
1 
vB 
2 3 
4 5 6 
cb = Couchbase.connect(“cb1”) 
x 341 x 341 x 342
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
CB 1 
App Server 
CB SDK 
x 1,024 
Bucket 
Cluster Map 
Bucket CB 2 CB 3 
1 
vB 
2 3 
4 5 6 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
x 341 x 341 x 342
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
CB 1 
App Server 
CB SDK 
x 1,024 
Bucket 
Cluster Map 
Bucket CB 2 CB 3 
1 
vB 
2 3 
4 5 6 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
x 341 x 341 x 342
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
CB 1 
App Server 
CB SDK 
x 1,024 
Bucket 
Cluster Map 
Bucket CB 2 CB 3 
1 
vB 
2 3 
4 5 6 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
x 341 x 341 x 342
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
CB 1 
App Server 
CB SDK 
x 1,024 
Bucket 
Cluster Map 
Bucket CB 2 CB 3 
1 
vB 
2 3 
4 5 6 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
x 341 x 341 x 342
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
CB 1 
App Server 
CB SDK 
x 1,024 
Bucket 
Cluster Map 
Bucket CB 2 CB 3 
1 
vB 
2 3 
4 5 6 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
x 341 x 341 x 342
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
CB 1 
App Server 
CB SDK 
x 1,024 
Bucket 
Cluster Map 
Bucket CB 2 CB 3 
1 
vB 
2 3 
4 5 6 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
x 341 x 341 x 342
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
CB 1 
App Server 
CB SDK 
x 1,024 
Bucket 
Cluster Map 
Bucket CB 2 CB 3 
1 
vB 
2 3 
4 5 6 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
x 341 x 341 x 342
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
Bucket 
act x 1,024 
rep x 1,024 x rep 
CB 1 
App Server 
CB SDK 
Cluster Map 
Bucket CB 2 CB 3 
1 
vB 
vB 
2 3 
4 5 6 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
x 341 x 341 x 342
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
Bucket 
act x 1,024 
rep x 1,024 x rep 
CB 1 
act 
App Server 
CB SDK 
CB 2 
act 
Cluster Map 
CB 3 
act 
Bucket 
1 
vB 
vB 
2 3 
4 5 6 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
x 341 x 341 x 342
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
Bucket 
act x 1,024 
rep x 1,024 x rep 
CB 1 
act 
rep 
App Server 
CB SDK 
CB 2 
act 
rep 
Cluster Map 
CB 3 
act 
rep 
Bucket 
1 
vB 
vB 
2 3 
4 5 6 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
x 341 x 341 x 342
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
Bucket 
act x 1,024 
rep x 1,024 x rep 
CB 1 
act 
rep 
App Server 
CB SDK 
CB 2 
act 
rep 
Cluster Map 
CB 3 
act 
rep 
Bucket 
1 
vB 
vB 
2 3 
4 5 6 
3 1 2 
6 4 5 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
x 341 x 341 x 342 
x 342 x 341 x 341
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
Bucket 
act x 1,024 
rep x 1,024 x rep 
CB 1 
act 
rep 
App Server 
CB SDK 
CB 2 
act 
rep 
CB 3 
act 
rep 
Bucket 
1 
vB 
vB 
2 3 
4 5 6 
3 1 2 
6 4 5 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
Cluster Map
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
Bucket 
act x 1,024 
rep x 1,024 x rep 
CB 1 CB 4 
act 
rep 
App Server 
CB SDK 
CB 2 
act 
rep 
CB 3 
act 
rep 
Bucket 
1 
vB 
vB 
2 3 
4 5 6 
3 1 2 
6 4 5 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
Cluster Map
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
Bucket 
act x 1,024 
rep x 1,024 x rep 
CB 1 CB 4 
act 
rep 
App Server 
CB SDK 
CB 2 
act 
rep 
CB 3 
act 
rep 
Bucket 
1 
vB 
vB 
2 3 
4 5 6 
3 1 2 
6 4 5 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
Cluster Map 
リバランス!!
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
Bucket 
act x 1,024 
rep x 1,024 x rep 
CB 1 CB 4 
act 
rep 
App Server 
CB SDK 
CB 2 
act 
rep 
CB 3 
act 
rep 
Bucket 
1 
vB 
vB 
2 3 
4 5 6 
3 1 2 
6 4 5 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
Cluster Map
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
CB 4 
act 
rep 
Bucket 
act x 1,024 
rep x 1,024 x rep 
CB 1 
act 
rep 
App Server 
CB SDK 
CB 2 
act 
rep 
CB 3 
act 
rep 
Bucket 
1 
vB 
vB 
2 3 
4 5 6 
3 1 2 
6 4 5 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
Cluster Map
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
CB 4 
act 
rep 
Bucket 
act x 1,024 
rep x 1,024 x rep 
CB 1 
act 
rep 
App Server 
CB SDK 
CB 2 
act 
rep 
CB 3 
act 
rep 
Bucket 
1 
vB 
vB 
2 3 
4 
5 
6 
3 1 2 
4 5 
6 
Cluster Map
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
CB 4 
act 
rep 
Bucket 
act x 1,024 
rep x 1,024 x rep 
CB 1 
act 
rep 
App Server 
CB SDK 
CB 2 
act 
rep 
CB 3 
act 
rep 
Bucket 
1 
vB 
vB 
2 3 
4 
5 
6 
3 1 2 
4 5 
6 
Cluster Map
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
CB 4 
act 
rep 
Bucket 
act x 1,024 
rep x 1,024 x rep 
CB 1 
act 
rep 
App Server 
CB SDK 
CB 2 
act 
rep 
CB 3 
act 
rep 
Bucket 
1 
vB 
vB 
2 3 
4 
5 
6 
3 1 2 
4 5 
6 
Cluster Map
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
CB 4 
act 
rep 
Bucket 
act x 1,024 
rep x 1,024 x rep 
CB 1 
act 
rep 
App Server 
CB SDK 
CB 2 
act 
rep 
CB 3 
act 
rep 
Bucket 
1 
vB 
vB 
2 3 
4 
5 
6 
3 1 2 
4 5 
6 
Cluster Map
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
CB 4 
act 
rep 
Bucket 
act x 1,024 
rep x 1,024 x rep 
CB 1 
act 
rep 
App Server 
CB SDK 
CB 2 
act 
rep 
CB 3 
act 
rep 
Bucket 
1 
vB 
vB 
2 3 
4 
5 
6 
3 1 2 
4 5 
6 
Cluster Map
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
Bucket 
act x 1,024 
rep x 1,024 x rep 
CB 1 
act 
rep 
App Server 
CB SDK 
CB 2 
act 
rep 
CB 3 
act 
rep 
Bucket 
1 
vB 
vB 
2 3 
4 6 
3 1 2 
4 5 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
Cluster Map
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
Bucket 
act x 1,024 
rep x 1,024 x rep 
CB 1 
act 
rep 
App Server 
CB SDK 
CB 2 
act 
rep 
CB 3 
act 
rep 
Bucket 
1 
vB 
vB 
2 3 
4 6 
3 1 2 
4 5 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
Cluster Map 
フェイルオーバ!!
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
Bucket 
act x 1,024 
rep x 1,024 x rep 
CB 1 
act 
rep 
App Server 
CB SDK 
CB 2 
act 
rep 
CB 3 
act 
rep 
Bucket 
1 
vB 
vB 
2 3 
4 6 
3 1 2 
4 5 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
Cluster Map
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
Bucket 
act x 1,024 
rep x 1,024 x rep 
CB 1 
act 
rep 
App Server 
CB SDK 
CB 2 
act 
rep 
CB 3 
act 
rep 
Bucket 
1 
vB 
vB 
2 3 
4 6 
3 1 2 
4 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
5 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
Cluster Map
CONSISTENT HASH/レプリカ/リバランス/フェイルオーバ 
Bucket 
act x 1,024 
rep x 1,024 x rep 
CB 1 
act 
rep 
App Server 
CB SDK 
CB 2 
act 
rep 
CB 3 
act 
rep 
Bucket 
1 
vB 
vB 
2 3 
4 6 
3 1 2 
4 
cb = Couchbase.connect(“cb1”) 
user = cb.get(“user-‐‑‒789”) 
5 
# SDK 
vBID = hash(“user-‐‑‒789”) 
node = clusterMap.get(vBID) 
return node.get(“user-‐‑‒789”) 
Cluster Map
CB 4 
act 
rep 
CB 1 
HAウルトラ 
1 2 3 
act 
3 1 2 
rep 
CB 2 
act 
rep 
CB 3 
act 
4 5 
rep 
4 
5 
6 
6 
http://www.couchbase.com/connect/agenda/reaching-highest-level-disaster-recovery-multi-site-replication/
CB 4 
act 
rep 
CB 1 
HAウルトラ 
1 2 3 
act 
3 1 2 
rep 
CB 2 
act 
rep 
CB 3 
act 
4 5 
rep 
4 
5 
6 
6 
http://www.couchbase.com/connect/agenda/reaching-highest-level-disaster-recovery-multi-site-replication/
CB 4 
act 
rep 
CB 1 
HAウルトラ 
クラスタ内レプリカ&フェイルオーバ 
1 2 3 
act 
3 1 2 
rep 
CB 2 
act 
rep 
CB 3 
act 
4 5 
rep 
4 
5 
6 
6 
http://www.couchbase.com/connect/agenda/reaching-highest-level-disaster-recovery-multi-site-replication/
CB 4 
act 
rep 
Group (Rack/Zone) 
CB 1 
HAウルトラ 
クラスタ内レプリカ&フェイルオーバ 
1 2 3 
act 
3 1 2 
rep 
CB 2 
act 
rep 
CB 3 
act 
4 5 
rep 
4 
5 
6 
6 
http://www.couchbase.com/connect/agenda/reaching-highest-level-disaster-recovery-multi-site-replication/
CB 4 
act 
rep 
Group (Rack/Zone) 
CB 1 
HAウルトラ 
クラスタ内レプリカ&フェイルオーバ 
1 2 3 
act 
3 1 2 
rep 
CB 2 
act 
rep 
CB 3 
act 
4 5 
rep 
4 
5 
6 
6 
http://www.couchbase.com/connect/agenda/reaching-highest-level-disaster-recovery-multi-site-replication/
CB 4 
act 
rep 
Group (Rack/Zone) Rack Zone Awareness 
CB 1 
HAウルトラ 
1 2 3 
act 
3 1 2 
rep 
CB 2 
act 
rep 
CB 3 
act 
4 5 
rep 
4 
5 
6 
6 
http://www.couchbase.com/connect/agenda/reaching-highest-level-disaster-recovery-multi-site-replication/
Rack Zone Awareness 
Group 1 Group 2 
CB 4 
act 
rep 
CB 1 
HAウルトラ 
1 2 3 
act 
3 1 2 
rep 
CB 2 
act 
rep 
CB 3 
act 
4 5 
rep 
4 
5 
6 
6 
http://www.couchbase.com/connect/agenda/reaching-highest-level-disaster-recovery-multi-site-replication/
Rack Zone Awareness 
Group 1 Group 2 
CB 4 
act 
6 
3 2 1 
5 4 
rep 
CB 1 
HAウルトラ 
1 2 3 
act 
rep 
CB 2 
act 
rep 
CB 3 
act 
rep 
4 
5 
6 
http://www.couchbase.com/connect/agenda/reaching-highest-level-disaster-recovery-multi-site-replication/
Rack Zone Awareness 
Group 1 Group 2 
CB 4 
act 
6 
3 2 1 
5 4 
rep 
CB 1 
HAウルトラ 
1 2 3 
act 
rep 
CB 2 
act 
rep 
CB 3 
act 
rep 
4 
5 
6 
http://www.couchbase.com/connect/agenda/reaching-highest-level-disaster-recovery-multi-site-replication/
Rack Zone Awareness 
Group 1 Group 2 
CB 4 
act 
6 
3 2 1 
5 4 
rep 
CB 1 
HAウルトラ 
1 2 3 
act 
rep 
CB 2 
act 
rep 
CB 3 
act 
rep 
4 
5 
6 
Region 
http://www.couchbase.com/connect/agenda/reaching-highest-level-disaster-recovery-multi-site-replication/
Rack Zone Awareness 
Group 1 Group 2 
CB 4 
act 
6 
3 2 1 
5 4 
rep 
CB 1 
HAウルトラ 
1 2 3 
act 
rep 
CB 2 
act 
rep 
CB 3 
act 
rep 
4 
5 
6 
Region 
http://www.couchbase.com/connect/agenda/reaching-highest-level-disaster-recovery-multi-site-replication/
HAウルトラ 
Rack Zone Awareness 
Group 1 Group 2 
CB 1 CB 2 CB 3 
CB 4 
Region 
http://www.couchbase.com/connect/agenda/reaching-highest-level-disaster-recovery-multi-site-replication/
HAウルトラ 
Region1 
Group 1 Group 2 
CB 1 CB 2 CB 3 CB 4 
Region2 
Group 1 Group 2 
CB 1 CB 2 CB 3 CB 4 
XDCR
3. フォーマットの異異なるデータを収集・蓄積 
して分析したい! 
WRITEバッファ → 分析⽤用データストレージ
WRITEバッファ → 分析⽤用データストレージ 
http://en.wikipedia.org/wiki/Internet_of_Things 
XDCR 
Connector 
CEP 
Elasticsearch & Kibana N1QL + xDBC 
3.0のTunable Memoryによって 
キー・メタデータの制限がなくなり、 
より⼤大量量のデータを保存可能に
クエリ
VIEW
VIEW 
• Map: JSONの任意の項⽬目で⼆二次インデックスを⽣生成
VIEW 
• Map: JSONの任意の項⽬目で⼆二次インデックスを⽣生成 
• Reduce: Mapで⽣生成したキー単位で集計
VIEW 
item_̲777: {name: “coffee”, category: “soft-‐‑‒drink”} 
cat_̲soft-‐‑‒drink: {items: [“777”, “888”, …]} 
• Map: JSONの任意の項⽬目で⼆二次インデックスを⽣生成 
• Reduce: Mapで⽣生成したキー単位で集計 
• ベストプラクティス: ⼆二次インデックス⽤用途で、リアルタ 
イム性がクリティカル or 要素が有限な場合は、インデッ 
クス⽤用ドキュメントの⽣生成が吉
ELASTICSEARCH連携 
• Elasticsearchはデータベースか? 
• Couchbase ConnectセッションでのDemo 
• オブジェクトを保存して、取得する簡単な操作 
• ESとCBの違いをデモ 
• Elasticsearch: query 5.1 ms、get 3.4 ms, インデク 
シング等のオーバヘッド 
• Couchbase 0.45 ms 
XDCR 
http://www.couchbase.com/connect/agenda/integrating-elasticsearch-real-time-kibana/
コマーシャル 
http://www.apress.com/9781430266136
LUCID WORKS 
• Couchbaseのパートナー 
• “Fusion”: Apache Solrベースの 
エンタープライズ検索索エンジン 
• XDCRを利利⽤用してニアリアルタイ 
ムにCouchbase Serverに保存し 
たドキュメントをインデックス 
• Contextual Experience, Data 
Driven decision 
• Processing Data & Find Signals 
http://www.couchbase.com/connect/agenda/partner-keynote-lucidworks/
N1QL 
http://query.pub.couchbase.com/tutorial/#1
N1QL 
http://www.couchbase.com/connect/agenda/an-n1ql-for-every-query/ 
http://query.pub.couchbase.com/tutorial/#1
N1QL 
http://www.couchbase.com/connect/agenda/an-n1ql-for-every-query/ 
http://query.pub.couchbase.com/tutorial/#1
N1QL 
http://www.couchbase.com/connect/agenda/an-n1ql-for-every-query/ 
http://query.pub.couchbase.com/tutorial/#1
N1QLパイプライン 
http://www.couchbase.com/connect/agenda/an-n1ql-for-every-query/
N1QL XDBCドライバ 
http://www.couchbase.com/connect/agenda/enterprise-reporting-visualization-bi-etl-couchbase- 
n1ql-odbc-jdbc/
N1QL XDBCドライバ 
http://www.couchbase.com/connect/agenda/enterprise-reporting-visualization-bi-etl-couchbase- 
n1ql-odbc-jdbc/
N1QL XDBCドライバ 
http://www.couchbase.com/connect/agenda/enterprise-reporting-visualization-bi-etl-couchbase- 
n1ql-odbc-jdbc/
N1QL エコシステム 
http://www.couchbase.com/connect/agenda/an-n1ql-for-every-query/
利利⽤用事例例
VIBER 
初代第二世代第三世代 
内製のインメモリDB 
Sharder 
Redis cluster 
x 100+ servers Couchbase Server 
MongoDB cluster 
x 150 servers 
120 servers 
6 clusters
VIBER 
初代第二世代第三世代 
内製のインメモリDB 
Sharder 
Redis cluster 
x 100+ servers Couchbase Server 
MongoDB cluster 
x 150 servers 
120 servers 
6 clusters
EBAY 
• Couchbase Server以外にも様々なデータベースを利利⽤用、「適材適所」が⼤大事 
• Couchbase Serverの良良いところ 
• 低コストで⾼高いスケーラビリティ 
• Web規模のK/Vによる読み書き性能 
• スキーマの柔軟性 
• オープンソースでありエンタープライズモデルであること 
• eBay Marketplace 
• 1億+のアクティブ購⼊入者と販売者、6億+の商品 
• ⽇日に20億+のページビュー、800億+のデータベースアクセス 
• 5+ペタバイトのサイトストレージ容量量、80+ペタバイトのデータ分析⽤用ストレージ容量量 
http://www.couchbase.com/connect/agenda/couchbase-ebay/
EBAY 
• マルチチャネルプロダクトカタログ 
• 512GB RAM, 1.6TB SSD x 4node x 2DC 
• 双⽅方向XDCR 
• Authトークン 
• 128GB RAM, 1TB HDD x 3node cluster x 3DC 
• 3DCで双⽅方向XDCR 
• 今後適⽤用範囲を拡⼤大予定 
http://www.couchbase.com/connect/agenda/couchbase-ebay/
LINKED IN 
• 世界最⼤大のプロフェッショナル向けSNS 
• データ参照のスケーリング 
• データベース内の全てのデータをCouchbase ServerのRAM 
に展開 
• ユーザのフォロー情報、仕事の情報 
• Hadoopを利利⽤用してオフラインでキャッシュを作成 
• MemcachedからCouchbase Serverへ移⾏行行 
• MongoDBやRedisも検討したが、CBを採⽤用 
• memcached互換、レプリカ、リバランス 
• コールドキャッシュの問題を解決 
• Couchbase Server専任チームがある 
• SALTやIngraphsといった内製ツールを利利⽤用 
Web App 
XDCR 
http://www.couchbase.com/connect/agenda/couchbase-linkedin/
HIPPO 
• Java based Open Source CMS (Jackrabbit, Spring) 
• 花屋のジレンマ 
• データをパーソナライズし、動的なWebサイトを⽣生成 
• ビッグデータを顧客ターゲティングに活⽤用 
• ユーザの状態、過去実績、ペルソナ 
• 数ミリ秒で⼤大量量の計算 
• Couchbase採⽤用の理理由: Scalability & Performance 
• HIPPOユーザの事例例: WELEDA, Randstad, Dutch 
Police. 
http://www.couchbase.com/connect/agenda/gaining-actionable-insights-big-data/
4. オフラインでも動いて、オンラインになっ 
たら都合良良くサーバとデータ同期するモバイ 
ルアプリを開発したい! 
MOBILEソリューション
MOBILEソリューション 
Couchbase Lite 
SyncGateway 
Couchbase 
Server 
• モバイル端末に組み込み可能 
なローカルドキュメントDBと 
SDKのセット 
• push/pull型レプリケーション 
• オフラインで稼働するApp、 
オンライン時にデータ同期 
• ユーザ認証 
• チャネル: データセットをグ 
ループ分け
COUCHBASE CONNECT APP 
http://www.couchbase.com/connect/agenda/solving-iot-m2m-data-access-challenges/ 
https://github.com/FireflyLogic/couchbase-connect-14
COUCHBASE CONNECT APP 
http://www.couchbase.com/connect/agenda/solving-iot-m2m-data-access-challenges/ 
https://github.com/FireflyLogic/couchbase-connect-14
COUCHBASE CONNECT APP 
http://www.couchbase.com/connect/agenda/solving-iot-m2m-data-access-challenges/ 
https://github.com/FireflyLogic/couchbase-connect-14
COUCHBASE CONNECT APP 
http://www.couchbase.com/connect/agenda/solving-iot-m2m-data-access-challenges/ 
https://github.com/FireflyLogic/couchbase-connect-14
MOBILE BALLOON 
• Androidデバイス: Couchbase Lite 
• Laptop: Couchbase Server & Sync GW 
• WiFiレンジから外れてもデバイスに保存、戻ったら同期再開 
http://www.couchbase.com/connect/agenda/couchbase-mobile-balloon-demo/
国内での利利⽤用事例例? 
http://www.couchbase.com/
サイバード様 
http://www.cybird.co.jp/
SCSK殿 
https://www.scsk.jp/product/common/couchbase/
まとめ 
重要なのでもう⼀一度度
4⼤大利利⽤用動機 
1. Webアプリ、Webサイトの表⽰示を⾼高速にしてより良良い 
ユーザ体験を提供したい! 
2. なにが起きても稼働し続けるシステムを構築したい! 
3. フォーマットの異異なるデータを収集・蓄積して分析した 
い! 
4. オフラインでも動いて、オンラインになったら都合良良く 
サーバとデータ同期するモバイルアプリを開発したい!
いつでもお声がけください! 
• より詳細な製品説明、デモ、相談、サイジ 
ング、トレーニング 
• ⼀一緒に開発してほしい! 
• … etc 
www.atware.co.jp 
• 株式会社 atWare Couchbase担当 まで
COUCHBASE JP MEETUP! 
http://couchbasejpcommunity.doorkeeper.jp/events/16749
QUESTIONS?

More Related Content

Viewers also liked

Apache Atlasの現状とデータガバナンス事例 #hadoopreading
Apache Atlasの現状とデータガバナンス事例 #hadoopreadingApache Atlasの現状とデータガバナンス事例 #hadoopreading
Apache Atlasの現状とデータガバナンス事例 #hadoopreading
Yahoo!デベロッパーネットワーク
 
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajpストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
Yahoo!デベロッパーネットワーク
 
Apache NiFiと 他プロダクトのつなぎ方
Apache NiFiと他プロダクトのつなぎ方Apache NiFiと他プロダクトのつなぎ方
Apache NiFiと 他プロダクトのつなぎ方
Sotaro Kimura
 
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
matsu_chara
 
Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本
Sotaro Kimura
 
Apache NiFi 1.0 in Nutshell
Apache NiFi 1.0 in NutshellApache NiFi 1.0 in Nutshell
Apache NiFi 1.0 in Nutshell
Koji Kawamura
 
Yahoo! JAPANのデータ基盤とHadoop #dbts2016
Yahoo! JAPANのデータ基盤とHadoop #dbts2016Yahoo! JAPANのデータ基盤とHadoop #dbts2016
Yahoo! JAPANのデータ基盤とHadoop #dbts2016
Yahoo!デベロッパーネットワーク
 
JVM上でのストリーム処理エンジンの変遷
JVM上でのストリーム処理エンジンの変遷JVM上でのストリーム処理エンジンの変遷
JVM上でのストリーム処理エンジンの変遷
Sotaro Kimura
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
 
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Takakiyo Tanaka
 
Flink vs. Spark
Flink vs. SparkFlink vs. Spark
Flink vs. Spark
Slim Baltagi
 
基幹業務もHadoopで!! -ローソンにおける店舗発注業務への Hadoop + Hive導入と その取り組みについて-
基幹業務もHadoopで!! -ローソンにおける店舗発注業務へのHadoop + Hive導入と その取り組みについて-基幹業務もHadoopで!! -ローソンにおける店舗発注業務へのHadoop + Hive導入と その取り組みについて-
基幹業務もHadoopで!! -ローソンにおける店舗発注業務への Hadoop + Hive導入と その取り組みについて-
Keigo Suda
 
そのデータフロー NiFiで楽にしてあげましょう
そのデータフロー NiFiで楽にしてあげましょうそのデータフロー NiFiで楽にしてあげましょう
そのデータフロー NiFiで楽にしてあげましょう
Koji Kawamura
 

Viewers also liked (13)

Apache Atlasの現状とデータガバナンス事例 #hadoopreading
Apache Atlasの現状とデータガバナンス事例 #hadoopreadingApache Atlasの現状とデータガバナンス事例 #hadoopreading
Apache Atlasの現状とデータガバナンス事例 #hadoopreading
 
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajpストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
ストリーム処理プラットフォームにおけるKafka導入事例 #kafkajp
 
Apache NiFiと 他プロダクトのつなぎ方
Apache NiFiと他プロダクトのつなぎ方Apache NiFiと他プロダクトのつなぎ方
Apache NiFiと 他プロダクトのつなぎ方
 
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集
 
Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本
 
Apache NiFi 1.0 in Nutshell
Apache NiFi 1.0 in NutshellApache NiFi 1.0 in Nutshell
Apache NiFi 1.0 in Nutshell
 
Yahoo! JAPANのデータ基盤とHadoop #dbts2016
Yahoo! JAPANのデータ基盤とHadoop #dbts2016Yahoo! JAPANのデータ基盤とHadoop #dbts2016
Yahoo! JAPANのデータ基盤とHadoop #dbts2016
 
JVM上でのストリーム処理エンジンの変遷
JVM上でのストリーム処理エンジンの変遷JVM上でのストリーム処理エンジンの変遷
JVM上でのストリーム処理エンジンの変遷
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
Javaプログラマーももう逃げられない。マイクロサービスとAPIの世界。
 
Flink vs. Spark
Flink vs. SparkFlink vs. Spark
Flink vs. Spark
 
基幹業務もHadoopで!! -ローソンにおける店舗発注業務への Hadoop + Hive導入と その取り組みについて-
基幹業務もHadoopで!! -ローソンにおける店舗発注業務へのHadoop + Hive導入と その取り組みについて-基幹業務もHadoopで!! -ローソンにおける店舗発注業務へのHadoop + Hive導入と その取り組みについて-
基幹業務もHadoopで!! -ローソンにおける店舗発注業務への Hadoop + Hive導入と その取り組みについて-
 
そのデータフロー NiFiで楽にしてあげましょう
そのデータフロー NiFiで楽にしてあげましょうそのデータフロー NiFiで楽にしてあげましょう
そのデータフロー NiFiで楽にしてあげましょう
 

Similar to Couchbase 30-dbtechshowcase-tokyo2014

Vyatta 改造入門
Vyatta 改造入門Vyatta 改造入門
Vyatta 改造入門
Masakazu Asama
 
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
AWS Black Belt Tech シリーズ 2015 - AWS Elastic BeanstalkAWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
Amazon Web Services Japan
 
EchoyaGinhanazeSu_inoka.pptx
EchoyaGinhanazeSu_inoka.pptxEchoyaGinhanazeSu_inoka.pptx
EchoyaGinhanazeSu_inoka.pptx
keink
 
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
Kohei Hoshi
 
20130626 kawasaki.rb NKT77
20130626 kawasaki.rb NKT7720130626 kawasaki.rb NKT77
20130626 kawasaki.rb NKT77
nkt77
 
Debianを用いたCortex-M3マイコン開発事例のご紹介
Debianを用いたCortex-M3マイコン開発事例のご紹介Debianを用いたCortex-M3マイコン開発事例のご紹介
Debianを用いたCortex-M3マイコン開発事例のご紹介Kiwamu Okabe
 
Qlik Replicate - IBM DB2 for LUWを ソースおよびターゲットエンドポイントとして使用する
Qlik Replicate - IBM DB2 for LUWをソースおよびターゲットエンドポイントとして使用するQlik Replicate - IBM DB2 for LUWをソースおよびターゲットエンドポイントとして使用する
Qlik Replicate - IBM DB2 for LUWを ソースおよびターゲットエンドポイントとして使用する
QlikPresalesJapan
 
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境
Katsutoshi Nagaoka
 
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnionThe Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
Yoshifumi Kawai
 
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
机上の Kubernetes -  形式手法で見るコンテナオーケストレーション #NGK2016B机上の Kubernetes -  形式手法で見るコンテナオーケストレーション #NGK2016B
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
y_taka_23
 
Spectacular Future with clojure.spec
Spectacular Future with clojure.specSpectacular Future with clojure.spec
Spectacular Future with clojure.spec
Kent Ohashi
 
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
Couchbase Japan KK
 
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 SpringGoでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Yahoo!デベロッパーネットワーク
 

Similar to Couchbase 30-dbtechshowcase-tokyo2014 (13)

Vyatta 改造入門
Vyatta 改造入門Vyatta 改造入門
Vyatta 改造入門
 
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
AWS Black Belt Tech シリーズ 2015 - AWS Elastic BeanstalkAWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
 
EchoyaGinhanazeSu_inoka.pptx
EchoyaGinhanazeSu_inoka.pptxEchoyaGinhanazeSu_inoka.pptx
EchoyaGinhanazeSu_inoka.pptx
 
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
 
20130626 kawasaki.rb NKT77
20130626 kawasaki.rb NKT7720130626 kawasaki.rb NKT77
20130626 kawasaki.rb NKT77
 
Debianを用いたCortex-M3マイコン開発事例のご紹介
Debianを用いたCortex-M3マイコン開発事例のご紹介Debianを用いたCortex-M3マイコン開発事例のご紹介
Debianを用いたCortex-M3マイコン開発事例のご紹介
 
Qlik Replicate - IBM DB2 for LUWを ソースおよびターゲットエンドポイントとして使用する
Qlik Replicate - IBM DB2 for LUWをソースおよびターゲットエンドポイントとして使用するQlik Replicate - IBM DB2 for LUWをソースおよびターゲットエンドポイントとして使用する
Qlik Replicate - IBM DB2 for LUWを ソースおよびターゲットエンドポイントとして使用する
 
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境
 
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnionThe Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
 
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
机上の Kubernetes -  形式手法で見るコンテナオーケストレーション #NGK2016B机上の Kubernetes -  形式手法で見るコンテナオーケストレーション #NGK2016B
机上の Kubernetes - 形式手法で見るコンテナオーケストレーション #NGK2016B
 
Spectacular Future with clojure.spec
Spectacular Future with clojure.specSpectacular Future with clojure.spec
Spectacular Future with clojure.spec
 
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
 
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 SpringGoでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
 

More from Koji Kawamura

Broadcast チームの オブザーバビリティ向上活動.pdf
Broadcast チームの オブザーバビリティ向上活動.pdfBroadcast チームの オブザーバビリティ向上活動.pdf
Broadcast チームの オブザーバビリティ向上活動.pdf
Koji Kawamura
 
Elastic Stack を網羅する ハンズオンワークショップを 作ってみた.pdf
Elastic Stack を網羅する ハンズオンワークショップを 作ってみた.pdfElastic Stack を網羅する ハンズオンワークショップを 作ってみた.pdf
Elastic Stack を網羅する ハンズオンワークショップを 作ってみた.pdf
Koji Kawamura
 
Drupal Elasticsearch Connector の日本語検索の質を高める
Drupal Elasticsearch Connector の日本語検索の質を高めるDrupal Elasticsearch Connector の日本語検索の質を高める
Drupal Elasticsearch Connector の日本語検索の質を高める
Koji Kawamura
 
20200324 ms open-tech-elastic
20200324 ms open-tech-elastic20200324 ms open-tech-elastic
20200324 ms open-tech-elastic
Koji Kawamura
 
祝Elasticsearch 7.6、date, number 型での ソートがさらに高速に!? Magic WANDってなんですか?
祝Elasticsearch 7.6、date, number 型での ソートがさらに高速に!?  Magic WANDってなんですか?祝Elasticsearch 7.6、date, number 型での ソートがさらに高速に!?  Magic WANDってなんですか?
祝Elasticsearch 7.6、date, number 型での ソートがさらに高速に!? Magic WANDってなんですか?
Koji Kawamura
 
Apache NiFi 流れるデータにもスキーマを
Apache NiFi 流れるデータにもスキーマをApache NiFi 流れるデータにもスキーマを
Apache NiFi 流れるデータにもスキーマを
Koji Kawamura
 
What will be new in Apache NiFi 1.2.0
What will be new in Apache NiFi 1.2.0What will be new in Apache NiFi 1.2.0
What will be new in Apache NiFi 1.2.0
Koji Kawamura
 
CouchDB JP Developers Dummit LT
CouchDB JP Developers Dummit LTCouchDB JP Developers Dummit LT
CouchDB JP Developers Dummit LTKoji Kawamura
 
Introduction of CouchDB JP
Introduction of CouchDB JPIntroduction of CouchDB JP
Introduction of CouchDB JP
Koji Kawamura
 
ApacheCon NA 2011 report
ApacheCon NA 2011 reportApacheCon NA 2011 report
ApacheCon NA 2011 report
Koji Kawamura
 
もうひとつのNo sql couchdbとは
もうひとつのNo sql couchdbとはもうひとつのNo sql couchdbとは
もうひとつのNo sql couchdbとは
Koji Kawamura
 

More from Koji Kawamura (11)

Broadcast チームの オブザーバビリティ向上活動.pdf
Broadcast チームの オブザーバビリティ向上活動.pdfBroadcast チームの オブザーバビリティ向上活動.pdf
Broadcast チームの オブザーバビリティ向上活動.pdf
 
Elastic Stack を網羅する ハンズオンワークショップを 作ってみた.pdf
Elastic Stack を網羅する ハンズオンワークショップを 作ってみた.pdfElastic Stack を網羅する ハンズオンワークショップを 作ってみた.pdf
Elastic Stack を網羅する ハンズオンワークショップを 作ってみた.pdf
 
Drupal Elasticsearch Connector の日本語検索の質を高める
Drupal Elasticsearch Connector の日本語検索の質を高めるDrupal Elasticsearch Connector の日本語検索の質を高める
Drupal Elasticsearch Connector の日本語検索の質を高める
 
20200324 ms open-tech-elastic
20200324 ms open-tech-elastic20200324 ms open-tech-elastic
20200324 ms open-tech-elastic
 
祝Elasticsearch 7.6、date, number 型での ソートがさらに高速に!? Magic WANDってなんですか?
祝Elasticsearch 7.6、date, number 型での ソートがさらに高速に!?  Magic WANDってなんですか?祝Elasticsearch 7.6、date, number 型での ソートがさらに高速に!?  Magic WANDってなんですか?
祝Elasticsearch 7.6、date, number 型での ソートがさらに高速に!? Magic WANDってなんですか?
 
Apache NiFi 流れるデータにもスキーマを
Apache NiFi 流れるデータにもスキーマをApache NiFi 流れるデータにもスキーマを
Apache NiFi 流れるデータにもスキーマを
 
What will be new in Apache NiFi 1.2.0
What will be new in Apache NiFi 1.2.0What will be new in Apache NiFi 1.2.0
What will be new in Apache NiFi 1.2.0
 
CouchDB JP Developers Dummit LT
CouchDB JP Developers Dummit LTCouchDB JP Developers Dummit LT
CouchDB JP Developers Dummit LT
 
Introduction of CouchDB JP
Introduction of CouchDB JPIntroduction of CouchDB JP
Introduction of CouchDB JP
 
ApacheCon NA 2011 report
ApacheCon NA 2011 reportApacheCon NA 2011 report
ApacheCon NA 2011 report
 
もうひとつのNo sql couchdbとは
もうひとつのNo sql couchdbとはもうひとつのNo sql couchdbとは
もうひとつのNo sql couchdbとは
 

Recently uploaded

論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 

Recently uploaded (9)

論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 

Couchbase 30-dbtechshowcase-tokyo2014