SlideShare a Scribd company logo
1 of 32
About MongoDB 3.2
MongoDB3.2の紹介
渡部 徹太郎2016/07/27
自己紹介
{"ID" :"fetaro"
"名前":"渡部 徹太郎"
"所属":"リクルートテクノロジーズ"
"研究":"東京工業大学でデータベースと情報検索の研究
(@日本データベース学会)"
"仕事":{前職:["証券会社のオントレシステムのWeb基盤",
"オープンソース部隊。主にMongoDB,NoSQL"],
現職:["リクルートの横断分析基盤
Exadata, Hortonworks, EMR"]}
"エディタ":"emacs派"
"趣味": ["自宅サーバ","麻雀"]
"属性" : ["ギーク","スーツ"]}
目次
• API
o ドキュメントバリデーション
o 部分的インデックス
o 新しいCRUD
o アグリゲーションフレームワークの改良
• 高可用構成
o プライマリ選出高速化
o 設定サーバ群がレプリカセットに
o Read Concern
• ストレージ
o デフォルトがWiredTigerに
• 運用
API
ドキュメントバリデーション
• ドキュメントの中身にバリデーション
(キー名や値のチェック)がかけられる
• 今まではスキーマレスを売りにしてきた
• でもやっぱり、場合によってはスキーマが重要
ドキュメントバリデーション
• nameというキーの値を文字列に、ageを30より大きい値に限定
• 正しいドキュメント
• 不正なドキュメント
> db.createCollection( "user" , {
validator : {
name : { $type : "string" },
age : { $gt : 30 }
}})
> db.user.insert({"name":"fetaro","age":33})
WriteResult({ "nInserted" : 1 })
> db.user.insert({"name":1,"age":1})
WriteResult({
"nInserted" : 0,
"writeError" : {
"code" : 121,
"errmsg" : "Document failed validation"
}
})
メッセージは固定
どうやって失敗したか
わからない
ドキュメントバリデーション
• よく使うバリデーション
o findで検索するときの条件指定と同じ文法が使える
• 配列をバリデートする場合の注意
種類 説明 バリデーションの値
$exists キーが存在するか true,false
$type 値の型が正しいか "number","string" 等
$in 値が配列に含まれるか
想定するキーの値を含
む配列
$regex 値が正規表現とマッチするか 正規表現
> db.createCollection("user",{ validator:{ "hoge" :{$type : "array" }}})
> db.createCollection("user",{ validator:{ "hoge.0":{$exists : true}}})
✕
◯
部分的インデックス
• ドキュメントの中のある値の条件よって、
そのドキュメントをインデックスに含めるかどうかを分けれる
• 例
o Scoreにある80点以上ドキュメントだけをインデックスに含める
o db.scores.createIndex({"score":1},
{partialFilterExpression: {score:{$gt:80}}})
• 条件の指定
o キーの存在
o 値そのもの
o 値の存在
o 値の型
• 使いドコロ
o インデックスツリーそのものの大きさが減ることにより
 インデックスサイズの削減
 インデックス探索の高速化
新しいCRUD
• 今までのCRUD
o 一回のクエリで更新されるドキュメントの数が一つだったり複数だったり
o 例: db.mycol.update( {score:{$gt:75}}, {"pass": true})
 一つのドキュメントだけ更新される!
 ドキュメントが丸ごと置き換わる!
• 新しいCRUD
o 明確に更新するドキュメント数が分かるようになった
3.0までのAPI 3.2で追加になったAPI
insert() insertOne()
insertMany()
remove() deleteOne()
deleteMany()
update() replaceOne()
updateOne()
updateMany()
findAndModify() findOneAndDelete()
findOneAndReplace()
findOneAndUpdate()
アグリゲーションの改良(1)
• $lookup
o 他のコレクションから紐づくデータを結合できる。 LEFT OUTER JOINのようなもの
• ただしこの結合はRDBMSの結合とは大きく異なる
o RDBMSのJOIN
 結合計算の最適化、一貫したビュー
o MongoDBの結合
 内部的には結合先テーブルに対してクエリを発行しているだけ
 他のクエリから分離されたものではない。
 つまりアグリゲーションフレームの実行中に、結合先のテーブルが更新さ
れたら、その影響を受ける
• というか、MongoDBは本来分析用途ではない
db.user.aggregate([{
$lookup:{ from : "item", 結合先テーブル
localField : "item_id", 結合キー(自テーブル)
foreignField: "item_id", 結合キー(相手テーブル)
as : "item" 列名
}}])
アグリゲーションの改良(2)
• 3.0まで
o プライマリシャードに負
荷が集中
• 3.2から
o この動作が解消
o ただし、$outと$lookupは
依然としてプライマリ
シャードを使う
アグリゲーションの改良(3)
• インデックス内にデータがあればそれを使いドキュメ
ントにはアクセスしない
その他の改善
• 全文検索が英語以外に対応
o 追加された言語はアラビア語、ペルシャ語、ウルドゥー語、
中国語
o 日本語は残念ながら未対応
o 有償のEnterprise版のみで利用可能
• ビットをテストするオペレータの追加
• JavascriptのエンジンがまたSpidermonkeyに
o 2.4でSpidermonkeyからV8にしているので、戻った
• 地理空間インデックスの最適化
高可用構成
プライマリ選出高速化
• プロトコルのバージョンアップによりプライマリ選出が速くなっ
た
• 1.7秒以内になった(MongoDB World 2016での発表)
プライマリ
1 4 9
プライマリ
1 4 9
セカンダリ
1 4 9データ複製
アプリケーション
MongoDBドライバ
書き込み 読み込み読み込み
レプリカセット
設定サーバ群がレプリカセットに
• 今まで
o 設定サーバはmongod 1台 or 3台で2PC(2フェーズコミット)
o mongos --configdb <config1>,<config2>,<config3>
• 3.2から
o 設定サーバをレプリカセットで構築できるようになる
o mongos --configdb <replicasetName>/<config1>,<config2>
mongos
ルータ
設定
サーバ
mongod mongod mongod
設定
サーバ
設定
サーバ
mongos
ルータ
設定
サーバ
mongod mongod mongod
設定
サーバ
設定
サーバ
2PC
レプリケーション
• レプリカノードの過半数にデータが更新されるのを待って読む
• 一見シンプルな機能に見えるが、よく考えると恐ろしい機能
→大幅にシステムのスループットが落ちる可能性がある
• 何がうれしいのか?
o レプリカセットとして生き残ることが保証された(Rollbackしない)
データだけを読むことができる
o レプリカセットは壊れ方によってはデータロストが発生するが、それを予防し
ている
Read Concern
アプリ1
プライマリ
A B C
セカンダリ
A B C
セカンダリ
A B
書き
セカンダリ セカンダリ
A B A B
C
アプリ2
読み
アプリ3 アプリ4
読み
読み
↑まだ同期できていない↑
Read Concern
• MongoDBにおける「Rollback」とは
• データロストが発生する壊れ方
Read Concern
アプリ1
プライマリ
A B C
セカンダリ
A B C
セカンダリ
A B
書き
セカンダリ セカンダリ
A B A B
C
①↑まだ同期できていない↑
②↓ここでネットワークが分断される
アプリ2
セカンダリ
A B C
セカンダリ
A B C
プライマリ
A B
書き
セカンダリ セカンダリ
A B A BD
D
③レプリカの過半数が見え
ないためセカンダリに降格↓
D D
セカンダリ
A B
C
セカンダリ
A B
C
プライマリ
A B
セカンダリ セカンダリ
A B A BD D DDD
④Cをロスト
ストレージ
mongod
デフォルトがMMAPv1からWiredTigerに
• Version 2.x
o 名無しのストレージ(MMAPベース)
• Version 3.0
o MMAPv1 ⇒ デフォルト
o WiredTiger ⇒ オプション
• Version 3.2
o MMAPv1 ⇒ オプション
o WiredTiger ⇒ デフォルト
MMAPv1
ストレージAPI
参考) http://www.slideshare.net/NorbertoLeite/mongodb-wiredtiger-internals
セキュリティ
MongoDBクエリ言語エンジン
WiredTiger
アプリケーション
MonogDBドライバ
管理
MMAP用
データ
ファイル
WiredTiger用
データファイル
MMAP用
データ
ファイル
WiredTiger用
データファイル
デフォルトがMMAPv1からWiredTigerに
• MMAPv1とは
o MongoDB 3.0のデフォルト
o ディスクにあるファイルをそのままメモリに乗せる
o OSがキャッシュするデータを決める
 LRUのアルゴリズムでページアウトさせる
 最も頻度が高いメモリのページが残る
o つまり、「手抜き」のストレージ
D
E
F
ディスク
メモリ
C
B
A
B
D mongod
プロセス
OSにメモリに
乗せてもらう
E
デフォルトがMMAPv1からWiredTigerに
• MMAPv1における更新=in place(その場)
ディスク
メモリ
{ name : "abe",
age : 20 }
doc1 doc2 doc3
{ name : "abe",
age : 20 }
ディスク
メモリ
{ name : "abe",
age : 20 }
doc1 doc2 doc3
{ name : "abe",
age : 21 }
ディスク
メモリ
doc1 doc2 doc3
{ name : "abe",
age : 21 }
1.メモリに乗せる
2.更新する(アプリに応答)
3.非同期でディスクに書き戻す
{ name : "abe",
age : 21 }
クエリスレッド
クエリスレッド
同期スレッド
注意)ジャーナルを使っていないときの動き
デフォルトがMMAPv1からWiredTigerに
• MMAPv1の問題点
o 書き込むときにロックを取る必要がある
 読み取りがブロックされ、システムのスループットは低下
 コレクション全体のロック(ver 2.xではデータベースロック)
