Ru-MaNGOS

Вернуться   Ru-MaNGOS > Новости > CMaNGOS Commits

Важная информация

CMaNGOS Commits Изменения, принятые в официальный репозиторий ядра CMaNGOS.
git://github.com/cmangos/mangos-wotlk.git

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.01.2011, 22:10   #1
newsbot
Модератор
 
Регистрация: 06.03.2010
Сообщений: 988
Сказал(а) спасибо: 0
Поблагодарили 23 раз(а) в 14 сообщениях
newsbot На верном пути
По умолчанию [11045] Rewrite internals of DB layer. Simplify code and use less locking. Spawn and use separate co

автор: Ambal


m src/game/CharacterHandler.cpp
m src/game/ObjectMgr.cpp
m src/game/World.cpp
m src/game/World.h
m src/mangosd/Master.cpp
m src/mangosd/mangosd.conf.dist.in
m src/realmd/Main.cpp
m src/shared/Database/Database.cpp
m src/shared/Database/Database.h
m src/shared/Database/DatabaseImpl.h
m src/shared/Database/DatabaseMysql.cpp
m src/shared/Database/DatabaseMysql.h
m src/shared/Database/DatabasePostgre.cpp
m src/shared/Database/DatabasePostgre.h
m src/shared/Database/SqlDelayThread.cpp
m src/shared/Database/SqlDelayThread.h
m src/shared/Database/SqlOperations.cpp
m src/shared/Database/SqlOperations.h
m src/shared/revision_nr.h

[11045] Rewrite internals of DB layer. Simplify code and use less locking. Spawn and use separate connections for sync and async DB requests. Implement database connection pool for SELECT queries. Up to maximum 16 connections supported. Disable 'autocommit' mode for MySQL.

UPDATE YOUR CONFIGS!

Defaults:
LoginDatabaseConnections = 1
WorldDatabaseConnections = 1
CharacterDatabaseConnections = 1

If you are not using patch do not change the default settings - this is useless. You can try following option in your MySQL config to squeeze even more performance from your DB:

[mysqld]
transaction-isolation = READ-COMMITTED

Great thanks to Undergarun, kero99 and selector for making tests and providing very useful feedback and DB statistics! Have fun :)

Signed-off-by: Ambal





Дальше...
newsbot вне форума   Ответить с цитированием
Старый 19.01.2011, 23:54   #2
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

А можно поподробнее об этом моменте, что это даёт и вообще какие настройки рекомендуются, я что-то понять не могу...
KiriX вне форума   Ответить с цитированием
Старый 20.01.2011, 00:00   #3
Ambal
MaNGOS Dev
 
Аватар для Ambal
 
Регистрация: 22.06.2010
Сообщений: 78
Сказал(а) спасибо: 24
Поблагодарили 71 раз(а) в 25 сообщениях
Ambal Скоро придёт к известности
По умолчанию

На офф форуме в топике по этому патчу есть вся интересующая вас информация. Все будет хорошо даже если вы в конфиге ничего не подправите
Ambal вне форума   Ответить с цитированием
Старый 20.01.2011, 01:51   #4
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Цитата:
Сообщение от Ambal Посмотреть сообщение
На офф форуме в топике по этому патчу есть вся интересующая вас информация. Все будет хорошо даже если вы в конфиге ничего не подправите
Я, конечно, могу прочитать на инглише, но, боюсь, могу неверно понять такую специфическую терминологию.
По дефолту - хорошо. Если даже по дефолту будет лучше - вообще отлично. Но хотелось бы понять всё-таки что к чему и зачем
KiriX вне форума   Ответить с цитированием
Старый 20.01.2011, 06:27   #5
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

KiriX, читай http://ru-mangos.ru/showthread.php?t=3480
__________________
Konctantin вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (20.01.2011)
Старый 20.01.2011, 19:00   #6
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Цитата:
Сообщение от Konctantin Посмотреть сообщение
Да это я помню - меня интересуют опции конфига и на что они и как влияют.
KiriX вне форума   Ответить с цитированием
Старый 20.01.2011, 20:01   #7
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от KiriX Посмотреть сообщение
Да это я помню - меня интересуют опции конфига и на что они и как влияют.
если у тебя онлайн меньше 200-300 - не парься. по предварительным прикидкам стоит добавить по 1 потоку на 200 юзеров в characters/mangos и по потоку на 500 юзеров в realm.
rsa вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (21.01.2011)
Старый 20.01.2011, 21:40   #8
Ambal
MaNGOS Dev
 
Аватар для Ambal
 
