Ir para conteúdo
  • 0

Possivel dividir o Serve Save em partes?


Pergunta

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++

Link para o comentário
https://xtibia.com/forum/topic/202303-possivel-dividir-o-serve-save-em-partes/
Compartilhar em outros sites

Posts Recomendados

  • 0

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 por Oneshot
Link para o comentário
https://xtibia.com/forum/topic/202303-possivel-dividir-o-serve-save-em-partes/#findComment-1421094
Compartilhar em outros sites

  • 0

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 :D

Link para o comentário
https://xtibia.com/forum/topic/202303-possivel-dividir-o-serve-save-em-partes/#findComment-1421123
Compartilhar em outros sites

  • 0

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 por Oneshot
Link para o comentário
https://xtibia.com/forum/topic/202303-possivel-dividir-o-serve-save-em-partes/#findComment-1421867
Compartilhar em outros sites

  • 0

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...

Link para o comentário
https://xtibia.com/forum/topic/202303-possivel-dividir-o-serve-save-em-partes/#findComment-1424188
Compartilhar em outros sites

  • 0

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

Link para o comentário
https://xtibia.com/forum/topic/202303-possivel-dividir-o-serve-save-em-partes/#findComment-1428049
Compartilhar em outros sites

  • 0
  Em 01/01/2013 em 23:45, cs007 disse:

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.

Link para o comentário
https://xtibia.com/forum/topic/202303-possivel-dividir-o-serve-save-em-partes/#findComment-1428145
Compartilhar em outros sites

  • 0

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.

Link para o comentário
https://xtibia.com/forum/topic/202303-possivel-dividir-o-serve-save-em-partes/#findComment-1428168
Compartilhar em outros sites

  • 0

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.

Link para o comentário
https://xtibia.com/forum/topic/202303-possivel-dividir-o-serve-save-em-partes/#findComment-1428625
Compartilhar em outros sites

  • 0
  Em 02/01/2013 em 18:00, cs007 disse:

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,

Link para o comentário
https://xtibia.com/forum/topic/202303-possivel-dividir-o-serve-save-em-partes/#findComment-1428756
Compartilhar em outros sites

  • 0
  Em 02/01/2013 em 21:26, cs007 disse:

Não lek sei que tem como fazer x.x eu quero que alguém me ajuda né.

 

você não quer que alguém te ajude, você quer que alguém faça pra você.

Link para o comentário
https://xtibia.com/forum/topic/202303-possivel-dividir-o-serve-save-em-partes/#findComment-1429094
Compartilhar em outros sites

×
×
  • Criar Novo...