o メモリ使用量を制御できない(OSまかせ)
 OSは空いているだけ使う
o 物理的に収まりきらない場合は、ディスク上で再配置が起こる
 非常に重い処理
 物理的にデータの穴が開き、フラグメンテーション発生。
ディスク
メモリ
doc1 doc2 doc3
{ name : "abe",
age : 20, id:123456}
{ name : "abe",
age : 20, id:123456}入らない!
デフォルトがMMAPv1からWiredTigerに
• WiredTigerとは
o 3.0から搭載されているストレージ
o 3.2からはデフォルト
o 追記型
o 書き込みが読み込みをロックしないアルゴリズム(MVCC)を採用し、ド
キュメントレベルのロックを実現
o データ圧縮可能
o メモリ使用量コントロール可能
o インデックスとデータファイルの分離可能(IOの分散ができる)
o ストレージの統計情報が出力できるようになった
• つまり、「ちゃんとした」ストレージ
デフォルトがMMAPv1からWiredTigerに
• WiredTigerにおける更新=追記型 (MVCC)
{"no": 11}
{"no": 11}
チェックポイント直後
メモリ
ディスク {"no": 11}
{"no": 11}
noが12に更新された
update{"no": 12}
{"no": 11}
{"no": 11}
update{"no": 12}
update{"no": 13}
noが13に更新された
{"no": 11}
{"no": 11}
update{"no": 12}
update{"no": 13}
チェックポイント
Eviction(立ち退き)
{"no": 13}
{"no": 13}
チェックポイント直後
version 2
version 1
version 2
version 1
version 3
更新中の読み込みは、
旧バージョンを読み取る
⇒読み込みは待たされない!
デフォルトがMMAPv1からWiredTigerに
• WiredTigerの更新の特徴
o 書き込みは1ドキュメントを追記するだけ
o 読み取りは書き込みを待たない
o ディスクに書き戻される時にディスク上の物理配置を都度調整するた
め、フラグメンテーションは発生しない
• その他ポイント
o ジャーナルを有効にすると、追記書き込みをディスクに永続化できる
 チェックポイントの間にクラッシュしてもデータロストなし
