Enviar pesquisa
Carregar
第一回MongoDBソースコードリーディング
•
Transferir como KEY, PDF
•
3 gostaram
•
1,209 visualizações
N
nobu_k
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 32
Baixar agora
Recomendados
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
Recomendados
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
Mais conteúdo relacionado
Mais procurados
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
Mais procurados
(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
Semelhante a 第一回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
Semelhante a 第一回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
Mais de 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
Mais de 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勉強会
Último
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Enterprise Knowledge
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
HampshireHUG
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
gurkirankumar98700
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
Pooja Nehwal
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Gabriella Davis
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Puma Security, LLC
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Roshan Dwivedi
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Neo4j
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Malak Abu Hammad
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Igalia
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Delhi Call girls
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
Allon Mureinik
Último
(20)
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 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 • • (´ ω `)
Notas do Editor
\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
Baixar agora