Страница 1 от 1
Почистване на стари банове.
Публикувано: 06.06.2012, 18:29
от 2GOOD
Здравейте,
След кратка справка стана ясно, че имаме над 13500 бана в базата данни, решихме да поизчистим малко старите банове. И така всички, които са били баннати преди началото на 2011-а година, вече нямат бан. Премахнати са също и банове за реклама и с причина друго, по този начин намалихме общия брой на бановете на 10115, от които около 1/3 активни - 3484 !!!
На печелившите честито

Re: Почистване на стари банове.
Публикувано: 06.06.2012, 22:36
от aXNJI
Ам, честно казано не знам точно как работи системата за бановете, но общо взето трябва да е база данни.
Та предложението ми е следното, няма ли да е по-бързодействащо ако има едба отделна... база /честно казано не съм бачкал с тях вече 2 години и съм забравил терминологията/ в която да стоят изтеклите банове. Така системата ще действа по-бързо като не преглежда всички 10к банове да види дали играча има бан а ще гледа само активните 3.5к. И след изтичане на дадения бан тя автоматично да премества бана отделната база за изтекли банове. Та дори да не ги премества автоматично, един пъм месечно, или на 2 месеца да се мятат изтеклите банове в другата база.
Re: Почистване на стари банове.
Публикувано: 06.06.2012, 23:31
от 2GOOD
aXNJI написа:Ам, честно казано не знам точно как работи системата за бановете, но общо взето трябва да е база данни.
Та предложението ми е следното, няма ли да е по-бързодействащо ако има едба отделна... база /честно казано не съм бачкал с тях вече 2 години и съм забравил терминологията/ в която да стоят изтеклите банове. Така системата ще действа по-бързо като не преглежда всички 10к банове да види дали играча има бан а ще гледа само активните 3.5к. И след изтичане на дадения бан тя автоматично да премества бана отделната база за изтекли банове. Та дори да не ги премества автоматично, един пъм месечно, или на 2 месеца да се мятат изтеклите банове в другата база.
Ами те са в една таблица... като има поле активен ли е бана - 1/0 така, че заявката се прави директно по този критерий 1 - активен бан. Вече ако играча няма активен бан се прави втора заявка, който проверява и извежда информация колко предишни бана има играча - така админ знае, че даден играч е потенциален нарушител - няма как да се избегне това.
Re: Почистване на стари банове.
Публикувано: 06.06.2012, 23:59
от aXNJI
2GOOD написа:
Ами те са в една таблица... като има поле активен ли е бана - 1/0 така, че заявката се прави директно по този критерий 1 - активен бан. Вече ако играча няма активен бан се прави втора заявка, който проверява и извежда информация колко предишни бана има играча - така админ знае, че даден играч е потенциален нарушител - няма как да се избегне това.
Да със заявките и флаговете съм наясно, идеята ми е че макар 13500 бана да ни се струват много, ако ги обърнем в проверки са ти не повече от 40-50 милисекунди, зависимост от машината. Моята идея беше, че ако таблицата с активните банове е отделна, ще може да се направи по-бързо проверката и играча да продължи с connect-а към сървъра пък след това да се направи втората проверка дали той има изтекъл бан.
Или другия вариант е да се сравнява бана и като се намери съвпадение да се пусне проверка дали флага за активност е тру, ако е да се киква, ако не е брояча за банванията който ни изписва кой колко пъти е бил бан да се увеличава.
Не знам просто нахвърлям идей за оптимизация, надявам се нямаш против, защото съм виждал разликите, един съученик преди години бачкаше над задачата /като тя излезе/ колко е сбора на всички прости числа от 1 до 10 милиарда. И първата версия на един го обработваше за 8 часа, а друг я направи да обработва за 22ms, което е една значителна разлика

Re: Почистване на стари банове.
Публикувано: 07.06.2012, 01:10
от 2GOOD
Да много е интересно как човечкия мозък решава един и същи проблем по различен начин, стремейки се винаги да опрости нещатата, последно анхито ме изненада положително с едно негово решение за плъгин за нашата верига, обещал съм да си го сложа на тениска... както и да на темата. Винаги съм (сме) отворени за нови неща това което ти предлагаш не е лошо, но трябва да се реши кой да мести бан от едната таблица в другата и кога да го прави това
Относно бързината, тази база е качена на хостинг компания, тамошния сървър се справя доста добре със заявките.
Re: Почистване на стари банове.
Публикувано: 07.06.2012, 01:24
от aXNJI
Ами.... моето предложение е автоматично преместване. Но за mysql.... мисля че не може да се следи за изтичане на бан, той се проверява чрез заявка от сървъра нали? Така че с таймер не мисля че ще стане.
Другия вариант е при рестарт на сървъра. Плясва се една проверка, всички с флаг фолс за активни банове се мятат в другата таблица. Рестарти пак се правят по-често пък и с атаките към веригата, даже ще ни правят услуга като почистват таблицата от изтеклите банове

Re: Почистване на стари банове.
Публикувано: 07.06.2012, 01:28
от 2GOOD
То може да се направи всяка минута да го преви през cron не е там въпроса

Re: Почистване на стари банове.
Публикувано: 07.06.2012, 01:34
от aXNJI
Е... да /аз си мислех като кон с капаци само за mysql

/, но това е само бавене. Банове не се трупат толкова бързо.
Като гледам за днес бановете, 30 бана от които 6 перм. по 24 временни бана на ден, грубо казано 30+-
Така че според мен една проверка или на рестарт на сървъра или да е 1 път месечно е напълно достатъчно.
Re: Почистване на стари банове.
Публикувано: 07.06.2012, 02:05
от 2GOOD
неее има банове за 1 час и те са много
Re: Почистване на стари банове.
Публикувано: 07.06.2012, 09:18
от minute
Могат да се разделят, но не виждам смисъл

. С това само ще си усложним живота

, за сметка на процесорно време на хостинг компанията за която, честно казано не ми пука, те са си прибрали кинтите следователно ще им мъчим машините

. Проблем според мен, ще е, че няма да може да се прави справката за изтекли банове от сървърите и ще отпадне това предупреждение, че еди кой си има 6 бана примерно, или поне няма да стане без пренаписване на плъгинга, но дори и тогава ще трябва да се инициализира още една връзка към базата за да се направи проверка по втория критерии за изтекли банове и се повишава степента на грешка. Ако се откажем от предупреждението в сървърите мисля, че другото може да се направи, но ще трябва да се пренапише и WEB приложението което е във форума (не е толкова трудно, но иска време) и ако решим да ъпгрейднем системата до следваща версия ще почнат проблемите

.
ЕДИТ: Ако искате може да се напише едно скриптче което веднъж месечно да трие бановете за един месец от преди една година, така ще имаме статистика за банове от последната година и ще са горе долу константна цифра, смисъл няма да нарастват кой знае колко бързо.
Re: Почистване на стари банове.
Публикувано: 07.06.2012, 10:08
от aXNJI
Както казах не съм наясно как ТОЧНО се правят проверките, но идеята ми беше /ако се правят докато се connect-ва играча/ относно бързината с която той се свързва към сървъра. И без това се правят 2 проверки, само че първата която е за активни банове да се направи по време на свързването и ако няма актовен бан да си влезе в сървъра пък дали старите банове ще се изпишат 5-10 сек след това не виждам какво ще пречи.
Или както казах ако не е в 2 таблици, просто при проверката на IP/Steam ако срещне бан тогава да се провери флага за активност дали е 1 или 0. Ако е 1 ясно, ако е 0 да увеличи брояча за предишните банове. Просто да се направи една заявка по-малко
