1000 users, over 30 private data collections

I am working on a management / scheduling application that will have over 1000 users, each with 30+ data collections.

For example, each user might have a collection of, say, customer contacts, 10 in total and as many as several hundred items / records.

Would Arangodb be the right choice for this application?

Is there a better choice?

Many thanks,

LRP

+3


source to share


1 answer


My guess is that all user databases should be kept separate, so user 1 shouldn't see user 2's data, etc.

If so, it is possible to create a separate database for each user or, as you mentioned, 30 databases for each user. This will lead to the creation of over 30,000 databases. I think this would not be an ideal use of ArangoDB as each database will incur some overhead and you may want to keep the total number of databases in ArangoDB relatively small, at least you won't create 30,000 databases in it ...



The alternative is not to create as many databases as there are such collections, perhaps all in the same databases. While this provides good separation of user data, it will also be quite expensive in terms of resource usage (since each collection might require a separate storage file if it contains data). I think this might work if not all users / collections need to be active at the same time and there are a lot of resources on the server (or you are splitting data across multiple servers).

The solution, which would use the least resources in ArangoDB, would be to put the data of multiple users in multiple collections. For each entry, you can store a user id, and your app uses the user id in every request. This would ensure that the application only accesses the records of one specific user at a time. Also, since this would only use a few collections, there would be no need to create empty or mostly empty databases / collections for users with little data. In terms of resource use, this should be relatively efficient.

+1


source







All Articles