Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Why are there so many different database engines then? Is each instance of a different database out their an instance of NIH?

The answer is of course that every computer system of any complexity has to make trade-offs - do you need constraints, do you need scalability, do you need concurrency, security? Is your data of a specific form that benefits from a particular compressible storage form, is it optimised for write once read many or read/write etc etc..

In terns of the thrust of the main article - which is about the cost of dependencies - I find that I'm typically much happier to take a dependency if that dependency is very keen on minimising it's own dependencies! - ie I don't want to take on a whole forest of stuff.

In my view many automatic dependency management systems have helped create the mess that they claim to try and solve, and using careful manual dependency management can help cut down the burden.



> do you need constraints, do you need scalability, do you need concurrency, security

Don't forget, do you need someone you can call for support (or throw under the bus) when problems come up?


This is the thing.

If the database is essential to your business - as in if it goes down your revenue drops to zero - do you want to be the one debugging it at 3am?

Or would it be more cost effective to have a well-known database or even a managed DB


If you are running into a problem that is bringing your site down and it's truely a problem/bug with a commercial database then you are in trouble and unlikely to see a quick fix as these products are complicated and while the problem might be existential to you, it's not to the bigger vendor.

However, it's much more likely it's a configuration issue - ie you didn't understand the product properly and have configured it incorrectly - and here support can really help.

The point I'm making above is not that you should be writing fully fledged all singing and dancing databases - but that you might be able to get away with something very simple, more reliable and faster in your specific use case.

If on the other hand your use case is complex and a good fit for something pre-existing - then sure you shouldn't be writing it yourself.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: