I am working on a web/mobile application based on location data. Since i am already familiar with MongoDB, i found the geospatial indexing of mongo is quite suitable for my needs. As i am mainly dealing with simple/short location points, Mongo 2d indexing is good for me.
Along the way i picked PostGIS, because of its stable/mature way. And its awesome feature set. But my main concern is performance since my data is heavily dependent on location(mostly 70 - 80% of the db calls deal with the location).
I like mongo because its used by high performance web apps like foursquare already. But i have seen PostGIS is mainly used in government/enterprise projects (mostly non web/mobile apps). So i am little confused right now to choose the right GIS db for my web/mobile app? Got any suggestions?
Answer
If your write load (incoming data stream) can potentially grow without limit (if the success of your web project will cause the amount of writes to grow grow grow) then go with Mongo, because it will be very hard to architect your way around the write bottleneck in PostGIS/PostgreSQL once you grow beyond the capabilities of a single high-end server (which, it mush be noted, are pretty darn huge).
You can architect good PostGIS/PostgreSQL solutions for heavy read load (master/slave replication) and for huge data sizes (table partitioning) but write load is difficult. You've already laid out the case against Mongo and for PostGIS, which is the much larger feature set and code maturity of PostGIS, so balance that against the other concerns.
No comments:
Post a Comment