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

I would never use MS SQL Server unless it is open source. Otherwise you get into vendor lock-in. Microsoft is cunning - they want to tie Linux-based businesses to their (expensive) products for good. But fortunately there is a viable open source alternative - PostgreSQL. http://www.pg-versus-ms.com


How are the clustering options coming along with PostgreSQL? The last time I looked into there weren't any multi-master solutions out of the box, but there were a bunch of separate implementations that mostly seemed to be half-baked.

https://wiki.postgresql.org/wiki/Replication,_Clustering,_an...

It's my understanding that the Postgres team has decided to change their historical stance of considering clustering solutions outside the scope of the core project, but I'm unclear exactly how far that has come.

The variety of different 3rd party implementations in various states of maturity make this a bit tedious to sort through.

That said, I always pick PG for my personal projects. I just have a hard time getting sign-off on it from my corporate overlords for anything at work.


http://www.postgresql.org/docs/9.4/static/different-replicat...

Async Multimaster is in the list of replication solutions.

I have not personally implemented it myself.

Edit, As I am reading this more closely it may be listing third party implementations and is not 'out of box'


Not that url again. It's RIDICULOUSLY biased and comes up every time SQL Server comes up on HN.


Out of curiosity, how does OSS prevent vendor lock-in? Are you talking more in terms of support?


It's very simple. With FLOSS you are not tied to one software distributor and you can freely modify and distribute the software by yourself. It is not about support, it is about freedom to run, copy, distribute, study, change and improve the software.


Anyone can support the OSS product to utmost level by studying the source code (and possibly fixing/modifying it).

> Are you talking more in terms of support?

Support is not tied to the product's license (which is common for proprietary software).


The sad truth is that "anyone can" is frequently still "nobody did, so you're on your own". This well applies to even the most popular pieces of FLOSS.

That's still significantly better than "noone but a single vendor can and you're at their mercy", but just being FLOSS doesn't mean it can't suffer from product lock-in, just that with the hurdle being complexity and not copyright.


There's always friction, yes, but rarely a lock or you'd simply go into the code and remove it.

Natural complexity, when the domain is simply complex to model, can't be gotten rid of regardless of the product.


Ah, the lock is not something that check the license and tells "oh no you're not allowed". It's a combination of not having something, and complexity to add it. Sometimes, that's because you need something tricky. Sometimes, that's because the project lacks any documentation, is written in a pretty low-level (verbose) language that obscures the high-level picture, and it's hard to figure out how it works. Sometimes, that's because FLOSS != KISS, and there is a lot of FLOSS software that has its own unique proprietary protocols and data formats, and does things in a manner that's completely incompatible and non-interoperable with any other system. I have no clue about MySQL or PostgreSQL internals (actually, I heard a word they're good in this regard), but is the case for various FLOSS projects - I've dug into some and cursed their developers.

If you overcame that and made a patch, but it's not accepted by the upstream - there are maintenance costs. How long would you be able to maintain your own fork of a large software project, keeping up with the upstream? I've tried with a few small ones (say, at a small ISP company, I just needed some custom pppd patches for in-house billing logic), and found it to be not a pleasant experience. I believe it's not just because I'm a lazy ass - I saw tons of forks on GitHub that were slowly rotting away, maintained for some time but eventually forsaken by their authors and far behind their upstreams.


That's what a lock is - something intentional. Everything else is natural complexity. Nobody made their code complex because they felt like it.

> If you overcame that and made a patch, but it's not accepted by the upstream

As for how well the FLOSS projects are managed, how's your luck at debugging let alone getting a patch accepted in MS-SQL, for instance?

> I saw tons of forks on GitHub that were slowly rotting away

I saw people with food, who weren't eating it because they were full, and I decided that food was stupid. Right?

> How long would you be able to maintain your own fork of a large software project, keeping up with the upstream?

Far longer than a binary patch... You know, to block a certain cipher suite or something in a closed-source product.


> how's your luck at debugging let alone getting a patch accepted in MS-SQL, for instance?

Duh, none or nearly none, of course.

I'm not saying that proprietary binary blobs are better. There are exceptions, but generally they're significantly worse in this regard.

I'm only saying that just because software is FLOSS doesn't mean one can successfully hack on it and adapt it to their needs, or easily migrate to other FLOSS solutions. Sometimes, they'll be stuck for a while - I think that's also can be considered as a lock-in.

> Nobody made their code complex because they felt like it.

Maybe. But there's a term "over-engineering" too. It's not that someone decides to make things unnecessarily complex, but sometimes they really do.




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

Search: