My complaints about the SGS are basically that database queries are not supported by the SGS itself. Now imagine you would need to implement something like EVE Online on the SGS. SGS has a huge market and mission database with millions of entries and you would need a database system for it to manage all the queries needed for proper access to the markets like EVE provides it (local, regional and global markets and mission data). If you would do that with just GLOs you cant expect any sophisticated answers in decent time and the game would be broken. So you would need to use an external database and the SGS currently just provides this using raw sockets with asynchron query/result access. This means you would need to do a query or database manipulation operation on one SGS task and get the results on a different task. What about transactional safety then?- It could happen that it is broken because the manipulation operation is send from one task (which could be discarded afterwards) and the result is given to a different task (and this result is maybe invalid due to the discard of the task before); or the sending task commits but the database fails and the state of the SGS objectStore is not valid and needs to be fixed.
So, how would you implement an EVE Online like database with the SGS?- IMO the SGS model is broken for games which needs to deal with some huge databases as far as transactional safety is concerned, but maybe you have a better idea I am not thinking of.
If you have never played EVE to answer this question: EVE offers a 14-day free trial currently where you could get an idea about this huge database and the way EVE provides access to it.
Ragosch