o インデックスとデータファイルはWiredTigerのトランザクション機能を
使って同時に更新される
o 複数ドキュメントを跨いだトランザクションは提供されない
その他ストレージ
• インメモリ
o ディスクIOを行わないインメモリストレージエンジンinMemoryが選べる
ようになった
o 有償のEnterprise版のみ
o ベータ版
• 暗号化対応のWiredTiger
o WiredTigerを暗号化できる
o HIPAA, PCI-DSS, FERPAといったセキュリティの標準化に準拠してい
ます
o 有償のEnterprise版のみ
• テスト用エフェメラル
o テストで毎回データをクリアしなくてよい、テスト用のストレージエンジ
ンephemeralForTestが選べる
o ベータ版です。
運用
運用の改善
• mongodumpとmongorestoreの改良
o 圧縮に対応
o リモートのmongodに対してdumpしたデータをストリームで
転送しrestoreすることができる
• 診断用データ
o デフォルトで1秒ごとに診断用データ(Diagnostic Data)がと
られるようになった。
o データはデータフォルダにファイルとして出力される。
その他のエンハンス
• WiredTigerがfsyncでロックできるようになった
o 静止点を取りやすくなった
• 32bitバイナリが非推奨になった。
• Write Concernの仕様がちょっと変わった
• journalCommitIntervalのオプションがWiredTiger
でも使えるようになった
最後に書籍紹介 近日発売
• 著者
o 小笠原 徳彦
• タイトル
o はじめてのMongoDB
―オープンソースのNoSQLデータベース
• 内容
o 初心者向け
o アプリ開発者向け ≠DBA
o コマンド例多め
ちょっとMongoDB使ってみたいな、
MongoDBを使ったアプリケーションを
書いてみたいな」という人の背中をお
してあげる本を目指して書きました。
ぜひMongoDBを使ったアプリ開発を
楽しんでみてください!