Регистрация: 22.06.2010
Сообщений: 78
Сказал(а) спасибо: 24
Поблагодарили 71 раз(а) в 25 сообщениях
Ambal Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от rsa Посмотреть сообщение
если у тебя онлайн меньше 200-300 - не парься. по предварительным прикидкам стоит добавить по 1 потоку на 200 юзеров в characters/mangos и по потоку на 500 юзеров в realm.
Оно какбы не совсем так: для транзакций всегда используется только один поток (как и было раньше), он просто получает выделенное соединение с DBMS. Сейчас появилась возможность регулировать количество соединений для чтения из базы. Причем не смысла выставлять это значение выше количества рабочих потоков, которые создает ядро (при условии что вы пользуетесь mtmaps в любой реализации):

***DatabaseConnections = MapUpdate.Threads

В если вы mtmaps не пользуетесь - оставляйте настройки по-умолчанию.

Последний раз редактировалось Ambal; 21.01.2011 в 00:20.
Ambal вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (21.01.2011)
Старый 21.01.2011, 01:02   #9
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Всё, вот теперь понятно - огромное спасибо
KiriX вне форума   Ответить с цитированием
Старый 21.01.2011, 07:18   #10
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от Ambal Посмотреть сообщение
Оно какбы не совсем так: для транзакций всегда используется только один поток (как и было раньше), он просто получает выделенное соединение с DBMS.
видимо неверно сформулировал. не поток в смысле нить, а поток обработки сообщений, в данном случае выделенное соединение.
я вовсе не уверен что оно должно как-либо коррелировать с числом нитей mtmaps, даже при их полном отсутствии но большой нагрузке соединения с базой включение дополнительных соединений должно улучшить работу всей системы в целом. при тестировании у меня это было видно даже просто на глаз - LA упал на треть.
PS проблемы с петами, насколько я понимаю, совсем в другом месте сидят...
rsa вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Ambal (21.01.2011)
Старый 21.01.2011, 10:34   #11
Ambal
MaNGOS Dev
 
Аватар для Ambal
 
Регистрация: 22.06.2010
Сообщений: 78
Сказал(а) спасибо: 24
Поблагодарили 71 раз(а) в 25 сообщениях
Ambal Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от rsa Посмотреть сообщение
включение дополнительных соединений должно улучшить работу всей системы в целом. при тестировании у меня это было видно даже просто на глаз - LA упал на треть.
PS проблемы с петами, насколько я понимаю, совсем в другом месте сидят...
Выделенное соединение для транзакций просто позволило нам убрать конкуренцию между различными потоками за единственное соединение к базе, что имело место в прежней системе. Теперь отдельный рабочий поток выполняет транзакции на своей максимальной скорости. Как реализуем prepared statements - сервер получит еще больше производительности.

Undergarun сейчас выясняет, что то были за сообщения о пропаже петов. Если они действительно имели место, то скорее всего виноват код петов, гипотетически имеющий последовательный вызов функций:

Код:
pet->SaveToDB();
...
pet->LoadToDB();
В таком случае данные по (новому) пету могут не успеть сохраниться в базу, а мы уже пытаемся их читать. Раньше такое тоже было возможно, просто вероятность была совсем другая.

Последний раз редактировалось Ambal; 21.01.2011 в 12:36.
Ambal вне форума   Ответить с цитированием
Старый 21.01.2011, 10:36   #12
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

По irc пролучил жалобу на заклинивание логина с патчем после перезапуска mangosd без перезапуска relamd - воспроизвести не получилось. У кого-нибуть такие проблемы есть?
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума   Ответить с цитированием
Старый 21.01.2011, 10:42   #13
Ambal
MaNGOS Dev
 
Аватар для Ambal
 
Регистрация: 22.06.2010
Сообщений: 78
Сказал(а) спасибо: 24
Поблагодарили 71 раз(а) в 25 сообщениях
Ambal Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Vladimir Посмотреть сообщение
заклинивание логина с патчем после перезапуска mangosd без перезапуска relamd.
Больше похоже на фантастику. В каком месте "логина" мы получаем "заклинивание"? Когда мы должны уже загружать данные по игроку в память асинхронно? Пусть отрапортовавшийся пробует воспроизвести проблему и указать точный момент когда возникает затык.

Последний раз редактировалось Ambal; 21.01.2011 в 10:48.
Ambal вне форума   Ответить с цитированием
Старый 21.01.2011, 11:03   #14
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от Vladimir Посмотреть сообщение
По irc пролучил жалобу на заклинивание логина с патчем после перезапуска mangosd без перезапуска relamd - воспроизвести не получилось. У кого-нибуть такие проблемы есть?
realmd крайний раз перезапускал месяц назад, даже не помню какая там версия. сервер за это время обновлялся раз 10, в т.ч. на 045. проблем нет. пик нагрузки 150.

