I'm developing a C# program which uses LiteDB to store data. During the design phase I was told it will be a single-user application, so LiteDB seemed like a pretty good solution. I had no experience with LiteDB before.
However recently I've been informed that the program needs to support multiple users accessing and writing to the same database over the computer network. I know that LiteDB was not designed to be used this way so obvious decision would be to switch to any other server-based DBMS like MySQL.
Now I know that LiteDB supports concurrent access so I've evaluated all the operations with the database in my program. These operations are not continuous and do not require constant access to the database.
My first question is will the following be possible with LiteDB:
- Up to 20 instances of the program are accessing the database file over the network roughly at the same time and recevieve the data. After receiving the data, database connection closes. No changes to the database are made.
- Up to 20 instances of the program are accessing the database file over the network roughly at the same time and commit changes. After writing the data, database connection closes. No reading any data from the database.
I want to know if at least any of these two options is possible. And if not, what should I use as an alternative? I work at a company so this could be interpretated as a commercial usage which limits the range of DBMS I can use.
LiteDB is extremely attractive to me because it makes very easy to store the data, which is in my case are instance of classes which include other class instances as properties.
The best alternative would be a portable database server with easy to setup and minimal functions which supports concurrent access.