More Related Content

What's hot

ザ・ドキュメント~うまくいかないNoSQL~
ザ・ドキュメント~うまくいかないNoSQL~ザ・ドキュメント~うまくいかないNoSQL~
ザ・ドキュメント~うまくいかないNoSQL~Akihiro Kuwano
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法Tetsutaro Watanabe
 
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRecruit Technologies
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBmoai kids
 
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎Naruhiko Ogasawara
 
MongoDBざっくり解説
MongoDBざっくり解説MongoDBざっくり解説
MongoDBざっくり解説知教 本間
 
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介がっつりMongoDB事例紹介
がっつりMongoDB事例紹介Tetsutaro Watanabe
 
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜Masakazu Matsushita
 
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについてippei_suzuki
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜Takahiro Inoue
 
MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!Tetsutaro Watanabe
 
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal LandソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal LandMasakazu Matsushita
 
Mongo dbを知ろう
Mongo dbを知ろうMongo dbを知ろう
Mongo dbを知ろうCROOZ, inc.
 
MongoDBご紹介:事例紹介もあり
MongoDBご紹介:事例紹介もありMongoDBご紹介:事例紹介もあり
MongoDBご紹介:事例紹介もありippei_suzuki
 
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発infinite_loop
 
ARC-009_RDB 技術者のための NoSQL ガイド
ARC-009_RDB 技術者のための NoSQL ガイドARC-009_RDB 技術者のための NoSQL ガイド
ARC-009_RDB 技術者のための NoSQL ガイドdecode2016
 
ソーシャルゲームにおけるAWS/MongoDB利用事例
ソーシャルゲームにおけるAWS/MongoDB利用事例ソーシャルゲームにおけるAWS/MongoDB利用事例
ソーシャルゲームにおけるAWS/MongoDB利用事例Masakazu Matsushita
 

What's hot (20)

ザ・ドキュメント~うまくいかないNoSQL~
ザ・ドキュメント~うまくいかないNoSQL~ザ・ドキュメント~うまくいかないNoSQL~
ザ・ドキュメント~うまくいかないNoSQL~
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
 
初めてのMongo db
初めてのMongo db初めてのMongo db
初めてのMongo db
 
MongoDBざっくり解説
MongoDBざっくり解説MongoDBざっくり解説
MongoDBざっくり解説
 
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介がっつりMongoDB事例紹介
がっつりMongoDB事例紹介
 
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜
 
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
 
MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!
 
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal LandソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
 
Mongo dbを知ろう
Mongo dbを知ろうMongo dbを知ろう
Mongo dbを知ろう
 
MongoDBご紹介:事例紹介もあり
MongoDBご紹介:事例紹介もありMongoDBご紹介:事例紹介もあり
MongoDBご紹介:事例紹介もあり
 
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
 
Open il vol4
Open il vol4Open il vol4
Open il vol4
 
Cassandra v0.6-siryou
Cassandra v0.6-siryouCassandra v0.6-siryou
Cassandra v0.6-siryou
 
ARC-009_RDB 技術者のための NoSQL ガイド
ARC-009_RDB 技術者のための NoSQL ガイドARC-009_RDB 技術者のための NoSQL ガイド
ARC-009_RDB 技術者のための NoSQL ガイド
 
ソーシャルゲームにおけるAWS/MongoDB利用事例
ソーシャルゲームにおけるAWS/MongoDB利用事例ソーシャルゲームにおけるAWS/MongoDB利用事例
ソーシャルゲームにおけるAWS/MongoDB利用事例
 

