How MongoDB’s Journaling Works

  • AST Financial: the dumpster fire of a company
  • Thinking with Pandas
  • GV
  • Staying out of trouble on Elastic Beanstalk
  • The thing about renting an apartment in NYC
  • A self-indulgent post for a self-indulgent day
  • Goals for 2018
  • IPOs, 101
  • A magic trick
  • R&R
  • P.T. Barnum on salary vs. equity
  • My favorite benefits that more companies should offer
  • BizSpark
  • The next great frontier in ML: dogs in hats
  • Keeping your deps tidy
  • GitHub notification… notifier
  • Life hacks
  • How to Skylark – the class
  • Stamping your builds
  • Using secrets with Google AppEngine
  • Low-fat Skylark rules – saving memory with depsets
  • 9 years of blogging have totally been worth it
  • Aspects: the fan-fic of build rules
  • That’s senior programmer to you, buddy
  • The Haunted Homesteader
  • Recruiting review
  • Using AutoValue with Bazel
  • You do you
  • Snail Spam
  • Four alternative debugging techniques
  • Compilation à la mode
  • The Mixed-Up Directories of Mrs. Bazel E. Frankweiler
  • Custom, locally-sourced output filenames
  • Using environment variables in Skylark repository rules
  • Resting BUILD face
  • Communicating between Bazel rules: how to use Skylark providers
  • Collecting transitive runfiles with skylark
  • Startup idea #6ec4e42a-28cc-4425-9ebc-61ac8e224580: Adventurer’s gear for geeky hikers
  • Using a generated header file as a dependecy
  • Operation: Crappy Sewing Machine commences
  • New dog blog
  • configure: error: lib_i_don’t_care_about.so not found.
  • JoCo Cruise 2016: a misanthrope’s perspective
  • Star Trek invades our timeline
  • Flag-Friday: debugging tests with –java_debug
  • Saving the (prod) environment
  • Combining projects without converting to a monorepo
  • Non-technical advice for startups and open source projects
  • One weird trick for fast CI
  • Creating a javadoc rule for Bazel
  • Build, y u go slow?
  • Debugging flaky tests with Bazel
  • The Return of the Scala Rule Tutorial: The Execution
  • Tutorial: how to write Scala rules for Bazel
  • Trimming the (build) tree with Bazel
  • Positive reinforcement learning through barbacoa
  • New radio in town
  • Pain-free OAuth with AppEngine
  • API changes with extra cheese, hold the fear
  • Have you ever looked at your build? I mean, really looked at your build?
  • Hello, Bazel
  • Making wedding rings
  • Laptops are getting smaller all the time
  • Teaching CS
  • Sharing Programming
  • I will gladly write a test Tuesday for a program today
  • Innards of Tar
  • TEALS – Teaching CS on your way to work, part 2
  • Mestre Boneco’s Training Sequences
  • TEALS – Teaching CS on your way to work
  • Hello, Digital Ocean!
  • Makin’ Mazes
  • Update Your Feeds
  • Fixing CSS antialiasing on Chrome
  • Glupdate
  • Game Jam Resource List
  • Hello, Glass
  • Davy Jones’ Freezer
  • Getting Better All the Time via Code Review
  • Scratches & Bruises
  • User Support
  • The High Ground in Low Country
  • The Little Volcano that Could
  • MongoSF
  • The Joy of Programming
  • Speed Mentoring
  • Encouraging Female Programmers, Even the Redheads
  • How to Succeed in CS Without Really Trying
  • Velocity 2013
  • Using Visual “APIs”
  • The Professor, the Interviewer, and the Coworker
  • Smart Pointers and Heirloom Underpants
  • The Rise of Big Data
  • Upcoming Hackathons
  • Edutainment
  • Ludum Dare
  • Hello, Lumpy World!
  • The Basics of Signal Handling
  • Labeling Git Branches
  • Music Gremlins is Approved!
  • It’s turtles all the way down
  • Adding an Assertion Macro in Objective-C
  • MongoDB: The Definitive Guide 2nd Edition is Out!
  • First Two Weeks at Google
  • Stock Option Basics
  • Recruiting in all the wrong places
  • Programming a State Machine
  • Mad Art Skillz
  • Finished The Definitive Guide
  • Databases & Dragons
  • The Google Interviews
  • Guide to Tech Interviews
  • Goodbye 10gen, Hello Google
  • Intro to Fail Points
  • MongoDB Puzzlers #1
  • Humans are difficult
  • Introducing Noodlin – A Brainstorming App
  • MongoDB changing default: now write errors are reported
  • TDG Update
  • Got any advice?
  • How MongoDB’s Journaling Works
  • Go Get a Hot Water Bottle
  • ––thursday #7: git-new-workdir
  • How to Make Your First MongoDB Commit
  • A Neat C Preprocessor Trick
  • Call for Schemas
  • Git for Interns and New Employees
  • Controlling Collection Distribution
  • Summer Reading Blogroll
  • Replica Set Internals Part V: Initial Sync
  • Good Night, Westley: Time-To-Live Collections
  • The Snail Crawls On…
  • ––thursday #6: using git over ssh
  • Replica Set Internals Bootcamp Part III: Reconfiguring
  • 10 Kindle Apps for the Non-Existent Developer API
  • ––thursday #5: diagnosing high readahead
  • Replica Set Internals Bootcamp Part IV: Syncing
  • Night of the Living Dead Ops
  • ––thursday #4: blockdev
  • ––thursday #3: a handy git prompt
  • Debugging Sexism
  • ––thursday #2: diff ‘n patch
  • ––thursday #1: screen
  • Replica Set Internals Bootcamp: Part II – Creating a Set
  • git-oh-$#!†
  • The Comments Conundrum
  • Hacking Chess: Data Munging
  • Hacking Chess with the MongoDB Pipeline
  • And now, for something completely different
  • Replica Set Internals Bootcamp: Part I – Elections
  • Popping Timestamps into ObjectIds
  • SQL to MongoDB: An Updated Mapping
  • On working at 10gen
  • Getting Started with MMS
  • More PHP Internals: References
  • Playing with Virtual Memory
  • PHP Extensions Made Eldrich: Classes
  • PHP Extensions Made Eldrich: PHP Variables
  • PHP Extensions Made Eldrich: Hello, World!
  • PHP Extensions Made Eldrich: Installing PHP
  • PS1++
  • Mongo in Flatland
  • NoSQL vs. the world
  • A finite simple group of order two
  • Simulating Network Paritions with mongobridge
  • Trying Out Replica Set Priorities
  • The Scripting Language of Databases
  • Lorenz University: I can has degree?
  • Implementing Replica Set Priorities
  • “Scaling MongoDB” Update
  • Resizing Your Oplog
  • Enchiladas of Doom
  • My Life is Awesome
  • A Short eBook on Scaling MongoDB
  • Why Command Helpers Suck
  • How to Use Replica Set Rollbacks
  • How to Choose a Shard Key: The Card Game
  • Wireless dongle review
  • Setting Up Your Interview Toolbox
  • How I Became a Programmer
  • Firesheep: Internet Snooping made Easy
  • Bending the Oplog to Your Will
  • How not to get a job with a startup
  • Getting to Know Your Oplog
  • Replication Internals
  • Scaling, scaling everywhere
  • Writing MongoDB: The Definitive Guide
  • Choose your own adventure: MongoDB crash recovery edition
  • Oh, the Mistakes I’ve Seen
  • A Quick Intro to mongosniff
  • Return of the Mongo Mailbag
  • History of MongoDB
  • If it quacks like a RDBMS…
  • Buying an Mahattan Co-op
  • Sharding and Replica Sets Illustrated
  • Part 3: Replica Sets in the Wild
  • Replica Sets Part 2: What are Replica Sets?
  • Replica Sets Part 1: Master-Slave is so 2009
  • MongoDB backups & corn on the cob in 10 minutes
  • Managing your Mongo horde with genghis-khan
  • I Never Thought I’d Be On a Book
  • Large Hadron Collider Using MongoDB
  • With a name like Mongo, it has to be good
  • There must be 50 ways to start your Mongo
  • Once and Future Presentations
  • Sharding with the Fishes
  • Happy Belated Ada Lovelace Day!
  • MapReduce – The Fanfiction
  • Bug Reporting: A How-To
  • Sleepy.Mongoose: A MongoDB HTTP Interface
  • MongoDB Survey Results
  • “Introduction to MongoDB” Video
  • St. Clementine’s Day
  • Mongo Mailbag #2: Updating GridFS Files
  • FOSDEM: Some Pictures
  • FOSDEM
  • Mongo Mailbag: Master/Slave Configuration
  • Washington DC
  • MongoDB PHP Driver 1.0.3 Release
  • Upcoming Talks
  • Mongo Just Pawn in Game of Life
  • Public Speaking: The Prequel
  • NoSQL Trolls
  • Public Speaking
  • Installing Linux on a MacBook Air
  • Five Worst Places for Mosquito Bites
  • Foz do Iguacu
  • Replacing $ in the MongoDB PHP Driver
  • Testing MongoDB Replica Pairs with Perl
  • Final Days in CA
  • Reading in San Francisco
  • Adventures in Ramen
  • I’m going to Brazil!
  • OSCON
  • Soccer: No Slimy GirlS Allowed!
  • How do you make the web reliable?
  • CouchDB vs. MongoDB Benchmark
  • Because we are the Mutha Flippin Win
  • Revisionist history
  • PHP Extension Wiki
  • From Russia with Bugs
  • Get on the bus, Gus
  • Got Mongo Working on Hostmonster!
  • VM of Death and Doom from Hell
  • Another comic
  • Zen and the Art of Sewing Machine Matinence
  • Slug Sex
  • #1 Google Result!
  • Soup and Circus
  • And an irrational number of closets
  • RSS Idea
  • New comic up!
  • phpdoc hell
  • Pain in my CVS
  • Nifty Flash Thing
  • Downloading the Archives
  • Archive for the 'MongoDB' Category

    How MongoDB’s Journaling Works

    Thursday, October 4th, 2012

    I was working on a section on the gooey innards of journaling for The Definitive Guide, but then I realized it’s an implementation detail that most people won’t care about. However, I had all of these nice diagrams just laying around. Good idea, Patrick! So, how does journaling work? Your disk has your data files […]

    How to Make Your First MongoDB Commit

    Friday, August 31st, 2012

    10gen is hiring a lot of people straight out of college, so I thought this guide would be useful. Basically, the idea is: you have found and fixed a bug (so you’ve cloned the mongo repository, created a branch named SERVER-1234, and committed your change on it). You’ve had your fix code-reviewed (this page is […]

    Call for Schemas

    Wednesday, August 22nd, 2012

    I just started working on MongoDB: The Definitive Guide, 2nd Edition! I’m planning to add: Lots of ops info Real-world schema design examples Coverage of new features since 2010… so quite a few However, I need your help on the schema design part! I want to include some real-world schemas people have used and why […]

    Controlling Collection Distribution

    Wednesday, July 25th, 2012

    Shard tagging is a new feature in MongoDB version 2.2.0. It’s supposed to force writes to go to a local data center, but it can also be used to pin a collection to a shard or set of shards. Note: to try this out, you’ll have to use 2.2.0-rc0 or greater. To play with this […]

    Replica Set Internals Part V: Initial Sync

    Tuesday, June 26th, 2012

    I’ve been doing replica set “bootcamps” for new hires. It’s mainly focused on applying this to debug replica set issues and being able to talk fluently about what’s happening, but it occurred to me that you (blog readers) might be interested in it, too. There are 8 subjects I cover in my bootcamp: Elections Creating […]

    Good Night, Westley: Time-To-Live Collections

    Monday, June 18th, 2012

    In The Princess Bride, every night the Dread Pirate Roberts tells Westley: “Good night, Westley. Good work. Sleep well. I’ll most likely kill you in the morning.” Let’s say the Dread Pirate Roberts wants to optimize this process, so he stores prisoners in a database. When he captures Westley, he can put: > db.prisoners.insert({ … […]

    Replica Set Internals Bootcamp Part III: Reconfiguring

    Monday, May 21st, 2012

    I’ve been doing replica set “bootcamps” for new hires. It’s mainly focused on applying this to debug replica set issues and being able to talk fluently about what’s happening, but it occurred to me that you (blog readers) might be interested in it, too. There are 8 subjects I cover in my bootcamp: Elections Creating […]

    ––thursday #5: diagnosing high readahead

    Thursday, May 10th, 2012

    Having readahead set too high can slow your database to a crawl. This post discusses why that is and how you can diagnose it. The #1 sign that readahead is too high is that MongoDB isn’t using as much RAM as it should be. If you’re running Mongo Monitoring Service (MMS), take a look at […]

    Night of the Living Dead Ops

    Friday, April 20th, 2012

    MongoDB users often ask about the “killed” field in db.currentOp() output. For example, if you’ve run db.killOp(), you might see something like: > db.currentOp() { "inprog" : [ { "opid" : 3062962, "active" : true, "lockType" : "write", "waitingForLock" : false, "secs_running" : 32267, "op" : "update", "ns" : "httpdb.servers", "query" : { "_id" : […]

    Replica Set Internals Bootcamp: Part II – Creating a Set

    Tuesday, March 6th, 2012

    I’ve been doing replica set “bootcamps” for new hires. It’s mainly focused on applying this to debug replica set issues and being able to talk fluently about what’s happening, but it occurred to me that you (blog readers) might be interested in it, too. There are 8 subjects I cover in my bootcamp: Elections Creating […]

    kristina chodorow's blog