I recently got into hosting my own server again. The problem is I cannot host a MySQL database on the same machine as HLDS. The MySQL DB is a remote connection that goes cross-country for each query. Every time a query is performed there is a small lag spike. If there's a bit of lag on the query, the server locks up for a few seconds (very annoying).
I'm looking at two options: using threaded queries with SQLX or using nVault so the data can be stored locally on the server.
My main question with the threaded queries is this: What happens at mapchange? My plugins do a lot of queries in the plugin_end() function. How does this work when the map is changing? When the query comes back, what if the server has changed the map?
Also, if I am not interested in the results of a threaded query, how does that work? Do I just create a handler that does nothing?
As for using nVault, is there an easy way to move data from MySQL to nVault? The only way I can think of is to create a flat file with one record per line, then write a plugin to parse the file. Is there an easier way?