Viewers also liked

SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料
SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料
SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料樽八 仲川
 
業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法Yoshitaka Mori
 
業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法Co-graph Inc.
 
[コグラフ]spss modelerによるデータ加工入門
[コグラフ]spss modelerによるデータ加工入門[コグラフ]spss modelerによるデータ加工入門
[コグラフ]spss modelerによるデータ加工入門Co-graph Inc.
 
Casual Compression on MongoDB
Casual Compression on MongoDBCasual Compression on MongoDB
Casual Compression on MongoDBmoai kids
 
MongoDBではじめるカジュアルなタイムラインシステム
MongoDBではじめるカジュアルなタイムラインシステムMongoDBではじめるカジュアルなタイムラインシステム
MongoDBではじめるカジュアルなタイムラインシステムHitoshi Asai
 
Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)
Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)
Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)Evan Chan
 
[CB16] 難解なウェブアプリケーションの脆弱性 by Andrés Riancho
[CB16] 難解なウェブアプリケーションの脆弱性 by Andrés Riancho[CB16] 難解なウェブアプリケーションの脆弱性 by Andrés Riancho
[CB16] 難解なウェブアプリケーションの脆弱性 by Andrés RianchoCODE BLUE
 
MongoDB WiredTiger Internals
MongoDB WiredTiger InternalsMongoDB WiredTiger Internals
MongoDB WiredTiger InternalsNorberto Leite
 
最上級の簡易性を備えたオープンソースDBクラウド基盤 Composeのご紹介
最上級の簡易性を備えたオープンソースDBクラウド基盤 Composeのご紹介最上級の簡易性を備えたオープンソースDBクラウド基盤 Composeのご紹介
最上級の簡易性を備えたオープンソースDBクラウド基盤 Composeのご紹介IBM Analytics Japan
 
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)Yuji Otani
 
担当プロダクトのDBをまるっとリプレイスするためにやったこと
担当プロダクトのDBをまるっとリプレイスするためにやったこと担当プロダクトのDBをまるっとリプレイスするためにやったこと
担当プロダクトのDBをまるっとリプレイスするためにやったことShinya Takara
 
WiredTigerストレージエンジン楽しい
WiredTigerストレージエンジン楽しいWiredTigerストレージエンジン楽しい
WiredTigerストレージエンジン楽しいAkihiro Kuwano
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化Kumazaki Hiroki
 
冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safeKumazaki Hiroki
 
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所Recruit Technologies
 

Viewers also liked (17)

PHPコアから読み解くPHP5.5
PHPコアから読み解くPHP5.5PHPコアから読み解くPHP5.5
PHPコアから読み解くPHP5.5
 
SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料
SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料
SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料
 
業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法
 
業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法
 
[コグラフ]spss modelerによるデータ加工入門
[コグラフ]spss modelerによるデータ加工入門[コグラフ]spss modelerによるデータ加工入門
[コグラフ]spss modelerによるデータ加工入門
 
Casual Compression on MongoDB
Casual Compression on MongoDBCasual Compression on MongoDB
Casual Compression on MongoDB
 
MongoDBではじめるカジュアルなタイムラインシステム
MongoDBではじめるカジュアルなタイムラインシステムMongoDBではじめるカジュアルなタイムラインシステム
MongoDBではじめるカジュアルなタイムラインシステム
 
Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)
Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)
Spark Job Server and Spark as a Query Engine (Spark Meetup 5/14)
 
[CB16] 難解なウェブアプリケーションの脆弱性 by Andrés Riancho
[CB16] 難解なウェブアプリケーションの脆弱性 by Andrés Riancho[CB16] 難解なウェブアプリケーションの脆弱性 by Andrés Riancho
[CB16] 難解なウェブアプリケーションの脆弱性 by Andrés Riancho
 
MongoDB WiredTiger Internals
MongoDB WiredTiger InternalsMongoDB WiredTiger Internals
MongoDB WiredTiger Internals
 
最上級の簡易性を備えたオープンソースDBクラウド基盤 Composeのご紹介
最上級の簡易性を備えたオープンソースDBクラウド基盤 Composeのご紹介最上級の簡易性を備えたオープンソースDBクラウド基盤 Composeのご紹介
最上級の簡易性を備えたオープンソースDBクラウド基盤 Composeのご紹介
 
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
 
