Replica Set Internals Bootcamp Part IV: Syncing

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 CreatingContinue reading “Replica Set Internals Bootcamp Part IV: Syncing”

Night of the Living Dead Ops

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” :Continue reading “Night of the Living Dead Ops”

––thursday #4: blockdev

Disk IO is slow. You just won’t believe how vastly, hugely, mind-bogglingly slow it is. I mean, you may think your network is slow, but that’s just peanuts to disk IO. The image below helps visualize how slow (post continues below). (Originally found on Hacker News and inspired by Gustavo Duarte’s blog.) The kernel knowsContinue reading “––thursday #4: blockdev”

––thursday #3: a handy git prompt

Everyone says to use git branches early and often, but I inevitably lose track of what branch I’m on. My workflow generally goes something like: Check out a branch Lunch! Get back to my desk and make an emergency bug fix Commit emergency fix Suddenly realize I’m not on the branch I meant to beContinue reading “––thursday #3: a handy git prompt”

––thursday #2: diff ‘n patch

I’m trying something new: every Thursday I’ll do a short post on how to do something with the command line. I always seem to either create or apply patches in the wrong direction. It’s like stalagmites vs. stalactites, which I struggled with until I heard the nemonic: “Stalagmites might hang from the ceiling… but theyContinue reading “––thursday #2: diff ‘n patch”

––thursday #1: screen

I’m trying something new: every Thursday I’ll go over how to do something with the command line. Let me know what you think. If you are using a modern-ish browser, you probably use tabs to keep multiple things open at once: your email, your calendar, whatever you’re actually doing, etc. You can do the sameContinue reading “––thursday #1: screen”

Replica Set Internals Bootcamp: Part II – Creating a Set

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 CreatingContinue reading “Replica Set Internals Bootcamp: Part II – Creating a Set”