Giter Site home page Giter Site logo

a3-eposql's Introduction

EpoSql - Downloads

A server mod for A3 Epoch to allow use of MySQL instead of Redis. Once data is retrevied from the database it is held in memory and only updates when the server send data to the extension. This means you CAN NOT edit player data if they have logged in during the current server session (This behavour will be changed if people request it), to get around this, you can disable caching globally but this will slow things down.

Worst case, if you do edit the database while the server is running, the changes will be lost. Nothing will explode =P

Redis MAY still be required, as is the current EpochServer.dll but all player/building/etc data will be redirected to MySQL/Sqlite.

Performance

EpoSql: 0.0126999/0.00810089 ms โ€” with/without full logging

Offical Epoch: 0.0524994 ms โ€“ Offical epoch dll

THIS EXTENSION IS COMPLETELY WIP. ENSURE YOU BACKUP EVERYTHING!

IM LOOKING FOR PEOPLE TO HELP OUT WITH IT.

Installation

  • Download the latest release
  • Extract @eposql on your server (you need a seperate copy per server instance)
  • Add @eposql to the -servermod start-up param
  • If you are modifing the server's CfgFunctions preinit, you will need to add: call ESQ_fnc_Init; so your server files BEFORE any Epoch code starts to load.
  • Now open EpoSql.ini and edit to settings to suit your setup.
    • ShowConsole: Displays a console window showing logging.
    • LogRequests: Logs everything but also slows stuff down.
    • CacheData: Setting this to false means every request hits database.
    • Driver: Either MySQL or Sqlite. MySQL is recommended for live servers.
    • MySQL Host: MySQL hostname/ip
    • MySQL Port: MySQL port
    • MySQL User: MySQL user
    • MySQL Password: MySQL password
    • MySQL Database: MySQL database name
    • Sqlite DBFile: Sqlite filename
  • Create a new database.
  • Once all the config is setup, run CreateDatabase.exe to create the database schema.
  • Now you can start the server.

Importing From Redis

The mod includes an exe to import from Redis.

  • Setup the mod as stated above.
  • Run Import.exe with the correct params:
    • --host: Redis hostname
    • --port: Redis post
    • --password: Redis password
    • --db: Redis DBID
    • --instance: Epoch instance id
  • Once complete, all Redis data should be in the database.

License

This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

a3-eposql's People

Contributors

maca134 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

a3-eposql's Issues

Not fully exporting

Epoch 0.3.9.0
Trying to export to mysql... but it only takes 2 tables (Players and Bank)... others remain empty.
Will you make it 0.3.9.0 compatible?

need some help

hello guys...
one of my mates tried to install this on his server
but it never writes to the mysql database... the connection info etc is all set up

and im not 100% sure what this means exactly:
If you are modifing the server's CfgFunctions preinit, you will need to add: call ESQ_fnc_Init; so your server files BEFORE any Epoch code starts to load.

would be great if someone could give me some hints how to get it working...

Importing Redis DB having issues

When trying to import the Redis DB it does not complete the import process. Seems to be getting stuck on transferring headless client "player" data. Minimal data actually is getting transferred. No other errors are appearing in the program window. See log below:

