Soumettre la recherche
Mettre en ligne
第一回MongoDBソースコードリーディング
•
Télécharger en tant que KEY, PDF
•
3 j'aime
•
1,209 vues
N
nobu_k
Suivre
Technologie
Signaler
Partager
Signaler
Partager
1 sur 32
Télécharger maintenant
Recommandé
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
Recommandé
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
Contenu connexe
Tendances
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
Tendances
(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
Similaire à 第一回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
Similaire à 第一回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
Plus 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
Plus 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勉強会
Dernier
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Fwdays
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Dubai Multi Commodity Centre
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Lorenzo Miniero
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Alex Barbosa Coqueiro
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
Manik S Magar
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
SeasiaInfotech2
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Wonjun Hwang
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
RankYa
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
Mark Billinghurst
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
Stephanie Beckett
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
ScyllaDB
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
Slibray Presentation
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
Padma Pradeep
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
Fwdays
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Safe Software
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Fwdays
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
Kalema Edgar
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
charlottematthew16
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
Miki Katsuragi
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Enterprise Knowledge
Dernier
(20)
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 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 • • (´ ω `)
Notes de l'éditeur
\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
Télécharger maintenant