Перейти к публикации
  • Оптимизировать схему хранения


    Electr0
    • Сделано

    На данный момент база данных весит 169,21 MB (177 424 932), в ней 707044 предметов и ее можно и нужно оптимизировать.

    • Обрезать STEAM_1:1:49337409 Подобные идентификаторы до вида 1:49337409
    • Значения полей для параметров которые не используются текущим типом предмета в записи заменить NULL параметром по умолчанию (снижает размер базы данных)
    • Если пароль на дверь или тип предмета пустой то нужно ставить NULL. А так же если предмет не дверь нужно ставить NULL в поле пароля предмета.

    Отзывы пользователей

    Рекомендованные комментарии

    Прототип 1:

    • Обязательность данных в 17 полях базы данных предметов теперь отменена, по умолчанию NULL т.к. если данные есть то они есть.
    • Внедрена схема укороченных идентификаторов.

     

    Задачи:

    • Нужно подготовить 18 запросов на обновление базы данных под это обновление, т.к. сейчас там много мусора.
    Ссылка на комментарий
    Поделиться на других сайтах

    Прототип 2:

    • Запросы созданы и применены на тестовой базе данных, после применения вес базы стал равен 157,77 MB (165 434 076) что на 11 МБ меньше результатов до изменений.
    Ссылка на комментарий
    Поделиться на других сайтах

    Прототип 3:

    • Поле speed теперь хранит значение только если это лампа или двери, остальное NULL
    • Поле blocked теперь хранит значение только если это двери, остальное NULL
    • Поле m_nSkin теперь хранит значение только если это предметы подходящие для выставления скина, остальное NULL
    • Поле m_nSequence теперь хранит значение только если это персонажи, остальное NULL

     

    Размер базы после манипуляций сократился до 146,32 MB (153 424 280)

    Ссылка на комментарий
    Поделиться на других сайтах

    Имеется серьезная ошибка в коде из за которой происходит падение сервера.

    CRASH: Wed Feb 15 11:15:17 MSK 2017
    Start Line: ./srcds_linux -game left4dead2 -strictportbind -ip 195.62.53.114 -port 27100 +clientport 27005 +map c2m1_highway -maxplayers 12 +mp_gamemode survival +exec server.cfg -debug -nowatchdog
    [New LWP 7788]
    [New LWP 7806]
    [New LWP 7808]
    [New LWP 7816]
    [New LWP 7818]
    [New LWP 7822]
    [New LWP 8378]
    [New LWP 21917]
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
    Core was generated by `./srcds_linux -game left4dead2 -strictportbind -ip 195.62.53.114 -port 27100 +c'.
    Program terminated with signal SIGSEGV, Segmentation fault.
    #0  0xf74573b9 in vsnprintf () from /lib/i386-linux-gnu/libc.so.6
    [Current thread is 1 (Thread 0xf73d9700 (LWP 7788))]
    #0  0xf74573b9 in vsnprintf () from /lib/i386-linux-gnu/libc.so.6
    #1  0xe8f533cd in UTIL_Format(char*, unsigned int, char const*, ...) () from /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/bin/sourcemod.2.l4d2.so
    #2  0xe8defcf5 in ?? () from /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/bin/sourcemod.logic.so
    #3  0xe8b94911 in JITX86::InvokeFunction(BaseRuntime*, JitFunction*, int*) () from /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/bin/sourcepawn.jit.x86.so
    #4  0x1159f9e8 in ?? ()
    Backtrace stopped: previous frame inner to this frame (corrupt stack?)
    No symbol table info available.
    eax            0xf75a2940	-145086144
    ecx            0xffb754fc	-4762372
    edx            0x0	0
    ebx            0xf75a3000	-145084416
    esp            0xffb753c0	0xffb753c0
    ebp            0xffb753d0	0xffb753d0
    esi            0x134e98	1265304
    edi            0xffb75470	-4762512
    eip            0xf74573b9	0xf74573b9 <vsnprintf+105>
    eflags         0x210286	[ PF SF IF RF ID ]
    cs             0x23	35
    ss             0x2b	43
    ds             0x2b	43
    es             0x2b	43
    fs             0x0	0
    gs             0x63	99
    From        To          Syms Read   Shared Object Library
    0xf76a0590  0xf76d80f7  Yes (*)     /lib/i386-linux-gnu/libm.so.6
    0xf7697a30  0xf7698961  Yes (*)     /lib/i386-linux-gnu/libdl.so.2
    0xf760a914  0xf7650c78  Yes         bin/libstdc++.so.6
    0xf75ab870  0xf75b8ef1  Yes (*)     /lib/i386-linux-gnu/libpthread.so.0
    0xf7408750  0xf753404d  Yes (*)     /lib/i386-linux-gnu/libc.so.6
    0xf76fd860  0xf771661d  Yes (*)     /lib/ld-linux.so.2
    0xf73dce00  0xf73ec0fc  Yes         bin/libgcc_s.so.1
    0xf73aeea0  0xf73c3118  Yes (*)     bin/libtier0_srv.so
    0xf739d840  0xf73a105c  Yes (*)     /lib/i386-linux-gnu/librt.so.1
    0xf72b6e20  0xf72d9084  Yes (*)     bin/libvstdlib_srv.so
    0xf6e01820  0xf6e6fa78  Yes (*)     bin/dedicated_srv.so
    0xf6dbbea0  0xf6dd13d4  Yes (*)     bin/libsteam_api.so
    0xf6a41c80  0xf6c3d5f0  Yes (*)     /home/l4d2_alt_coop/serverfiles/bin/engine_srv.so
    0xf64f4bb0  0xf651dc70  Yes (*)     /home/l4d2_alt_coop/serverfiles/bin/soundemittersystem_srv.so
    0xf6387e00  0xf64442c4  Yes (*)     /home/l4d2_alt_coop/serverfiles/bin/materialsystem_srv.so
    0xf4e4b410  0xf4eee290  Yes (*)     /home/l4d2_alt_coop/serverfiles/bin/studiorender_srv.so
    0xf4c00840  0xf4d984d8  Yes (*)     /home/l4d2_alt_coop/serverfiles/bin/vphysics_srv.so
    0xf4b40a00  0xf4b91f10  Yes (*)     /home/l4d2_alt_coop/serverfiles/bin/datacache_srv.so
    0xf4a86150  0xf4af0998  Yes (*)     /home/l4d2_alt_coop/serverfiles/bin/vscript_srv.so
    0xf4a57340  0xf4a67464  Yes (*)     /home/l4d2_alt_coop/serverfiles/bin/shaderapiempty_srv.so
    0xeec77d00  0xef8f6780  Yes (*)     /home/l4d2_alt_coop/.steam/sdk32/steamclient.so
    0xee4f4af0  0xee56b9a8  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/bin/matchmaking_ds_srv.so
    0xed825ed0  0xee06822c  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/bin/server_srv.so
    0xed4bbc10  0xed4cb004  Yes (*)     /home/l4d2_alt_coop/serverfiles/bin/scenefilecache_srv.so
    0xf64d9130  0xf64dae0c  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/metamod/bin/server.so
    0xe90fe510  0xe91294f8  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/metamod/bin/metamod.2.l4d2.so
    0xf64c6a50  0xf64ccb62  Yes (*)     /lib/i386-linux-gnu/libnss_files.so.2
    0xf64beb50  0xf64c1933  Yes (*)     /lib/i386-linux-gnu/libnss_dns.so.2
    0xe90d8660  0xe90e4f04  Yes (*)     /lib/i386-linux-gnu/libresolv.so.2
    0xf76f5a10  0xf76f6128  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/bin/sourcemod_mm_i486.so
    0xe8f462b0  0xe8fad5f8  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/bin/sourcemod.2.l4d2.so
    0xe8d9fa40  0xe8dec904  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/bin/sourcemod.logic.so
    0xe8b824e0  0xe8ba2aa4  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/bin/sourcepawn.jit.x86.so
    0xe8f0eff0  0xe8f24568  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/l4dtoolz/l4dtoolz_mm_i486.so
    0xf64bb7a0  0xf64bbcd4  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/stripper/bin/stripper_mm_i486.so
    0xe835d770  0xe83731e0  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/stripper/bin/stripper.16.l4d2.so
    0xe833a280  0xe834ef14  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/stripper/bin/stripper.core.so
    0xe8072f40  0xe80940f8  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/accelerator.ext.so
    0xe80206f0  0xe80482d0  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/webternet.ext.so
    0xe756fac0  0xe76afc80  Yes         /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/curl.ext.so
    0xe74d0800  0xe74dd2e8  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/defibfix.ext.so
    0xe78127e0  0xe78151b8  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/l4d2_bugfixes.ext.so
    0xe74a8d50  0xe74c1698  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/l4d2_meleespawncontrol.ext.so
    0xe7262760  0xe728b434  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/sdkhooks.ext.2.l4d2.so
    0xe8f00ab0  0xe8f043a8  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/bintools.ext.so
    0xe720a780  0xe723dbf4  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/sdktools.ext.2.l4d2.so
    0xe70af4d0  0xe70e1750  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/regex.ext.so
    0xe780b970  0xe780db68  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/geoip.ext.so
    0xe6fa7750  0xe6fb8b38  Yes         /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/geoipcity.ext.so
    0xe5e50930  0xe5e5a424  Yes         /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/dhooks.ext.so
    0xe5e45450  0xe5e4bd58  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/topmenus.ext.so
    0xe5e3c910  0xe5e41274  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/clientprefs.ext.so
    0xe5b3c1b0  0xe5c5fba4  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/dbi.sqlite.ext.so
    0xe4e61e00  0xe4eecaf0  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/dbi.mysql.ext.so
    0xe5e1a670  0xe5e2a17d  Yes (*)     /usr/lib32/libz.so.1
    0xdc976740  0xdc9f984c  Yes (*)     bin/steamclient.so
    0xdb8469c0  0xdc48ba44  Yes (*)     bin/steamclient_alliance.so
    0xde49d6c0  0xde5126b0  Yes (*)     bin/crashhandler.so
    (*): Shared library is missing debugging information.
    Dump of assembler code for function vsnprintf:
       0xf7457350 <+0>:	push   %ebp
       0xf7457351 <+1>:	push   %edi
       0xf7457352 <+2>:	push   %esi
       0xf7457353 <+3>:	push   %ebx
       0xf7457354 <+4>:	call   0xf7510995
       0xf7457359 <+9>:	add    $0x14bca7,%ebx
       0xf745735f <+15>:	sub    $0xfc,%esp
       0xf7457365 <+21>:	mov    0x114(%esp),%edi
       0xf745736c <+28>:	mov    0x110(%esp),%esi
       0xf7457373 <+35>:	movl   $0x0,0x58(%esp)
       0xf745737b <+43>:	test   %edi,%edi
       0xf745737d <+45>:	je     0xf7457400 <vsnprintf+176>
       0xf7457383 <+51>:	lea    -0x1(%edi),%eax
       0xf7457386 <+54>:	lea    0xb0(%esp),%edi
       0xf745738d <+61>:	mov    %eax,0xc(%esp)
       0xf7457391 <+65>:	sub    $0xc,%esp
       0xf7457394 <+68>:	push   $0x0
       0xf7457396 <+70>:	push   $0x0
       0xf7457398 <+72>:	push   $0xffffffff
       0xf745739a <+74>:	push   $0x8000
       0xf745739f <+79>:	lea    0x2c(%esp),%ebp
       0xf74573a3 <+83>:	push   %ebp
       0xf74573a4 <+84>:	call   0xf745c610
       0xf74573a9 <+89>:	lea    -0x6c0(%ebx),%eax
       0xf74573af <+95>:	mov    %eax,0xc4(%esp)
       0xf74573b6 <+102>:	add    $0x20,%esp
    => 0xf74573b9 <+105>:	movb   $0x0,(%esi)
       0xf74573bc <+108>:	push   %esi
       0xf74573bd <+109>:	pushl  0x10(%esp)
       0xf74573c1 <+113>:	push   %esi
       0xf74573c2 <+114>:	push   %ebp
       0xf74573c3 <+115>:	call   0xf745d790
       0xf74573c8 <+120>:	add    $0xc,%esp
       0xf74573cb <+123>:	pushl  0x120(%esp)
       0xf74573d2 <+130>:	pushl  0x120(%esp)
       0xf74573d9 <+137>:	push   %ebp
       0xf74573da <+138>:	call   0xf74330c0 <vfprintf>
       0xf74573df <+143>:	add    $0x10,%esp
       0xf74573e2 <+146>:	cmp    %edi,0x2c(%esp)
       0xf74573e6 <+150>:	je     0xf74573ef <vsnprintf+159>
       0xf74573e8 <+152>:	mov    0x24(%esp),%edx
       0xf74573ec <+156>:	movb   $0x0,(%edx)
       0xf74573ef <+159>:	add    $0xfc,%esp
       0xf74573f5 <+165>:	pop    %ebx
       0xf74573f6 <+166>:	pop    %esi
       0xf74573f7 <+167>:	pop    %edi
       0xf74573f8 <+168>:	pop    %ebp
       0xf74573f9 <+169>:	ret    
       0xf74573fa <+170>:	lea    0x0(%esi),%esi
       0xf7457400 <+176>:	lea    0xb0(%esp),%edi
       0xf7457407 <+183>:	movl   $0x3f,0xc(%esp)
       0xf745740f <+191>:	mov    %edi,%esi
       0xf7457411 <+193>:	jmp    0xf7457391 <vsnprintf+65>
    End of assembler dump.
    Stack level 0, frame at 0xffb754d0:
     eip = 0xf74573b9 in vsnprintf; saved eip = 0xe8f533cd
     called by frame at 0xffb754dc
     Arglist at 0xffb753cc, args: 
     Locals at 0xffb753cc, Previous frame's sp is 0xffb754d0
     Saved registers:
      ebx at 0xffb754bc, ebp at 0xffb754c8, esi at 0xffb754c0, edi at 0xffb754c4, eip at 0xffb754cc
    End of Source crash report

    Пока что не смог определить в чем дело, поэтому придется откатить все последние ченжсеты и начать с начала.

    Ссылка на комментарий
    Поделиться на других сайтах

    В связи с тем что нужно время на понимание в чем дело, изменения из ченжсетов по теме

    пока что не будут применяться до окончательной уверенности в стабильности изменений касательно оптимизации сохранения и содержимого базы данных в целом.

    Ссылка на комментарий
    Поделиться на других сайтах



    Присоединяйтесь к обсуждению

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

    Гость
    Добавить комментарий...

    ×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

      Разрешено не более 75 эмодзи.

    ×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

    ×   Ваш предыдущий контент был восстановлен.   Очистить редактор

    ×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.


  • Обозначения статусов

    В обработке = Мы работаем над вашим отзывом.

    Будет сделано = Ваша идея добавлена к плану будущих изменений.

    Тестируется = Изменения внесены, но требуют тестирования.

    Сделано = Ваша идея реализована!

    Отклонено = Отзыв некорректный, бред, либо уже реализовано. Если у вас есть дополнительная информация напишите комментарий и мы снова откроем этот вопрос.

×
×
  • Создать...