Suche senden
Hochladen
第一回MongoDBソースコードリーディング
•
Als KEY, PDF herunterladen
•
3 gefällt mir
•
1,209 views
N
nobu_k
Folgen
Technologie
Melden
Teilen
Melden
Teilen
1 von 32
Jetzt herunterladen
Empfohlen
Nginx-lua
Nginx-lua
Дэв Тим Афс
openstack源码分析(1)
openstack源码分析(1)
cannium
Comets notes
Comets notes
Ilija Dukovski
Gogo shell
Gogo shell
jwausle
Page compression. PGCON_2016
Page compression. PGCON_2016
Anastasia Lubennikova
Vidoop CouchDB Talk
Vidoop CouchDB Talk
Chris Anderson
LINE iOS開発で実践しているGit tips
LINE iOS開発で実践しているGit tips
LINE Corporation
RestMQ - HTTP/Redis based Message Queue
RestMQ - HTTP/Redis based Message Queue
Gleicon Moraes
Empfohlen
Nginx-lua
Nginx-lua
Дэв Тим Афс
openstack源码分析(1)
openstack源码分析(1)
cannium
Comets notes
Comets notes
Ilija Dukovski
Gogo shell
Gogo shell
jwausle
Page compression. PGCON_2016
Page compression. PGCON_2016
Anastasia Lubennikova
Vidoop CouchDB Talk
Vidoop CouchDB Talk
Chris Anderson
LINE iOS開発で実践しているGit tips
LINE iOS開発で実践しているGit tips
LINE Corporation
RestMQ - HTTP/Redis based Message Queue
RestMQ - HTTP/Redis based Message Queue
Gleicon Moraes
Clojure + MongoDB on Heroku
Clojure + MongoDB on Heroku
Naoyuki Kakuda
Redis
Redis
peter_shen
N hidden gems you didn't know hippo delivery tier and hippo (forge) could give
N hidden gems you didn't know hippo delivery tier and hippo (forge) could give
Woonsan Ko
Владимир Мигуро "Дао Node.js"
Владимир Мигуро "Дао Node.js"
EPAM Systems
Mongodb
Mongodb
Gagan Gowda
Php 7.x 8.0 and hhvm and
Php 7.x 8.0 and hhvm and
Pierre Joye
NoSQL Injections in Node.js - The case of MongoDB
NoSQL Injections in Node.js - The case of MongoDB
Sqreen
37562259 top-consuming-process
37562259 top-consuming-process
skumner
Extending php (7), the basics
Extending php (7), the basics
Pierre Joye
Security Challenges in Node.js
Security Challenges in Node.js
Websecurify
Sample file processing
Sample file processing
Issay Meii
PyCon KR 2019 sprint - RustPython by example
PyCon KR 2019 sprint - RustPython by example
YunWon Jeong
Jk rubyslava 25
Jk rubyslava 25
Jozef Képesi
PuppetDB, Puppet Explorer and puppetdbquery
PuppetDB, Puppet Explorer and puppetdbquery
Puppet
Coq to Rubyによる証明駆動開発@名古屋ruby会議02
Coq to Rubyによる証明駆動開発@名古屋ruby会議02
Hiroki Mizuno
Fast and cost effective geospatial analysis pipeline with AWS lambda
Fast and cost effective geospatial analysis pipeline with AWS lambda
Mila Frerichs
The Art of Command Line (2021)
The Art of Command Line (2021)
Kenta Yamamoto
Docker tips & tricks
Docker tips & tricks
Dharmit Shah
Etcd terraform by Alex Somesan
Etcd terraform by Alex Somesan
Maarten van der Hoef
MongoDB: a gentle, friendly overview
MongoDB: a gentle, friendly overview
Antonio Pintus
Blocks & GCD
Blocks & GCD
rsebbe
Full metal mongo
Full metal mongo
Israel Gutiérrez
Weitere ähnliche Inhalte
Was ist angesagt?
Clojure + MongoDB on Heroku
Clojure + MongoDB on Heroku
Naoyuki Kakuda
Redis
Redis
peter_shen
N hidden gems you didn't know hippo delivery tier and hippo (forge) could give
N hidden gems you didn't know hippo delivery tier and hippo (forge) could give
Woonsan Ko
Владимир Мигуро "Дао Node.js"
Владимир Мигуро "Дао Node.js"
EPAM Systems
Mongodb
Mongodb
Gagan Gowda
Php 7.x 8.0 and hhvm and
Php 7.x 8.0 and hhvm and
Pierre Joye
NoSQL Injections in Node.js - The case of MongoDB
NoSQL Injections in Node.js - The case of MongoDB
Sqreen
37562259 top-consuming-process
37562259 top-consuming-process
skumner
Extending php (7), the basics
Extending php (7), the basics
Pierre Joye
Security Challenges in Node.js
Security Challenges in Node.js
Websecurify
Sample file processing
Sample file processing
Issay Meii
PyCon KR 2019 sprint - RustPython by example
PyCon KR 2019 sprint - RustPython by example
YunWon Jeong
Jk rubyslava 25
Jk rubyslava 25
Jozef Képesi
PuppetDB, Puppet Explorer and puppetdbquery
PuppetDB, Puppet Explorer and puppetdbquery
Puppet
Coq to Rubyによる証明駆動開発@名古屋ruby会議02
Coq to Rubyによる証明駆動開発@名古屋ruby会議02
Hiroki Mizuno
Fast and cost effective geospatial analysis pipeline with AWS lambda
Fast and cost effective geospatial analysis pipeline with AWS lambda
Mila Frerichs
The Art of Command Line (2021)
The Art of Command Line (2021)
Kenta Yamamoto
Docker tips & tricks
Docker tips & tricks
Dharmit Shah
Etcd terraform by Alex Somesan
Etcd terraform by Alex Somesan
Maarten van der Hoef
Was ist angesagt?
(19)
Clojure + MongoDB on Heroku
Clojure + MongoDB on Heroku
Redis
Redis
N hidden gems you didn't know hippo delivery tier and hippo (forge) could give
N hidden gems you didn't know hippo delivery tier and hippo (forge) could give
Владимир Мигуро "Дао Node.js"
Владимир Мигуро "Дао Node.js"
Mongodb
Mongodb
Php 7.x 8.0 and hhvm and
Php 7.x 8.0 and hhvm and
NoSQL Injections in Node.js - The case of MongoDB
NoSQL Injections in Node.js - The case of MongoDB
37562259 top-consuming-process
37562259 top-consuming-process
Extending php (7), the basics
Extending php (7), the basics
Security Challenges in Node.js
Security Challenges in Node.js
Sample file processing
Sample file processing
PyCon KR 2019 sprint - RustPython by example
PyCon KR 2019 sprint - RustPython by example
Jk rubyslava 25
Jk rubyslava 25
PuppetDB, Puppet Explorer and puppetdbquery
PuppetDB, Puppet Explorer and puppetdbquery
Coq to Rubyによる証明駆動開発@名古屋ruby会議02
Coq to Rubyによる証明駆動開発@名古屋ruby会議02
Fast and cost effective geospatial analysis pipeline with AWS lambda
Fast and cost effective geospatial analysis pipeline with AWS lambda
The Art of Command Line (2021)
The Art of Command Line (2021)
Docker tips & tricks
Docker tips & tricks
Etcd terraform by Alex Somesan
Etcd terraform by Alex Somesan
Ähnlich wie 第一回MongoDBソースコードリーディング
MongoDB: a gentle, friendly overview
MongoDB: a gentle, friendly overview
Antonio Pintus
Blocks & GCD
Blocks & GCD
rsebbe
Full metal mongo
Full metal mongo
Israel Gutiérrez
MongoDB: Optimising for Performance, Scale & Analytics
MongoDB: Optimising for Performance, Scale & Analytics
Server Density
MongoDB at GUL
MongoDB at GUL
Israel Gutiérrez
NOSQL101, Or: How I Learned To Stop Worrying And Love The Mongo!
NOSQL101, Or: How I Learned To Stop Worrying And Love The Mongo!
Daniel Cousineau
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
MongoDB
How to use MongoDB with CakePHP
How to use MongoDB with CakePHP
ichikaway
Latinoware
Latinoware
kchodorow
Kyotoproducts
Kyotoproducts
Mikio Hirabayashi
Rails with mongodb
Rails with mongodb
Kosuke Matsuda
Mongodb intro
Mongodb intro
christkv
Functional Hostnames and Why they are Bad
Functional Hostnames and Why they are Bad
Puppet
Take advantage of C++ from Python
Take advantage of C++ from Python
Yung-Yu Chen
Backup, Restore, and Disaster Recovery
Backup, Restore, and Disaster Recovery
MongoDB
Backup, Restore, and Disaster Recovery
Backup, Restore, and Disaster Recovery
MongoDB
MongoDB Munich 2012: MongoDB for official documents in Bavaria
MongoDB Munich 2012: MongoDB for official documents in Bavaria
MongoDB
Kiosk / PHP
Kiosk / PHP
Basuke Suzuki
Replacing Oracle with MongoDB for a templating application at the Bavarian go...
Replacing Oracle with MongoDB for a templating application at the Bavarian go...
Comsysto Reply GmbH
2016 feb-23 pyugre-py_mongo
2016 feb-23 pyugre-py_mongo
Michael Bright
Ähnlich wie 第一回MongoDBソースコードリーディング
(20)
MongoDB: a gentle, friendly overview
MongoDB: a gentle, friendly overview
Blocks & GCD
Blocks & GCD
Full metal mongo
Full metal mongo
MongoDB: Optimising for Performance, Scale & Analytics
MongoDB: Optimising for Performance, Scale & Analytics
MongoDB at GUL
MongoDB at GUL
NOSQL101, Or: How I Learned To Stop Worrying And Love The Mongo!
NOSQL101, Or: How I Learned To Stop Worrying And Love The Mongo!
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
How to use MongoDB with CakePHP
How to use MongoDB with CakePHP
Latinoware
Latinoware
Kyotoproducts
Kyotoproducts
Rails with mongodb
Rails with mongodb
Mongodb intro
Mongodb intro
Functional Hostnames and Why they are Bad
Functional Hostnames and Why they are Bad
Take advantage of C++ from Python
Take advantage of C++ from Python
Backup, Restore, and Disaster Recovery
Backup, Restore, and Disaster Recovery
Backup, Restore, and Disaster Recovery
Backup, Restore, and Disaster Recovery
MongoDB Munich 2012: MongoDB for official documents in Bavaria
MongoDB Munich 2012: MongoDB for official documents in Bavaria
Kiosk / PHP
Kiosk / PHP
Replacing Oracle with MongoDB for a templating application at the Bavarian go...
Replacing Oracle with MongoDB for a templating application at the Bavarian go...
2016 feb-23 pyugre-py_mongo
2016 feb-23 pyugre-py_mongo
Mehr von nobu_k
Elasticsearchと機械学習を実際に連携させる
Elasticsearchと機械学習を実際に連携させる
nobu_k
機械学習を利用したちょっとリッチな検索
機械学習を利用したちょっとリッチな検索
nobu_k
4th PFI System reading
4th PFI System reading
nobu_k
Goraft and InfluxDB
Goraft and InfluxDB
nobu_k
Transactional Information Systems入門
Transactional Information Systems入門
nobu_k
Riak Source Code Reading #2: Erlang Client
Riak Source Code Reading #2: Erlang Client
nobu_k
Paxos
Paxos
nobu_k
Suffix Array@Solr勉強会
Suffix Array@Solr勉強会
nobu_k
Mehr von nobu_k
(8)
Elasticsearchと機械学習を実際に連携させる
Elasticsearchと機械学習を実際に連携させる
機械学習を利用したちょっとリッチな検索
機械学習を利用したちょっとリッチな検索
4th PFI System reading
4th PFI System reading
Goraft and InfluxDB
Goraft and InfluxDB
Transactional Information Systems入門
Transactional Information Systems入門
Riak Source Code Reading #2: Erlang Client
Riak Source Code Reading #2: Erlang Client
Paxos
Paxos
Suffix Array@Solr勉強会
Suffix Array@Solr勉強会
Kürzlich hochgeladen
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
LoriGlavin3
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Sergiu Bodiu
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
gvaughan
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
Manik S Magar
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Mark Simos
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
Curtis Poe
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
BookNet Canada
How to write a Business Continuity Plan
How to write a Business Continuity Plan
Databarracks
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
LoriGlavin3
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Lorenzo Miniero
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
LoriGlavin3
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
Pixlogix Infotech
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
mohitsingh558521
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Fwdays
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
hariprasad279825
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
Hervé Boutemy
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
DianaGray10
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
Kürzlich hochgeladen
(20)
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
How to write a Business Continuity Plan
How to write a Business Continuity Plan
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
第一回MongoDBソースコードリーディング
1.
MongoDB 2011/6/28
2.
•
@nobu_k • Preferred Infrastructure (PFI) • Sedue • Sedue MongoDB(1.6) • CT○ • http://slidesha.re/hl8PyL • MongoDB as Search Engine Repository
3.
• oplog •
4.
• MongoDB
• https://github.com/mongodb/mongo/ commits/master/ • 2011/6/26 •2 • pull
5.
oplog •
6.
•
2 • createOplog • logOp • db/oplog[h,cpp] •
7.
createOplog • oplog •
8.
createOplog void createOplog() {
> use local dblock lk; // DB switched to db local > show collections // DB. me const char * ns = "local.oplog.$main"; oplog.$main pair.sync slaves sources system.indexes bool rs = !cmdLine._replSet.empty(); if( rs ) ns = rsoplog; // "local.oplog.rs"; // in db/repl/rs_optime.h NS
9.
oplog Client::Context ctx(ns);
// NS NamespaceDetails * nsd = nsdetails( ns ); if ( nsd ) { // oplog ... ... ... ... }
10.
• oplog • ReplicaSet
•
11.
oplog •
oplog • 1. oplog 2. BSON NS • BSON!! 3. oplog
12.
•
• Mac • oplog capped collection
13.
createOplog •
• db/repl.cpp • db/repl/rs_initialsync.cpp • db/repl/rs_initiate.cpp • ReplicaSet •
14.
•
• dblock • CmdLine • Context • DBDirectClient • NamespaceDetails, nsdetails •
15.
dblock •
DB • db/concurrency.h • Deprecated • writelock • dbMutex • scoped_lock • RAII
16.
CmdLine •
• db/cmdline.[h, cpp] • boost::program_options • extern 2 • db/db.cpp // • client/clientOnly.cpp //
17.
Client::Context •
• NS • Client • db/client.[h,cpp] • RAII • DB
18.
currentClient •
Client • Thread Local • boost::thread_specific_ptr<Client> • cc(), currenctClient, Context::getClient • DB
19.
DBDirectClient • •
DBClientInterface (client/dbclient.h) • DBConnector (client/dbclient.h) • DBClientWithCommands : public DBClientInterface • DBClientBase : public DBClientWithCommands, public DBConnector • DBDirectClient : public DBClientBase • findOne • c.findOne→DBClientInterface::findOne→DBClientInterface::findN→(virtual )DBDirectClient::query→DBClientBase::query • DBClientCursor •
20.
NamespaceDetails • .ns
(1 ) • • Database • MongoDataFile • Record •
21.
nsdetails •
Context NamespaceDetails • db/pdfile.h • cc().database()->namespaceIndex->details • NamespaceIndex • map<string, NamespaceDetails> •
22.
logOp • •
23.
oplog {
ts: • oplog BSON op: ns: NS • o: BSON o2: } • o2
24.
•
i : insert • u : update • d : delete • c : db cmd? userCreateNS? • db : declares presence of a database • n : no op ( ) • • keep alive •
25.
logOp _logOp void logOp(const char
*opstr, const char *ns, const BSONObj& obj, BSONObj *patt, bool *b) { if ( replSettings.master ) { _logOp(opstr, ns, 0, obj, patt, b); } logOpForSharding( opstr , ns , obj , patt ); }
26.
_logOp •
• _logOpOld • _logOpRS • etc? •
27.
_logOpOld • • Record theDataFileMgr
• fast_oplog_insert!! • ( mmap )
28.
append_O_Obj • partial ”o”+ •
BSONBuilder • • repeatedly ed
29.
_logOpRS •
30.
logOp • • grep it!
31.
• applyOperation_inlock • pretouch
32.
We are hiring
! • • • • • • • • OSS • • (´ ω `)
Hinweis der Redaktion
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Jetzt herunterladen