担当プロダクトのDBをまるっとリプレイスするためにやったこと
担当プロダクトのDBをまるっとリプレイスするためにやったこと担当プロダクトのDBをまるっとリプレイスするためにやったこと
担当プロダクトのDBをまるっとリプレイスするためにやったこと
 
WiredTigerストレージエンジン楽しい
WiredTigerストレージエンジン楽しいWiredTigerストレージエンジン楽しい
WiredTigerストレージエンジン楽しい
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化
 
冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safe
 
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
 

Similar to MongoDB3.2の紹介

泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) Akihiro Kuwano
 
小規模アプリ開発者が中から見るモンスターストライク
小規模アプリ開発者が中から見るモンスターストライク小規模アプリ開発者が中から見るモンスターストライク
小規模アプリ開発者が中から見るモンスターストライクyoshiteru kawamata
 
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜Taro Matsuzawa
 
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)Akihiro Kuwano
 
Amazon dynamo db、cloudant、blockchainの紹介 20160706
Amazon dynamo db、cloudant、blockchainの紹介 20160706Amazon dynamo db、cloudant、blockchainの紹介 20160706
Amazon dynamo db、cloudant、blockchainの紹介 20160706Tsuyoshi Hirayama
 
Stan勉強会資料(前編)
Stan勉強会資料(前編) Stan勉強会資料(前編)
Stan勉強会資料(前編) daiki hojo
 
ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例知教 本間
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門じゅん なかざ
 
LEGO MINDSTORMS EV3 API
LEGO MINDSTORMS EV3 APILEGO MINDSTORMS EV3 API
LEGO MINDSTORMS EV3 APIAkira Hatsune
 
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)Amazon Web Services Japan
 
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~じゅん なかざ
 
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed なテレコムコアシステムを構築・運用してる話AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed なテレコムコアシステムを構築・運用してる話
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話SORACOM,INC
 
ソーシャルアプリを分析してみた
ソーシャルアプリを分析してみたソーシャルアプリを分析してみた
ソーシャルアプリを分析してみたDrecom Co., Ltd.
 
第4回名古屋Android勉強会資料
第4回名古屋Android勉強会資料第4回名古屋Android勉強会資料
第4回名古屋Android勉強会資料magoroku Yamamoto
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニックinfinite_loop
 
Designing data intensive applications-ch4
Designing data intensive applications-ch4Designing data intensive applications-ch4
Designing data intensive applications-ch4Motohiro Kanda
 
Sqlの書き方セミナー資料
Sqlの書き方セミナー資料Sqlの書き方セミナー資料
Sqlの書き方セミナー資料Sadayoshi Ikushima
 
分割と整合性と戦う
分割と整合性と戦う分割と整合性と戦う
分割と整合性と戦うYugo Shimizu
 

Similar to MongoDB3.2の紹介 (20)

泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
小規模アプリ開発者が中から見るモンスターストライク
小規模アプリ開発者が中から見るモンスターストライク小規模アプリ開発者が中から見るモンスターストライク
小規模アプリ開発者が中から見るモンスターストライク
 
activerecord-turntable
activerecord-turntableactiverecord-turntable
activerecord-turntable
 
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜
 
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
 
Amazon dynamo db、cloudant、blockchainの紹介 20160706
Amazon dynamo db、cloudant、blockchainの紹介 20160706Amazon dynamo db、cloudant、blockchainの紹介 20160706
Amazon dynamo db、cloudant、blockchainの紹介 20160706
 
Stan勉強会資料(前編)
Stan勉強会資料(前編) Stan勉強会資料(前編)
Stan勉強会資料(前編)
 
ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
 
LEGO MINDSTORMS EV3 API
LEGO MINDSTORMS EV3 APILEGO MINDSTORMS EV3 API
LEGO MINDSTORMS EV3 API
 
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
 
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~
 
MongoDB勉強会資料
MongoDB勉強会資料MongoDB勉強会資料
MongoDB勉強会資料
 
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed なテレコムコアシステムを構築・運用してる話AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed なテレコムコアシステムを構築・運用してる話
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話
 
ソーシャルアプリを分析してみた
ソーシャルアプリを分析してみたソーシャルアプリを分析してみた
ソーシャルアプリを分析してみた
 
第4回名古屋Android勉強会資料
第4回名古屋Android勉強会資料第4回名古屋Android勉強会資料
第4回名古屋Android勉強会資料
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
 
