0

I'm working in a project of tracking user positions (latitude & longitude) all day long. Having more than a thousand users, means that every user is saving 1440 tracks per day (1 per minute) so 1440 * 1000users is 1.5M tracks/day.

I've been working with mysql for years, but when the db grows I've to work a lot to separate the tracks for example in one table for each 10 users (sharding) and more..

Just seen MongoDB or DynamoDB (Amazone) are awesome for scalability, but is it right to use on of this in this kind of project? I'd need to get weekly reports, which means that I've to ask for 1440*7days tracks between 2 timestamps when the user needs the report.

Would you use mongoDB? How would you implement the structure users-tracks? I had so many nightmares working with mysql...

thanks!

Community
  • 1
  • 1
Ksakser
  • 37
  • 7
  • MongoDB is not a silver bullet. It has its uses, but only consider it for stuff that can be stored as dumb json blobs whose contents you could not care less about. Methinks ask new questions to sort out your MySQL issues. – Denis de Bernardy Nov 21 '13 at 11:20
  • 1
    You've got to actually model it out and try the operations you're interested in. Factor in support and maintenance, etc. Asking the SO community to do your modeling and compare tech isn't a good match for StackOverflow. – WiredPrairie Nov 21 '13 at 11:41
  • Some of the questions you need to answer yourself/your project are not only the quantity of the data, but what kind of queries are you hoping to run across the data? – Zerkz Nov 21 '13 at 20:28

1 Answers1

0

I would use dynamo to store data and elastic map reduce to produce weekly reports on S3 (eventually published by an ElasticBeanStalk app or directly from Cloudfront if they are public), so that the user finds them ready when he want to access it. To me the main point between Mongo and Dynamo is TCO, dynamo looks cheeper. But you better check out this question for Mongo vs Dynamo:

DynamoDB vs MongoDB NoSQL

Community
  • 1
  • 1
aaaristo
  • 2,079
  • 14
  • 11