Não. Não é possível.
O máximo que você pode fazer é otimizar seu banco de dados para uma execução mais rápida, como este tutorial feito pelo Gustavo ensina: Otimizando Server Save - Limites Do Otserv (100% Linux)
Não. Não é possível.
O máximo que você pode fazer é otimizar seu banco de dados para uma execução mais rápida, como este tutorial feito pelo Gustavo ensina: Otimizando Server Save - Limites Do Otserv (100% Linux)
Editado Dezembro 23 por Oneshot
info
Grupo: Conde
Registrado: 10/07/08
Posts: 574
Reputação: +13
Gênero: Masculino
Char no Tibia: Hebi Of Amera

Já faço uso desse script mas por se tratar de VPS não surtiu efeito e nem aqui na minha casa teve efeito.
Ninguém mais pode ajudar? Aceito opiniões ![]()
Já disse que não é possível.
int32_t LuaInterface::luaDoSaveServer(lua_State* L)
{
//doSaveServer([shallow = false])
bool shallow = false;
if(lua_gettop(L) > 0)
shallow = popBoolean(L);
Dispatcher::getInstance().addTask(createTask(boost::bind(&Game::saveGameState, &g_game, shallow)));
lua_pushnil(L);
return 1;
}
Agora uma olha no Game:saveGameState
void Game::saveGameState(bool shallow)
{
std::clog << "> Saving server..." << std::endl;
uint64_t start = OTSYS_TIME();
if(gameState == GAMESTATE_NORMAL)
setGameState(GAMESTATE_MAINTAIN);
IOLoginData* io = IOLoginData::getInstance();
for(AutoList<Player>::iterator it = Player::autoList.begin(); it != Player::autoList.end(); ++it)
{
it->second->loginPosition = it->second->getPosition();
io->savePlayer(it->second, false, shallow);
}
map->saveMap();
ScriptEnviroment::saveGameState();
if(gameState == GAMESTATE_MAINTAIN)
setGameState(GAMESTATE_NORMAL);
std::clog << "> SAVE: Complete in " << (OTSYS_TIME() - start) / (1000.) << " seconds using "
<< asLowerCaseString(g_config.getString(ConfigManager::HOUSE_STORAGE))
<< " house storage." << std::endl;
}
Mas se você acredita em milagres, só dividir esse for em vários.
for(AutoList<Player>::iterator it = Player::autoList.begin(); it != Player::autoList.end(); ++it)
{
it->second->loginPosition = it->second->getPosition();
io->savePlayer(it->second, false, shallow);
}
Mas dando uma olhada melhor, dá para separar em save de jogadores e save de mapa, que acho que já ajuda um pouco.
Abraços.
Editado Dezembro 24 por Oneshot
info
Grupo: Conde
Registrado: 10/07/08
Posts: 574
Reputação: +13
Gênero: Masculino
Char no Tibia: Hebi Of Amera

Tem como me ajudar com isso? separar o save dos player e mapa? para ocorre 1 e depois de 5 minutos o outro?
,
Sim é possível.
Há varias maneiras de dividir o server save.
Podes primeiro fazer save dos players e depois das casas.
Podes gravar primeiro os players com id par e depois os com id impar.
Etc...
info
Grupo: Herói
Registrado: 12/03/11
Posts: 1.9k
Reputação: +284
Gênero: Masculino
Char no Tibia: Nokte

Cara, a melhor coisa que você faz é juntar uma graninha e por um hd SSD em seu servidor, pronto seu server save está sem lagging.
info
Grupo: Conde
Registrado: 10/07/08
Posts: 574
Reputação: +13
Gênero: Masculino
Char no Tibia: Hebi Of Amera

Beeki já fiz o pedido do HD é um dedicado melhor, mesmo assim queria dividir o save exemplo como ele disse, salvar players com ID ímpar depois Par e depois o mapa.
Se alguém souber e quiser me dizer o que tenho que modificar. minha distro e a trunk.r3884
info
Grupo: Herói
Registrado: 12/03/11
Posts: 1.9k
Reputação: +284
Gênero: Masculino
Char no Tibia: Nokte

Beeki já fiz o pedido do HD é um dedicado melhor, mesmo assim queria dividir o save exemplo como ele disse, salvar players com ID ímpar depois Par e depois o mapa.
Se alguém souber e quiser me dizer o que tenho que modificar. minha distro e a trunk.r3884
Isso é inútil, tendo o HD que citei a cima, você pode salvar a DB toda de vez sem problemas.
info
Grupo: Conde
Registrado: 10/07/08
Posts: 574
Reputação: +13
Gênero: Masculino
Char no Tibia: Hebi Of Amera

Sim. Concordo com você é só que essa duvida não era só minha saca? Tem um colega meu que não tem como pagar dedicado então ele também quer saber.
info
Grupo: Herói
Registrado: 12/03/11
Posts: 1.9k
Reputação: +284
Gênero: Masculino
Char no Tibia: Nokte

então, não é possível. Como o próprio oneshot citou acima.
info
Grupo: Conde
Registrado: 10/07/08
Posts: 574
Reputação: +13
Gênero: Masculino
Char no Tibia: Hebi Of Amera

Pelo meu conhecimento básico sei que é possível editar e dividir. se eu não me engano já lê um poste seus que você disse que fez isso.
info
Grupo: Conde
Registrado: 16/06/08
Posts: 998
Reputação: +185
Gênero: Masculino

cara com o mysql ajustado e tal da pra salvar no máximo 5s, eu pego 2s num global... no windows ainda.
já testei o hd ssd e ficou mema coisa ;3
info
Grupo: Herói
Registrado: 12/03/11
Posts: 1.9k
Reputação: +284
Gênero: Masculino
Char no Tibia: Nokte

Pelo meu conhecimento básico sei que é possível editar e dividir. se eu não me engano já lê um poste seus que você disse que fez isso.
cara, se você sabe por que postou aqui? LoL,
info
Grupo: Conde
Registrado: 10/07/08
Posts: 574
Reputação: +13
Gênero: Masculino
Char no Tibia: Hebi Of Amera
Galera gostaria de saber se tem como dividir o server seve em 3 partes para ele ficar bem leve para não dar o freeze já usei outros metodos mas não consegui configura-lo muito bem então se alguém quiser me ajudar vou ficar agradecido;
Exemplo:
salva uma parte depois de 5 minutos outra depois de 5 minutos outra.
REP++