Enviar pesquisa
Carregar
MongoDB勉強会資料
•
7 gostaram
•
2,833 visualizações
Hiromune Shishido
Seguir
第二回MongoDB勉強会の発表資料です
Leia menos
Leia mais
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 29
Baixar agora
Baixar para ler offline
Recomendados
MongoDBとAjaxで作る解析フロントエンド&GraphDBを用いたソーシャルデータ解析
MongoDBとAjaxで作る解析フロントエンド&GraphDBを用いたソーシャルデータ解析
Takahiro Inoue
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
Masakazu Matsushita
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
Takahiro Inoue
はじめてのMongoDB
はじめてのMongoDB
Keisuke Izumiya
ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例
知教 本間
JavaでインメモリSQLエンジンを作ってみた
JavaでインメモリSQLエンジンを作ってみた
JustSystems Corporation
MongoDBざっくり解説
MongoDBざっくり解説
知教 本間
Recomendados
MongoDBとAjaxで作る解析フロントエンド&GraphDBを用いたソーシャルデータ解析
MongoDBとAjaxで作る解析フロントエンド&GraphDBを用いたソーシャルデータ解析
Takahiro Inoue
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
Masakazu Matsushita
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
Takahiro Inoue
はじめてのMongoDB
はじめてのMongoDB
Keisuke Izumiya
ソーシャルゲームログ解析基盤のMongoDB活用事例
ソーシャルゲームログ解析基盤のMongoDB活用事例
知教 本間
JavaでインメモリSQLエンジンを作ってみた
JavaでインメモリSQLエンジンを作ってみた
JustSystems Corporation
MongoDBざっくり解説
MongoDBざっくり解説
知教 本間
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例
Akihiro Kuwano
Cassandra v0.6-siryou
Cassandra v0.6-siryou
あしたのオープンソース研究所
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜
Masakazu Matsushita
月間10億pvを支えるmongo db
月間10億pvを支えるmongo db
Yuji Isobe
Fluentd+elasticsearch+kibana(fluentd編)
Fluentd+elasticsearch+kibana(fluentd編)
Daisuke Kikuchi
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
Naruhiko Ogasawara
カジュアルにソースコードリーディング
カジュアルにソースコードリーディング
Akihiro Okuno
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
Naruhiko Ogasawara
Mongo dbを知ろう
Mongo dbを知ろう
CROOZ, inc.
MongoDB
MongoDB
あしたのオープンソース研究所
Mongo dbを半年ちょっと運用してみた
Mongo dbを半年ちょっと運用してみた
htty_hasumi
MongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasual
Yasuhiro Matsuo
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて
ippei_suzuki
Mongodb 紹介
Mongodb 紹介
Ryo Matsumura
ソーシャルゲームにおけるAWS/MongoDB利用事例
ソーシャルゲームにおけるAWS/MongoDB利用事例
Masakazu Matsushita
Kibanaでsysstatを可視化する
Kibanaでsysstatを可視化する
Kensuke Maeda
Mongodb
Mongodb
Satoru Mikami
MongoDB Configパラメータ解説
MongoDB Configパラメータ解説
Shoken Fujisaki
MyNA JPUG study 20160220-postgresql-json-datatype
MyNA JPUG study 20160220-postgresql-json-datatype
Toshi Harada
コンテキストデータの永続化のための戦略
コンテキストデータの永続化のための戦略
fisuda
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
Akihiro Kuwano
Node.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャー
Yahoo!デベロッパーネットワーク
Mais conteúdo relacionado
Mais procurados
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例
Akihiro Kuwano
Cassandra v0.6-siryou
Cassandra v0.6-siryou
あしたのオープンソース研究所
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜
Masakazu Matsushita
月間10億pvを支えるmongo db
月間10億pvを支えるmongo db
Yuji Isobe
Fluentd+elasticsearch+kibana(fluentd編)
Fluentd+elasticsearch+kibana(fluentd編)
Daisuke Kikuchi
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
Naruhiko Ogasawara
カジュアルにソースコードリーディング
カジュアルにソースコードリーディング
Akihiro Okuno
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
Naruhiko Ogasawara
Mongo dbを知ろう
Mongo dbを知ろう
CROOZ, inc.
MongoDB
MongoDB
あしたのオープンソース研究所
Mongo dbを半年ちょっと運用してみた
Mongo dbを半年ちょっと運用してみた
htty_hasumi
MongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasual
Yasuhiro Matsuo
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて
ippei_suzuki
Mongodb 紹介
Mongodb 紹介
Ryo Matsumura
ソーシャルゲームにおけるAWS/MongoDB利用事例
ソーシャルゲームにおけるAWS/MongoDB利用事例
Masakazu Matsushita
Kibanaでsysstatを可視化する
Kibanaでsysstatを可視化する
Kensuke Maeda
Mongodb
Mongodb
Satoru Mikami
MongoDB Configパラメータ解説
MongoDB Configパラメータ解説
Shoken Fujisaki
MyNA JPUG study 20160220-postgresql-json-datatype
MyNA JPUG study 20160220-postgresql-json-datatype
Toshi Harada
コンテキストデータの永続化のための戦略
コンテキストデータの永続化のための戦略
fisuda
Mais procurados
(20)
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例
Cassandra v0.6-siryou
Cassandra v0.6-siryou
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜
月間10億pvを支えるmongo db
月間10億pvを支えるmongo db
Fluentd+elasticsearch+kibana(fluentd編)
Fluentd+elasticsearch+kibana(fluentd編)
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
カジュアルにソースコードリーディング
カジュアルにソースコードリーディング
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
Mongo dbを知ろう
Mongo dbを知ろう
MongoDB
MongoDB
Mongo dbを半年ちょっと運用してみた
Mongo dbを半年ちょっと運用してみた
MongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasual
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて
Mongodb 紹介
Mongodb 紹介
ソーシャルゲームにおけるAWS/MongoDB利用事例
ソーシャルゲームにおけるAWS/MongoDB利用事例
Kibanaでsysstatを可視化する
Kibanaでsysstatを可視化する
Mongodb
Mongodb
MongoDB Configパラメータ解説
MongoDB Configパラメータ解説
MyNA JPUG study 20160220-postgresql-json-datatype
MyNA JPUG study 20160220-postgresql-json-datatype
コンテキストデータの永続化のための戦略
コンテキストデータの永続化のための戦略
Semelhante a MongoDB勉強会資料
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
Akihiro Kuwano
Node.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャー
Yahoo!デベロッパーネットワーク
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~
じゅん なかざ
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
じゅん なかざ
Mongo db world 2018
Mongo db world 2018
Creationline,inc.
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?
Hiroaki Kubota
MongoDBではじめるカジュアルなタイムラインシステム
MongoDBではじめるカジュアルなタイムラインシステム
Hitoshi Asai
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
griddb
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
Developers Summit
Osc2012.dbに行ってきました
Osc2012.dbに行ってきました
Masaru Kobashigawa
Firefoxの開発プロセス
Firefoxの開発プロセス
Makoto Kato
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
Masahiro Nagano
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
GoAzure
TypeScriptへの入口
TypeScriptへの入口
Sunao Tomita
Sc2009autumn s2robot
Sc2009autumn s2robot
Shinsuke Sugaya
Introduction to MongoDB
Introduction to MongoDB
moai kids
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
genroku
Semelhante a MongoDB勉強会資料
(20)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (前編)
Node.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャー
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
Mongo db world 2018
Mongo db world 2018
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?
MongoDBではじめるカジュアルなタイムラインシステム
MongoDBではじめるカジュアルなタイムラインシステム
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
オープンソースのIoT向けスケールアウト型データベース GridDB 〜性能ベンチマーク結果とOSSを利用したビッグデータ分析環境〜
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
Osc2012.dbに行ってきました
Osc2012.dbに行ってきました
Firefoxの開発プロセス
Firefoxの開発プロセス
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
TypeScriptへの入口
TypeScriptへの入口
Sc2009autumn s2robot
Sc2009autumn s2robot
Introduction to MongoDB
Introduction to MongoDB
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
Webブラウザで使える文献Web API取得結果のスプレッドシート化 ~ Google Colab始めました ~
MongoDB勉強会資料
1.
Tachy with MongoDB
株式会社サイバーエージェント アメーバ事業本部 宍戸展志
2.
MongoDB勉強会 第二回 MongoDB勉強会 • 自己紹介
• 宍戸展志(ししど ひろむね) 25歳 • Twitter @joe_hrmn • 所属 • 株式会社 サイバーエージェント • Tachy(プレリリース中)担当 アプリケーションエンジニア • その他 • サッカー大好き • Piggに似てる 2
3.
MongoDB勉強会 第二回 MongoDB勉強会 アジェンダ • Tachyについて •
システム構成 • MongoDBの使いどころ • 苦労した話 • これから 3
4.
MongoDB勉強会 第二回 MongoDB勉強会 Tachy • 実名制SNS
• タイムライン形式で情報を表示 • ひとこと、写真投稿、予定機能 etc • 『閲覧権限』の設定あり • 使っている技術要素 • MongoDB » Morphia http://code.google.com/p/morphia/ • MySQL • ActiveMQ ( 5.3.2 ) 4
5.
MongoDB勉強会 第二回 MongoDB勉強会
5
6.
MongoDB勉強会 第二回 MongoDB勉強会
\(^o^)/ / 6
7.
MongoDB勉強会 第二回 MongoDB勉強会
を使った理由 MongoDBを使った理由 • 使ってみたかった • 社内ではpicoで利用実績あり • データ分散の処理は大変 • データアクセスが高速(と聞いて) • 自動でfailover • ドキュメント形式の柔軟性 7
8.
MongoDB勉強会 第二回 MongoDB勉強会 システム構成
【Web App】 】 【ActiveMQ】 】 【mongoDB】 】 】 【MySQL】 8
9.
MongoDB勉強会 第二回 MongoDB勉強会 MongoDB • Ver
1.6.5 • ReplicaSet + Sharding webApp MQ API • JavaDriver 【client】 • 2.4 • morphia mongoc mongos • 0.99 mongod mongod mongod 9
10.
MongoDB勉強会 第二回 MongoDB勉強会 Collections • Entry •
Timeline • Room Etc… 10
11.
MongoDB勉強会 第二回 MongoDB勉強会 Entry
11
12.
MongoDB勉強会 第二回 MongoDB勉強会 operation@Entry • 発言の取得
– db.Entry.find({entryId : 123, deleteFlag:0}); • コメントの取得 – db.Entry.find({replyEntryId:1234, deleteFlag:0}).sort({registDate:-1}); • データのinsert(1件ずつ) • 削除(→deleteFlagのupdate) 12
13.
MongoDB勉強会 第二回 MongoDB勉強会 Timeline
13
14.
MongoDB勉強会 第二回 MongoDB勉強会 operation@Timeline • ユーザーのタイムラインの取得
– db.Timeline.find({userId:1, registDate > xxx}); →この部分には複合indexを定義 db.Timeline.ensureIndex({userId:1, registDate:-1}); • Insert(1件ずつ) – 1Entryに対して、100人に配る場合は100回ループを回す形 – 後々ボトルネックになるので変更 14
15.
MongoDB勉強会 第二回 MongoDB勉強会 Room
Embedオブジェクトとして Listを内部に保持 Ex) db.Room.findOne({members:26}); 15
16.
MongoDB勉強会 第二回 MongoDB勉強会 >
db.Room.findOne({roomId:603}); { "_id" : ObjectId("4d9e772074978c29974fba92"), "roomId" : NumberLong(603), "userId" : NumberLong(238), "text" : "限定ヒトコト(グループ5)", "registDate" : "Fri Apr 08 2011 11:46:56 GMT+0900 (JST)", "editDate" : "Fri Apr 08 2011 11:46:56 GMT+0900 (JST)", "emaFlag" : 0, "deleteFlag" : 0, "members" : [ NumberLong(239), NumberLong(274), NumberLong(238) ] } 16
17.
MongoDB勉強会 第二回 MongoDB勉強会 operation@Room • Room情報の取得
– db.Room.find({roomId:123}); • Roomに含まれているか – db.Room.find({members:123}); • Insert – 1件ずつ • Update – メンバーの追加 17
18.
MongoDB勉強会 第二回 MongoDB勉強会 テストしてみました • 環境
– App (Apache / Tomcat) • Intel(R) Xeon(R) CPU X3430 @ 2.40GHz (4core) • 12G RAM – MongoDB • Xfs • Intel(R) Xeon(R) CPU X3430 @ 2.40GHz (4core) • 16G RAM – ActiveMQ • Intel(R) Xeon(R) CPU L5410 @ 2.33GHz (4core) • 12G RAM 18
19.
MongoDB勉強会 第二回 MongoDB勉強会 タイムラインの作成が重い・・・ • 変遷
– timelineDao.save(timeline, WriteConcern.SAFE); – 1件ずつinsert » Reciever側の負荷が高騰 19
20.
MongoDB勉強会 第二回 MongoDB勉強会 タイムラインの作成が重い・・・ • 変遷
– timelineDao.save(timeline, WriteConcern.SAFE); – 1件ずつinsert » Reciever側の負荷が高騰 – timelineDao.getCollection().insert(timelineList, WriteConcern.SAFE); – Bulk insertに変更 » Thread dumpなどで見ているとまだ詰まってる 20
21.
MongoDB勉強会 第二回 MongoDB勉強会 タイムラインの作成が重い・・・ • 変遷
– timelineDao.save(timeline, WriteConcern.SAFE); – 1件ずつinsert » Reciever側の負荷が高騰 – timelineDao.getCollection().insert(timelineList, WriteConcern.SAFE); – Bulk insertに変更 » Thread dumpなどで見ているとまだ詰まってる – timelineDao.getCollection().insert(timelineList); – 書き込みチェックなしに 21
22.
MongoDB勉強会 第二回 MongoDB勉強会 タイムラインの取得も重い・・・ • TimelineにはentryIdしかentry情報が無い
• 結局EntryCollectionに取得件数分find()する必要がある » CSが頻発 • 変遷 – db.Entry.find({entryId:12345}); » 必要な数だけ 22
23.
MongoDB勉強会 第二回 MongoDB勉強会 タイムラインの取得も重い・・・ • TimelineにはentryIdしかentry情報が無い
• 結局EntryCollectionに取得件数分find()する必要がある » CSが頻発 • 変遷 – db.Entry.find({entryId:12345}); » 必要な数だけ – entryIdListを事前に作成して db.Entry.find({entryId:{$in : entryIdList}}).sort({registDate:-1}); 23
24.
MongoDB勉強会 第二回 MongoDB勉強会 【Error】 Switching
Master 】 • 接続先がmongosプロセス1つの時、mongoインスタンス 作成時に渡すIPがListだと発生 ■before List<ServerAddress> replSets = new ArrayList<ServerAddress>(); for(String server : serverList) replSets.add(new ServerAddress(server, port)); mongo = new Mongo(replSets, option.createMongoOptions()); ■after ServerAddress addr = new ServerAddress(mongos, port); mongo = new Mongo(addr, option.createMongoOptions()); 24
25.
MongoDB勉強会 第二回 MongoDB勉強会
・・・じゃない slaveOk・・・じゃない • mongosを通すとslaveに参照クエリが投げられない • ReplicaSet単体で動かしているときは問題なし • 書き込みチェック(WriteConcern.SAFE など)は内部 的に書き込み後、findOneを発行 • Collectionのlock回数を少しでも減らしたい • 参照は別サーバーに向いて欲しい » 調査中…(´・ω・`) 25
26.
MongoDB勉強会 第二回 MongoDB勉強会 その他いろいろ • Out
of semaphores to get db connection • MongoOptionsの下記の値を調整 connectionPerHost * threadsAllowedToBlockForConnectionMultiplier >= maxthreads • Too Many Open Files • Test中にnic死亡 • Xfsの設定はmongo推奨に合わせるのがよさそう 26
27.
MongoDB勉強会 第二回 MongoDB勉強会 良かったこと • Index重要 •
mongostatが役に立った • Sar, vmstat, iostat • RDBのノウハウの流用が可能 • explain 27
28.
MongoDB勉強会 第二回 MongoDB勉強会 今後 • より複雑なクエリでの性能検証
> db.Entry.find({ ... userId:26, ... replyUserId:{$nin:[0,26]}, ... entryType:{$in:["ENTRY","PHOTO"]}, ... deleteFlag:0, ... $where:"this.replyEntryId <= this.parentEntryId"}).limit(50).sort({registDate:-1}).explain(); { "cursor" : "BtreeCursor userId", "nscanned" : 176, "nscannedObjects" : 176, "n" : 18, "scanAndOrder" : true, "millis" : 2, "indexBounds" : { "userId" : [ [ 26, 26 ] ] } } 28
29.
MongoDB勉強会 第二回 MongoDB勉強会 今後 • バックアップ、リストア •
Collection設計 • もっと多くのデータで 29
Baixar agora