2015-08-01 11:58:25,763 [4] INFO EpoSql.Core.Settings - Loading settings from C:\Program Files (x86)\Steam\steamapps\common\Arma 3 Server@eposql\EpoSql.ini
2015-08-01 11:58:25,763 [3] INFO EpoSql.Util.Logger - Logger Started
2015-08-01 11:58:25,764 [6] INFO EpoSql.Core.Manager - Settings Saved
2015-08-01 11:58:25,765 [5] INFO EpoSql.Core.Manager - Manager Started
2015-08-01 11:58:27,772 [7] INFO EpoSql.Core.Manager - Request: SET, Vehicle, TST_1:46, -1, [] | Output Size: 9900
2015-08-01 11:58:27,776 [3] INFO EpoSql.Core.Manager - Response: [1,"Done"]
2015-08-01 11:58:27,776 [3] INFO EpoSql.Core.Manager - Request: SET, Vehicle, TST_1:48, -1, [] | Output Size: 9900
2015-08-01 11:58:27,776 [6] INFO EpoSql.Core.Manager - Response: [1,"Done"]
2015-08-01 11:58:27,776 [5] INFO EpoSql.Core.Manager - Request: SET, Vehicle, TST_1:91, -1, [] | Output Size: 9900
2015-08-01 11:58:27,777 [13] INFO EpoSql.Core.Manager - Response: [1,"Done"]
2015-08-01 11:58:27,777 [14] INFO EpoSql.Core.Manager - Request: SET, PlayerStats, 76561197996565851, -1, [0,0], | Output Size: 9900
2015-08-01 11:58:27,777 [14] INFO EpoSql.Core.Manager - Response: [1,"Done"]
2015-08-01 11:58:27,778 [14] INFO EpoSql.Core.Manager - Request: SET, PlayerStats, HC4876, -1, [0,0], | Output Size: 9900
2015-08-01 11:58:27,778 [15] INFO EpoSql.Core.Manager - Response: [1,"Done"]
2015-08-01 11:58:27,778 [15] INFO EpoSql.Core.Manager - Request: SET, PlayerStats, HC5696, -1, [0,0], | Output Size: 9900
2015-08-01 11:58:27,778 [5] INFO EpoSql.Core.Manager - Response: [1,"Done"]
2015-08-01 11:58:27,778 [5] INFO EpoSql.Core.Manager - Request: SET, PlayerStats, HC5472, -1, [0,0], | Output Size: 9900
2015-08-01 11:58:27,780 [6] INFO EpoSql.Core.Manager - Response: [1,"Done"]
2015-08-01 11:58:27,780 [5] ERROR EpoSql.Model.Player - Error getting id: Input string was not in a correct format. - HC5472
2015-08-01 11:58:27,780 [6] INFO EpoSql.Core.Manager - Request: SET, PlayerStats, HC5520, -1, [0,0], | Output Size: 9900
2015-08-01 11:58:27,780 [15] ERROR EpoSql.Model.Player - Error getting id: Input string was not in a correct format. - HC5696
2015-08-01 11:58:27,780 [14] ERROR EpoSql.Model.Player - Error getting id: Input string was not in a correct format. - HC4876
2015-08-01 11:58:27,780 [6] ERROR EpoSql.Model.Player - Error getting id: Input string was not in a correct format. - HC5520
2015-08-01 11:58:27,780 [15] INFO EpoSql.Core.Manager - Response: [1,"Done"]
2015-08-01 11:58:27,780 [5] INFO EpoSql.Core.Manager - Request: SET, PlayerStats, HC5192, -1, [0,0], | Output Size: 9900
2015-08-01 11:58:27,780 [6] INFO EpoSql.Core.Manager - Response: [1,"Done"]
2015-08-01 11:58:27,780 [14] ERROR EpoSql.Model.Player - Error getting id: Input string was not in a correct format. - HC5192
2015-08-01 11:58:27,781 [15] INFO EpoSql.Core.Manager - Request: SET, PlayerStats, HC5380, -1, [0,0], | Output Size: 9900
2015-08-01 11:58:27,781 [15] INFO EpoSql.Core.Manager - Response: [1,"Done"]
2015-08-01 11:58:27,781 [5] ERROR EpoSql.Model.Player - Error getting id: Input string was not in a correct format. - HC5380
2015-08-01 11:58:27,781 [6] INFO EpoSql.Core.Manager - Request: SET, PlayerStats, HC5960, -1, [0,0], | Output Size: 9900
2015-08-01 11:58:27,781 [15] INFO EpoSql.Core.Manager - Response: [1,"Done"]
2015-08-01 11:58:27,781 [14] ERROR EpoSql.Model.Player - Error getting id: Input string was not in a correct format. - HC5960
2015-08-01 11:58:27,781 [5] INFO EpoSql.Core.Manager - Request: SET, PlayerStats, HC2328, -1, [0,0], | Output Size: 9900
2015-08-01 11:58:27,781 [15] INFO EpoSql.Core.Manager - Response: [1,"Done"]
2015-08-01 11:58:27,781 [6] ERROR EpoSql.Model.Player - Error getting id: Input string was not in a correct format. - HC2328
2015-08-01 11:58:27,781 [5] INFO EpoSql.Core.Manager - Request: SET, PlayerStats, HC3968, -1, [0,0], | Output Size: 9900
2015-08-01 11:58:27,781 [14] ERROR EpoSql.Model.Player - Error getting id: Input string was not in a correct format. - HC3968
2015-08-01 11:58:27,781 [6] INFO EpoSql.Core.Manager - Response: [1,"Done"]
2015-08-01 11:58:27,781 [5] INFO EpoSql.Core.Manager - Request: SET, PlayerStats, 76561198043540309, -1, [0,0], | Output Size: 9900
2015-08-01 11:58:27,781 [14] INFO EpoSql.Core.Manager - Response: [1,"Done"]
2015-08-01 11:58:27,781 [5] INFO EpoSql.Model.Player - Updating PlayerStats: 76561197996565851
2015-08-01 11:58:27,781 [14] INFO EpoSql.Model.Player - Updating PlayerStats: 76561198043540309
2015-08-01 11:58:27,980 [4] INFO EpoSql.Model.Vehicle - Deleting: 46
2015-08-01 11:58:27,981 [7] INFO EpoSql.Model.Vehicle - Deleting: 48
2015-08-01 11:58:27,981 [14] INFO EpoSql.Model.Vehicle - Deleting: 91

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.