[nycphp-talk] MongoDB and others, convince me. :-)

Gary Mort garyamort at
Mon Jan 18 15:07:29 EST 2010

On Mon, Jan 18, 2010 at 2:15 PM, Mitch Pirtle <mitch.pirtle at>wrote:

> On Mon, Jan 18, 2010 at 10:03 AM, Gary Mort <garyamort at> wrote:
> >
> >
> > A database is a database...they all have similarities, and the SQL part
> is
> > the least important part of being a DBA.
> This becomes more of a systems administrator thing though, doesn't it?

Well...based on my background I don't see a difference between sys admin and

> MongoDB is a great example, as you can run it without a configuration
> file - the only understanding anyone really needs is the development
> team using MongoDB, as they obviously need to know what works (and
> consequently what doesn't).
I've seen any number of relational databases that run "without a config
file"....all that meant was that they used all the defaults....  Is it any
different with MongoDB?

> There's no way I could justify a full salary for someone to just sit
> and watch MongoDB instances over on EC2 or the datacenter. That's
> basically all they would do.

Keeping an eye on memory usage, server load, network load....checking
reports and ensuring that if you have a sharded system that everything is
correctly loading to the right places and no changes need to be made....
checking file access and ensuring there are no problems there....  tuning
any caches to ensure they work efficiently....  maintaining the
documentation and data maps for the system so new apps which are going to
use the user profile or make changes to it know what already exists.

To me...a DBA is the central part of a project.  He or that team is the one
everyone should go to when adding things to ensure it isn't already done
somewhere else.

If the system crashes and the company is losing a quarter of a million
dollars in revenue a day because the data became corrupted and no one is
quite sure when the last good backup was taken[since it was the non existant
DBA's job to simulate crashes and restore data from backups and ensure
everything works]....I think that not having a DBA or Systems Admin or
whatever you want to call him was foolish.

Now....if your losing 1000 dollars a day...well then a DBA isn't justified.

It's a business cost benefit analysis.  Not a technical one.  Can the
company afford a complete crash and startover from some random point in
time...and if not do they have the money to pay for an admin to keep
everything running smoothly?  Sometimes you live with the
risk.....especially when everything is bright, shiny and new and the
developers who set everything up know it all like the backs of their hands
and are interested in it.

But years down the line...when you have hundreds of cobbled little sub
projects on it...the original developers have moved on to the next big thing
and don't want to touch that old dinosaur?  Dang straight you get a DBA.

> Part of the push to go non-relational is the desire to push away from
> overly complex and convoluted proprietary platforms. I look at it like
> this:
> 1) In the beginning, there were relational databases. They were big
> and full of features, and it was desired to put as much "business
> logic" in the database as possible - therefore a genuine need for
> specialized support staff.
> 2) Hello, World Wide Web! Scaling these relational databases was hard,
> and they were the main source of consternation and frustration for
> development teams of high-traffic sites.
> 3) Facebook (among others) learn that to really scale, you need to do
> your joins at the app layer, and everyone starts pulling all that
> logic out of the database and back into the application.
> 4) So why are we using a relational database again?
> Not saying this was a smart path to go, or even the right one; however
> it is where we are, and there are reasons we've started down the route
> to modern databases: They think like modern languages do (objects),
> they have additional features for scale as part and parcel of their
> base functionality (sharding, mapreduce), and take advantage of modern
> systems for minimal configuration needs and best performance (memory
> mapped files).
> -- Mitch
> _______________________________________________
> New York PHP Users Group Community Talk Mailing List

Hudson Valley Sudbury School
What GPL is for application users
Our school is for students
Help your children grow, change, and learn
Let your child direct, control, amend
Check out
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the talk mailing list