Designing data intensive applications-ch4
Designing data intensive applications-ch4Designing data intensive applications-ch4
Designing data intensive applications-ch4
 
Sqlの書き方セミナー資料
Sqlの書き方セミナー資料Sqlの書き方セミナー資料
Sqlの書き方セミナー資料
 
分割と整合性と戦う
分割と整合性と戦う分割と整合性と戦う
分割と整合性と戦う
 

More from Tetsutaro Watanabe

データサイエンティスト向け性能問題対応の基礎
データサイエンティスト向け性能問題対応の基礎データサイエンティスト向け性能問題対応の基礎
データサイエンティスト向け性能問題対応の基礎Tetsutaro Watanabe
 
ドライブレコーダの動画を使った道路情報の自動差分抽出
ドライブレコーダの動画を使った道路情報の自動差分抽出ドライブレコーダの動画を使った道路情報の自動差分抽出
ドライブレコーダの動画を使った道路情報の自動差分抽出Tetsutaro Watanabe
 
IoTデバイスデータ収集の難しい点
IoTデバイスデータ収集の難しい点IoTデバイスデータ収集の難しい点
IoTデバイスデータ収集の難しい点Tetsutaro Watanabe
 
ドライブレコーダの画像認識による道路情報の自動差分抽出
ドライブレコーダの画像認識による道路情報の自動差分抽出ドライブレコーダの画像認識による道路情報の自動差分抽出
ドライブレコーダの画像認識による道路情報の自動差分抽出Tetsutaro Watanabe
 
先駆者に学ぶ MLOpsの実際
先駆者に学ぶ MLOpsの実際先駆者に学ぶ MLOpsの実際
先駆者に学ぶ MLOpsの実際Tetsutaro Watanabe
 
データ収集の基本と「JapanTaxi」アプリにおける実践例
データ収集の基本と「JapanTaxi」アプリにおける実践例データ収集の基本と「JapanTaxi」アプリにおける実践例
データ収集の基本と「JapanTaxi」アプリにおける実践例Tetsutaro Watanabe
 
ML Ops NYC 19 & Strata Data Conference 2019 NewYork 注目セッションまとめ
ML Ops NYC 19 & Strata Data Conference 2019 NewYork 注目セッションまとめML Ops NYC 19 & Strata Data Conference 2019 NewYork 注目セッションまとめ
ML Ops NYC 19 & Strata Data Conference 2019 NewYork 注目セッションまとめTetsutaro Watanabe
 
タクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみた
タクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみたタクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみた
タクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみたTetsutaro Watanabe
 
JapanTaxiにおけるSagemaker+αによる機械学習アプリケーションの本番運用
JapanTaxiにおけるSagemaker+αによる機械学習アプリケーションの本番運用JapanTaxiにおけるSagemaker+αによる機械学習アプリケーションの本番運用
JapanTaxiにおけるSagemaker+αによる機械学習アプリケーションの本番運用Tetsutaro Watanabe
 
JapanTaxiにおけるML Ops 〜機械学習の開発運用プロセス〜
JapanTaxiにおけるML Ops 〜機械学習の開発運用プロセス〜JapanTaxiにおけるML Ops 〜機械学習の開発運用プロセス〜
JapanTaxiにおけるML Ops 〜機械学習の開発運用プロセス〜Tetsutaro Watanabe
 
ビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionTetsutaro Watanabe
 
Google Cloud Next '18 Recap/報告会 機械学習関連
Google Cloud Next '18 Recap/報告会 機械学習関連Google Cloud Next '18 Recap/報告会 機械学習関連
Google Cloud Next '18 Recap/報告会 機械学習関連Tetsutaro Watanabe
 
巨大なサービスと膨大なデータを支えるプラットフォーム

巨大なサービスと膨大なデータを支えるプラットフォーム
巨大なサービスと膨大なデータを支えるプラットフォーム

巨大なサービスと膨大なデータを支えるプラットフォーム
Tetsutaro Watanabe
 
リクルートを支える横断データ基盤と機械学習の適用事例
リクルートを支える横断データ基盤と機械学習の適用事例リクルートを支える横断データ基盤と機械学習の適用事例
リクルートを支える横断データ基盤と機械学習の適用事例Tetsutaro Watanabe
 
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version - ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version - Tetsutaro Watanabe
 
