Jump to content

allow other DB options such as SQL


knights†emplar

Recommended Posts

As the title suggests, maybe some time down the development life cycle, not super urgent right now but please consider an option for SQL. 

 

If anything for the future of our kids, setting up and managing A2 epoch server exposed me to SQL and as a result i am benefiting from it in my current IT job.

 

The business demand for SQL developers is huge, not to mention the many integrated tools that is available out there!

 

 

Link to comment
Share on other sites

Redis is a cache rather than a DB.  Fast in and out but less functionality as it is not needed for the job it was designed to perform.

 

The devs decision to use ReDIs is theirs to make although using it because MySQL was not fast enough does not seem to be particularly valid especially as no one has been able / willing to show the MySQL DB backend was causing problems with A2 Epoch, for example.  Some people have provided some evidence from their experiences showing that MySQL was not a bottleneck (search for MySQL and you will find a number of threads on the subject).

 

Now extDB supports both ReDis and MySQL, the devs could move over to using it and allow the server owners / mod makers to build up the SQL calls to enable MySQL usage.

 

I don't expect this to happen as;

  1. It would be another level of control given over to the users rather than fixing the core of A3 Epoch as a 'Standard build' as the Dev team have stated they wanted to do.
  2. It would not add much to the end user, only make some server owners happier (easier for them to maintain with current skill sets).
  3. The Dev team have been very resistant in the past in making changes to backend storage connectivity (ie. Hiveext.dll in A2 EPoch).
  4. The mod is still in Alpha and they want to test new features rather than re-engineer the backend storage.

Personally I feel some of these points are very valid but extDB does not open up the possibility for the ReDis and MySQL backends to be used if the Dev team wanted to take a look.

 

Link to comment
Share on other sites

For the record A3 Epoch Extension does has some advantages.

Mainly it doesn't require to run in scheduled environment when fetching results.
But since all the fetched results need to fit in the 10k callExtension limit,
there is also extra sqf work to make the inventory arrays smaller when updating database etc..

The ability of custom scripts to save custom data to database without needing to alter the database etc.
No knowledge of SQL required (but the basics are fairly easy imo, learning sqf + locality is harder for new people imo).

My main point of contention is all the people pointing out Trader Menu is faster with Redis.
That is because the A2 Epoch Trader Code was constantly checking the Database, while A3 Epoch Trader only checks the Database @ startup + keeps info in arma variables.

-------------

But the main thing is Epoch Server Code is optimized for key value system used in Redis.
Which is different to how MySQL Queries work, where you could update a single player value in a table thats linked to index of another table etc...
So its abit of work to try + support either backend, without having the extension doing some of work to convert calls to either backend.

Apparently the Server Code is getting unobfuscated in version 0.3->0.5.
So you could always wait + alter the server code to use MySQL Backend (Its technical not against A3 Epoch License aslong as you don't redistribute the Server Code).
It would be nice for the license get changed to something more open-source where people would be allowed to fork the servercode on a public github for different backends.

-------------

But there are some other mods in the works, some well known + some not (that may or may not get finished / released).
With some luck Epoch Devs might get some friendly competition in the near future.

Link to comment
Share on other sites

.

For the record A3 Epoch Extension does has some advantages.

....

My main point of contention is all the people pointing out Trader Menu is faster with Redis.

That is because the A2 Epoch Trader Code was constantly checking the Database, while A3 Epoch Trader only checks the Database @ startup + keeps info in arma variables.

 

 

 

Again, no-one has provided any info to show the DB (rather than the DB and then network combination) was causing the issue. Having the trader data loaded and managed locally takes out both and removed the 'world' scope of traders.

 

Maybe the sqf and DB code sould have been improved so it was loading the deltas then rather than trying to reload the entire trader inventory when people opened the trader menu ;) .  Less data to load and less to transmit.  Maybe a trigger could have refreshed the data when a player entered the trading area (max once / minute) and only transmit changed values to clients of players in the area.  I am sure there are a number of ways it could have been inproved with a bit of focus.

 

Apparently the Server Code is getting unobfuscated in version 0.3->0.5.

So you could always wait + alter the server code to use MySQL Backend (Its technical not against A3 Epoch License aslong as you don't redistribute the Server Code).

It would be nice for the license get changed to something more open-source where people would be allowed to fork the servercode on a public github for different backends.

 

 

Some hope for people wanting to make the change then.  Presumabily distributing the code is not allowed but distributing a patch with instructions on how to apply wouldn't be ?.  Don't know and have not really got time to do anything on this anyhow.

 

But there are some other mods in the works, some well known + some not (that may or may not get finished / released).

With some luck Epoch Devs might get some friendly competition in the near future.

 

Yeah, ours is moving on ... slowly.  After doing the PoC on trader guard hostility against 'naughty' players I will be looking at getting a trader market working with the DB backend.  Will see how doable it is at that point.  I have a number of ways to explore and with extDBs MySQL and ReDis ability, the two combined may work very well for this with ReDis doing what it is designed for (caching) between DB refreshes.  Probably a discussion for another time, in another thread, probably on some other forum ;) .

 

For those reading and who may not be aware, TornDeco is the person behind extDB (*why are there still no thumbsup icons*) :D .

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
  • Discord

×
×
  • Create New...