Спасибо за статью, напомнило о весёлых временах...
Было очень познавательно узнать о структуре графа. Раньше для меня это была загадка, но теперь загадок не осталось. :)
Насколько я помню, мы не сталкивались с разбором графа, так как Нивал предоставил нам инструмент (GraphBuilder.exe) для его создания. А впоследствии мы внедрили автоматический вызов движка для создания графа из аддона, поэтому аддону не нужен отдельный граф для мобов. Если я, конечно, не ошибаюсь. :)
1. В вашем случае, можно хранить целые числа в одной колонке, это уменьшит размер таблицы как минимум в два раза. Максимальное значение будет 675999999, и оно спокойно умещается в Integer. Кодировать числа в логины можно следующим образом:
2. Так же в глаза бросается проблема с concurrency.
Чем меньше будет оставаться записей в базе, тем больше вероятность того, что два потока смогут взять один и тот же логин.
Её можно решить, добавив проверку кода возврата при удалении логина. Т.е. нужно выбирать другой логин (делать retry) если удалить не получилось, значит этот логин уже взял другой поток.
Спасибо за статью, напомнило о весёлых временах...
Было очень познавательно узнать о структуре графа. Раньше для меня это была загадка, но теперь загадок не осталось. :)
Насколько я помню, мы не сталкивались с разбором графа, так как Нивал предоставил нам инструмент (GraphBuilder.exe) для его создания. А впоследствии мы внедрили автоматический вызов движка для создания графа из аддона, поэтому аддону не нужен отдельный граф для мобов. Если я, конечно, не ошибаюсь. :)
2. Так же в глаза бросается проблема с concurrency.
Чем меньше будет оставаться записей в базе, тем больше вероятность того, что два потока смогут взять один и тот же логин.
Её можно решить, добавив проверку кода возврата при удалении логина. Т.е. нужно выбирать другой логин (делать retry) если удалить не получилось, значит этот логин уже взял другой поток.