Blackheart OT
Defense in depth
Hello fellow developers,
I have an idea to code a scalable version of the open tibia server. This means that when load increases, I (or the system automatically) can create more instances running the server to meet demands. A load balancer is made aware of the changes and dishes out connections to distribute load. Its a fairly common setup, and I hypothesize is it possible to do for a Tibia server.
The problems that immediately come to mind are that although the database is external (no changes needed here), the server runs primarily on ram, making read requests only when it needs new info, and writes upon saving events.
The solution is simply adding a layer of distributed cache that the application exclusively uses for all variables that would be required between servers to dish out responses where each request could hit a different server. A simple and common API like memcached would be used. Servers can also coordinate events such as raids, saves, cleans, etc through the cache so that only one server creates these objects.
I would like your thoughts on feasibility. I may start this project as a fork of an existing open server, and if anyone is interested in coding let me know.
Sincerely,
Mike
I have an idea to code a scalable version of the open tibia server. This means that when load increases, I (or the system automatically) can create more instances running the server to meet demands. A load balancer is made aware of the changes and dishes out connections to distribute load. Its a fairly common setup, and I hypothesize is it possible to do for a Tibia server.
The problems that immediately come to mind are that although the database is external (no changes needed here), the server runs primarily on ram, making read requests only when it needs new info, and writes upon saving events.
The solution is simply adding a layer of distributed cache that the application exclusively uses for all variables that would be required between servers to dish out responses where each request could hit a different server. A simple and common API like memcached would be used. Servers can also coordinate events such as raids, saves, cleans, etc through the cache so that only one server creates these objects.
I would like your thoughts on feasibility. I may start this project as a fork of an existing open server, and if anyone is interested in coding let me know.
Sincerely,
Mike