リクルートテクノロジーズ における EMR の活用とコスト圧縮方法
リクルートテクノロジーズ における EMR の活用とコスト圧縮方法リクルートテクノロジーズ における EMR の活用とコスト圧縮方法
リクルートテクノロジーズ における EMR の活用とコスト圧縮方法Tetsutaro Watanabe
 

More from Tetsutaro Watanabe (18)

データサイエンティスト向け性能問題対応の基礎
データサイエンティスト向け性能問題対応の基礎データサイエンティスト向け性能問題対応の基礎
データサイエンティスト向け性能問題対応の基礎
 
MLOpsはバズワード
MLOpsはバズワードMLOpsはバズワード
MLOpsはバズワード
 
ドライブレコーダの動画を使った道路情報の自動差分抽出
ドライブレコーダの動画を使った道路情報の自動差分抽出ドライブレコーダの動画を使った道路情報の自動差分抽出
ドライブレコーダの動画を使った道路情報の自動差分抽出
 
IoTデバイスデータ収集の難しい点
IoTデバイスデータ収集の難しい点IoTデバイスデータ収集の難しい点
IoTデバイスデータ収集の難しい点
 
ドライブレコーダの画像認識による道路情報の自動差分抽出
ドライブレコーダの画像認識による道路情報の自動差分抽出ドライブレコーダの画像認識による道路情報の自動差分抽出
ドライブレコーダの画像認識による道路情報の自動差分抽出
 
先駆者に学ぶ MLOpsの実際
先駆者に学ぶ MLOpsの実際先駆者に学ぶ MLOpsの実際
先駆者に学ぶ MLOpsの実際
 
データ収集の基本と「JapanTaxi」アプリにおける実践例
データ収集の基本と「JapanTaxi」アプリにおける実践例データ収集の基本と「JapanTaxi」アプリにおける実践例
データ収集の基本と「JapanTaxi」アプリにおける実践例
 
ML Ops NYC 19 & Strata Data Conference 2019 NewYork 注目セッションまとめ
ML Ops NYC 19 & Strata Data Conference 2019 NewYork 注目セッションまとめML Ops NYC 19 & Strata Data Conference 2019 NewYork 注目セッションまとめ
ML Ops NYC 19 & Strata Data Conference 2019 NewYork 注目セッションまとめ
 
タクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみた
タクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみたタクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみた
タクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみた
 
JapanTaxiにおけるSagemaker+αによる機械学習アプリケーションの本番運用
JapanTaxiにおけるSagemaker+αによる機械学習アプリケーションの本番運用JapanTaxiにおけるSagemaker+αによる機械学習アプリケーションの本番運用
JapanTaxiにおけるSagemaker+αによる機械学習アプリケーションの本番運用
 
JapanTaxiにおけるML Ops 〜機械学習の開発運用プロセス〜
JapanTaxiにおけるML Ops 〜機械学習の開発運用プロセス〜JapanTaxiにおけるML Ops 〜機械学習の開発運用プロセス〜
JapanTaxiにおけるML Ops 〜機械学習の開発運用プロセス〜
 
ビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年version
 
Google Cloud Next '18 Recap/報告会 機械学習関連
Google Cloud Next '18 Recap/報告会 機械学習関連Google Cloud Next '18 Recap/報告会 機械学習関連
Google Cloud Next '18 Recap/報告会 機械学習関連
 
巨大なサービスと膨大なデータを支えるプラットフォーム

巨大なサービスと膨大なデータを支えるプラットフォーム
巨大なサービスと膨大なデータを支えるプラットフォーム

巨大なサービスと膨大なデータを支えるプラットフォーム

 
リクルートを支える横断データ基盤と機械学習の適用事例
リクルートを支える横断データ基盤と機械学習の適用事例リクルートを支える横断データ基盤と機械学習の適用事例
リクルートを支える横断データ基盤と機械学習の適用事例
 
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version - ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
ビッグデータ処理データベースの全体像と使い分け - 2017年 Version -
 
リクルートテクノロジーズ における EMR の活用とコスト圧縮方法
リクルートテクノロジーズ における EMR の活用とコスト圧縮方法リクルートテクノロジーズ における EMR の活用とコスト圧縮方法
リクルートテクノロジーズ における EMR の活用とコスト圧縮方法
 
MongoDBの監視
MongoDBの監視MongoDBの監視
MongoDBの監視
 

MongoDB3.2の紹介