Добавлено через 4 минуты
Цитата:
Сообщение от Ambal Посмотреть сообщение
Код:
pet->SaveToDB();
...
pet->LoadToDB();
В таком слубчае данные по (новому) пету могут не успеть сохраниться в базу, а мы уже пытаемся их читать. Раньше такое тоже было возможно, просто вероятность была совсем другая.
вопрос именно об этом. проявляется при телепорте игрока с петом. вероятность около полпроцента, но если при этом мускуль нагрузить чем-то, то резко повышается. я пока вышел из положения грубым хаком.
rsa вне форума   Ответить с цитированием
Старый 21.01.2011, 11:05   #15
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Может, это и есть тот момент, когда надо переписать код петов, чтобы работали, как положено.
virusav вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Mayss (21.01.2011)
Старый 21.01.2011, 11:20   #16
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

по поводу петов - их надо делать асинхронными как и играков.
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума   Ответить с цитированием
Старый 21.01.2011, 11:21   #17
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от virusav Посмотреть сообщение
Может, это и есть тот момент, когда надо переписать код петов, чтобы работали, как положено.
ухх... вы даже не представляете сколько там работы я его переписал довольно здорово за 3 месяца, но там еще конца-края не видно...
rsa вне форума   Ответить с цитированием
Старый 21.01.2011, 12:24   #18
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Цитата:
Сообщение от Vladimir Посмотреть сообщение
по поводу петов - их надо делать асинхронными как и играков.
Если бы я мог, то давно уже поправил бы петов, а так приходится только описывать проблемы с ними, только пока особо никто петами не интересуется.
virusav вне форума   Ответить с цитированием
Старый 21.01.2011, 12:35   #19
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от virusav Посмотреть сообщение
Если бы я мог, то давно уже поправил бы петов, а так приходится только описывать проблемы с ними, только пока особо никто петами не интересуется.
(скромно пошаркивая ножкой) попробуйте мой бранч. возможно понравится?
rsa вне форума   Ответить с цитированием
Старый 21.01.2011, 12:51   #20
Ambal
MaNGOS Dev
 
Аватар для Ambal
 
Регистрация: 22.06.2010
Сообщений: 78
Сказал(а) спасибо: 24
Поблагодарили 71 раз(а) в 25 сообщениях
Ambal Скоро придёт к известности
По умолчанию

В [11054] обнаружился краш при старте сервера когда мы пытаемся асинхронно обновить количество игроков в базе в Player:eleteFromDB() во время удаления старых чаров.

Быстрофикс предложен в комментариях к коммиту, я вечером исправлю источник проблемы.

Последний раз редактировалось Ambal; 21.01.2011 в 19:09.
Ambal вне форума   Ответить с цитированием
Старый 22.01.2011, 00:39   #21
Ambal
MaNGOS Dev
 
Аватар для Ambal
 
Регистрация: 22.06.2010
Сообщений: 78
Сказал(а) спасибо: 24
Поблагодарили 71 раз(а) в 25 сообщениях
Ambal Скоро придёт к известности
По умолчанию

Баги с залипающим логином, невозможностью удалить чаров и часто пропадающими петами, а также краш при чистке аккаунтов, должны быть исправлены в [11061]+
Ambal вне форума   Ответить с цитированием
Старый 22.01.2011, 05:33   #22
Mayss
Ученый
 
Аватар для Mayss
 
Регистрация: 08.03.2010
Адрес: Россия, Сибирь, Новокузнецк
Сообщений: 137
Сказал(а) спасибо: 194
Поблагодарили 19 раз(а) в 13 сообщениях
Mayss На лучшее можно только надеяться...
Отправить сообщение для Mayss с помощью Skype™
По умолчанию

Можно узнать, эти нововведения коснутся только mangos? или к one и zero в будушем?.
Mayss вне форума   Ответить с цитированием
Старый 22.01.2011, 10:02   #23
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Я перенесу как все стабилизируется.
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Mayss (22.01.2011)
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Вкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[10902] Simplify code for triggering linked trap newsbot CMaNGOS Commits 0 21.12.2010 12:50
[10832] Spawn pool at aura 63471 dispel in water. newsbot CMaNGOS Commits 0 07.12.2010 04:51
[10759] Correctly reset mob orientation upon reaching spawn point. Should also improve visualisation newsbot CMaNGOS Commits 0 20.11.2010 19:50
[10657] Separate quest_template.QuestFlags from SpecialFlags newsbot CMaNGOS Commits 0 30.10.2010 02:17
[9659] Simplify resetTalent code. newsbot CMaNGOS Commits 0 02.04.2010 22:30


Текущее время: 06:45. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot