plan-player-analytics / Plan

Player Analytics plugin for Minecraft Server platforms - View player activity of your server with ease. :calendar:
https://www.spigotmc.org/resources/plan-player-analytics.32536/
GNU Lesser General Public License v3.0
864 stars 171 forks source link

Adding Cassandra DB support #2386

Closed ServOKio closed 2 years ago

ServOKio commented 2 years ago

I would like to be able to..

Adding Cassandra DB support 🤷‍♀️

Is your feature request related to a problem? Please describe.

We use the nosql Cassandra database and don't really want to use MySQL just to collect analytics for minecraft servers. Even if you refuse this request, would it be legal if we just create a symbolic link to the one database.db file for all servers ?

AuroraLS3 commented 2 years ago

Adding Cassandra DB support

Cassandra does not offer SQL compatible query model (https://cassandra.apache.org/doc/latest/cassandra/cql/) so it is unfortunately out of scope to support it as a database. Plan relies heavily on the relational aspect of SQL databases and since there are ~500-1000 SQL queries in the plugin it is not feasible for me to re-implement them in CQL.

would it be legal if we just create a symbolic link to the one database.db file for all servers ?

I can see one issue with this approach - Because the .db file is SQLite, having multiple servers writing in the same file will degrade write performance, since SQLite needs to lock the whole database file when writing (As opposed to row / table based locking MySQL offers)

If you do it anyway Plan will likely keep writing data as multiple servers into the same database, but currently the implementation assumes MySQL to be the only way to have all servers connected to the same database - so proxy servers don't support SQLite connections and there isn't a centralized webserver.

ServOKio commented 2 years ago

Elassandra can't help with that either ?

AuroraLS3 commented 2 years ago

Elastisearch is another non relational query language so it does not help.