I am embedding Monetdbe into a multi-threaded C++ application.
I have several threads running on the server-side of my application and each thread opens its own instance of the same Monetdb database, i.e. each thread runs the following code:
monetdbe_database db = NULL;
if (monetdbe_open(&db, url /* inmemory database */, NULL /* no options */)) {
fprintf(stderr, "Failed to open database\n");
return -1;
}
Each thread runs MonetDB queries sent by clients connected to the server. therefore, there can be several clients connected to the db at the same time, and they may send requests to access/update the same underlying tables at the same time. I just want to make sure that Monetdb has been designed to deal with this scenario.
I understand that Monetdb is not designed to be a high transaction db, and my use case is more analytical, but I do have several clients that will be connected to the server, and sometimes they may run queries against the same db tables at the same time. Is this the correct way to run multi-threaded applications with Monetdbe?