Hacker Newsnew | past | comments | ask | show | jobs | submit | octix's commentslogin

To me that would be a red flag. If it's difficult to setup within your tests then it's difficult within your code and/or too much magic is happening.


From personal experience.

1) MongoDB allows me to be more agile. I don't have to deal with database migrations (No locks when adding new column for example), which allows deployments at any time.

2) Indexed arrays. Allows to add "tags" to any entity which are useful in production (A/B testing, force specific behavior).

3) Easier to manage. I don't need an expensive PostgreSQL consultant to setup and hope for the best.

Your mileage can vary.


> I don't have to deal with database migrations

We've actually just started having the pain of Mongo migrations; adding indexes to large collections. If you just create the index on the primary and let it propagate throughout the cluster, then it will block further oplog replication on the secondaries and the whole cluster will go down for majority writes. The proper way is to take each secondary out of the cluster in turn, add the index, then step-down the primary and migrate it.

It's just as much of a pain as migrating your favourite SQL database, although at least you don't need to do it for small collections and for adding columns (which is a big bonus).


Thanks for sharing. "adding indexes to large collections" - how many records are we talking here?

Thanks.


Collections with tens of Gigabytes and hundreds of millions of records can take a few hours per-node to build an index. You'll need to think about index migration strategies before that point though. I'd guess that once you have gigabytes of data in a collection you'll probably have less downtime with an election than you will waiting for the index to build.


If it's truely zero downtime if you are doing background indexing.


If you can't cook it, it doesn't mean it's not tasty...


You don't have to use them, but it's really great for getting started. You can fine tune these by excluding pieces you don't need to auto configured.

http://docs.spring.io/spring-boot/docs/current/reference/htm...


Thanks for posting. I'm waiting for a x230t and was thinking about trying Centos 7 and FreeBSD too at some point.


Does FreeBSD play nice with resolutions higher than 1080? I mean, I know linux still has issues and I always thought *BSD a re bit behind when it comes to Desktop experience.

I think you should look for a good linux laptop 1st and check for FreeBSD compatibility.


I've been using FreeBSd since 4.x. I'm assuming your referring to video drivers and the xwindowing system which is non operating system specific. I should remind you that this is a subsystem (or extension) and should be viewed from the point of a view as power users (and engineers) already know where to find out about chipsets, their relabeling, and of course the ability to set up their configuration intelligently. More importantly a recommendation like this shouldn't be considered unless you've spent significant time building and customizing your OS and graphical layer.


It could be a shock to you, but not everyone loves Mac OS X. There are (imagine that) other OSs that have terminals too.

Oh snap! I must've stroke a chord. What did I say? I mean, he asks how to grill a steak, but some suggest how to cook brats.


OSX is very good at not having hardware compatibility issues, and you don't need to interact with it very much to open VirtualBox. While this is not the most performant option (OSX idles with a good chunk of RAM), it is probably the easiest and most reliable path to not worrying about hardware compatibility, drivers, etc.


"OS X is very good at not having hardware compatibility issues" is a really, really old (and flawed) argument.

The thing that makes OS X so darn "stable" is that they write drivers for a very limited set of hardware - the reference implementation.

On the Linux reference implementation, everything works properly (See the ThinkPad T series).

On the Windows reference implementation, everything works properly (See the Surface).

Simply because something works when it's built for a piece of hardware (think embedded systems) doesn't mean that it will work when running on something that it wasn't designed for.


>Simply because something works when it's built for a piece of hardware (think embedded systems) doesn't mean that it will work when running on something that it wasn't designed for.

No one is advocating doing that. And no one gives a shit about how hard it was for the engineers.

You should buy a Macbook precisely because it is a reference implementation that works as a consumer product. Let OSX deal with laptop-y details like WiFi, screen brightness, battery/power management, suspend/resume, and device drivers. Let VirtualBox abstract away those details so FreeBSD behaves like it does on its reference implementation - server hardware.


I've been doing that with NetBSD and VMWare Fusion on my 2013 Macbook Air with 8GB RAM. It's nice but I do miss running NetBSD on bare hardware.

OS X does add a lot of overhead and I would love to run NetBSD on a dedicated hypervisor. In particular I want to try with the free Hyper-V Server because it has such great hardware/driver support but HVS doesn't support wireless networking.


Running a virtualized instance of BSD does not point toward or away from any particular host OS or piece of laptop hardware. Virtualization brings all brands and Operating Systems into the mix.


I personally hate it, but my wife loves it. We don't argue and I just don't use it.

That said, you just cannot compare an OS running natively (is that a word?) with a VM.


The typical phrase is "on bare metal".


While we're changing the subject, why not Windows and VirtualBox? By the time we've proposed OS X instead of *BSD, we've proposed everything.


how about MacBook + Linux + QEMU/Virtualbox?

which works great for me BTW


Virtualization = huge power consumption and low performance. Not good for laptops, although quite reasonable for desktops.


Can you elaborate please? Linux running inside a VM?


FreeBSD running in a VM on Linux on a Macbook.

I argued that you can install Linux on the MacBook, which gives you the advantage of good hardware support and a non-Apple and open-source OS, on which you can in turn run FreeBSD using a VM. And since MacBooks support Intel's VT-x which Linux KVM uses, virtualization actually works very well with this setup.

Obviously, when possible, buying a laptop with good FreeBSD driver support is the superior choice.


It's not about Facebook clone, they still use MySQL for some functionality (i believe), but not as RDBMS but more like NoSQL...

NoSQL means model your data in a different way, the way you'll be using it. For some it makes more sense, for some may not.

For example, compare implementation of a tagging system in mongo and any other RDBMS, which one is easier?


> For example, compare implementation of a tagging system in mongo and any other RDBMS, which one is easier?

As I said, I never bothered with NoSQL so I cannot properly answer it.


It may be hype, but when MongoDB was released, what other RDBMS was offering the same functionality? I see Posgresql + JSON mentioned, but when was JSON support added?

I personally like MongoDB for: - flexible schema (less migration pain) - easy tags implementation - product attributes (list of name-value pairs) - GridFS - store binary files - nested documents for analytics (ex: a record for each day with a nested doc for each hour)

I wish MongoDB had - some support of join - multi-master replication

I personally used MongoDB as primary storage (yeay dot me), but currently prefer it as secondary storage.

As any product it evolves and I expect to see more improvements. I think MongoDB brought NoSQL to the masses :)

Just my 0.02. Thanks.


Everything you said is true, but I don't think the argument here is about the past, but rather about the future.

MongoDB was great and innovative compared to other solutions when it started, but now, it's dragged behind while other solutions are much better.


Then we should probably compare other NOSQL solutions to relational databases. Like CouchDb, CouchBase, FoundationDb, Neo4J, etc.


yes, because all these third world countries have a good record of keeping a good log on what's going on...


No but, cynically, they do provide the populations to study the effects of these things on people.


Maybe their populations are dying of something else before the effects would become clear.


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

Search: