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”
Author Archives: kchodorow
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”
Debugging Sexism
The word of the day is sexism: Shanley Kane tweeted the CTO of Geekli.st, asking them to take down a video of a woman in a Geekli.st top and underwear dancing around. The subsequent tweets were captured in a long Storify and Geekli.st subsequently issued a public apology. The interesting thing about this, to me,Continue reading “Debugging Sexism”
––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”
git-oh-$#!†
I’ve learned a lot about git, usually in a hurry after I mess up and have to fix it. Here are some basic techniques I’ve learned that may help a git beginner. Fixing your ungood code Let’s say you’re a clerk working for an Orwellian Ministry of Truth and you find out the new chocolateContinue reading “git-oh-$#!†”
The Comments Conundrum
One of the most common questions I see about MongoDB schema design is: I have a collection of blog posts and each post has an array of comments. How do I get… …all comments by a given author …the most recent comments …the most popular commenters? And so on. The answer to this has alwaysContinue reading “The Comments Conundrum”
