Witaj, może chciałbyś się zarejestrować? Zarejestruj się  


Nowy pomysł na optymalizację serwera Survival

#44

(13-04-2020, 00:44 AM)Rodriqez napisał(a): Początkowo unikałem udzielania się w tym wątku. Z tego względu, że początkowe założenia propozycji nie raziły mnie jakoś mocno a inicjatywa poprawy optymalizacji zawsze na plus. Jednakże to co teraz się tu dzieje powoduje, że się łapie za głowę.
Kończąc wstęp i przechodząc do sedna mam trzy główne zastrzeżenia co do ostatnio poruszonej wątku kwestii, którą jest aspekt ekonomiczny i związane z nim obostrzenia co do używania komend itp.
  1. Umożliwienie korzystania z elementów ekonomii (tj. /ak, /pay, /mineshop open, chestShops itp.) jedynie na jednym z „podserwerów” wydaje mi się całkowicie absurdalnym pomysłem. Zwiększy to znacząco zainteresowanie jedynie jednym kawałkiem świata co odbije się na jego wydajności. Każdy przecież będzie chciał mieszkać na tej części świata na której możliwe jest tworzenie sklepów i korzystanie z komend ww.

  2. Poruszona przez Redeq kwestia intuicyjności tego rozwiązania oraz moim zdaniem bardzo pokręcona logika stojąca za argumentacją MiroTcz w odpowiedzi na ten temat:

    MiroTczRedeqMnie również zabolałoby usunięcie podanej wyżej komendy. Ponadto taka zmiana wiązałaby się z serią pytań o rozwiązania zastosowane na serwerze od nowych graczy, co znacznie utrudniłoby Administracji na odpowiadanie na mniej skomplikowane pytania oraz zgłoszenia graczy o nieprzestrzeganiu regulaminu.Nowi gracze nie pytaliby o nowy sposób działania wspomnianych rzeczy, bo to dla nich nie byłyby nowe rzeczy w tym rozumieniu - w końcu są nowymi graczami i nie mają starych przyzwyczajeń, a do graczy starszych już powoli docierają informacje o nadchodzących zmianach m.in. przez ten wątek.Żadna z komend nie przestanie działać, więc nawet jeśli ktoś z przyzwyczajenia wpisze komendę od aukcji na świecie bez aukcji to komenda zadziała - dostanie informację potrzebną do tego, aby mógł otworzyć aukcje. Nie ma możliwości żeby się w czymś pogubić.
  3. Po pierwsze chciałbym zwrócić uwagę, iż pomimo że MineWorld.pl jest naprawdę dobrym oraz fajnie prowadzonym serwerem to nie jest to jedyny taki serwer minecraft. Zarówno jako serwer oferujący tryb survival jak i wprowadzający ekonomie do rozgrywki. Dlatego intuicyjność tego rozwiązania a raczej jego brak wprowadzi naprawdę spore zamieszanie co odbije się sporą czkawką na administracji. Zarówno wśród nowych graczy jak i starszych pojawiać się będą pytania: „Jak przelać pieniądze?”, „Czemu nie mogę utworzyć sklepu?”, „Czemu komenda x nie działa?”. Nie oszukujmy się, ale przecież:
    • Nie każdy czyta forum.
    • Nowi gracze mogli grać wcześniej na innych serwerach z ekonomią, gdzie nie było takich ograniczeń.
    • Co jak co, ale informacje zarówno w grze jak i na forum nie są najlepiej uporządkowanie i sam mam nie kiedy problem z odnalezieniem niektórych informacji, pomimo że dość często odwiedzam forum.
  4. Ponadto jako przykład mogę podać samego siebie, ponieważ pomimo dość aktywnego przeglądania aktualności na serwerze i naprawdę dogłębnej znajomości komend dostępnych na serwerze (z punktu patrzenia przeciętnego gracza) nie wiem jak teraz zrobić np. węglowy kilof, bo zarówno stary przepis nie działa jak i na warp bossy nie ma żywej duszy nie mówiąc już o kowalu.

  5. Kwestie związane z duplikowaniem się pieniędzy/przedmiotów wydają mi się być problemem, który można sprowadzić do zapytań o wypłatę/wpłatę z konta kasy i wymyślne sposoby przedstawione w wątku wydają mi się być nieco przekombinowane. Nie wiem co prawda jak to jest rozwiązanie aktualnie, ale czy nie prościej było by gdyby wszystkie serwery komendami odwoływały się do jednej bazy danych (w informatycznym tego słowa znaczeniu). Przecież wystarczyło by potworzyć proste transakcje, które to dla bd są tak podstawowym i dobrze przeanalizowanym rozwiązaniem jak wynalezienie koła dla ludzkości. Przecież gdyby bazy nie mogły by przetwarzać zapytań w transakcjach to bankowość by nie istniała w takiej formie jaką teraz mamy.


Mam wrażenie, że nie przeczytałeś ze zrozumieniem moich ostatnich propozycji co do komend /pay oraz /ak i /mineshop open (albo ich w ogóle nie przeczytałeś i odpowiedziałeś głównie tylko na mój pierwszy post z wczoraj).
Komendy te nie przestałyby działać, więc po co ktoś miałby pisać, że nie działają albo są nieintuicyjne? Ktoś kto wpisze jedną z tych komend otrzyma zamierzony rezultat, gdzie tu jest problem? (Tylko przy chestshopach sprawa jest jeszcze nieuregulowana, ale i tam da się załatwić wszystko, aby gracz wiedział, dlatego postawienie sklepu nie daje efektu.)

Serwery będą odwoływały się do jednej bazy danych, ale to nie znaczy, że wykonywanie transakcji będzie bezpieczne.
Wystarczy, że w krótkim odstępie czasu z dwóch serwerów wyjdzie polecenie zabrania określonej kwoty graczowi. Oba serwery będą widziały, że gracz posiada odpowiednią kwotę, ale w rzeczywistości już w rezultacie pierwszego polecenia okaże się, że to nieprawda. Drugi serwer się o tym nie dowie i uzna, że proces przebiegł prawidłowo. 

To tylko jedna z przykładowych sytuacji, a takich może być wiele.

Dlaczego?

- Serwery nie korzystają z jednego połączenia do bazy danych, a każdy ma swoje.
- Każdy serwer przechowuje w pamięci pluginu swoją kopię informacji o graczu.
- Zmiany w danych gracza (w tym o pieniądzach) nie trafiają natychmiast do bazy danych. Gdyby było inaczej serwer by padał albo działał pod jeszcze większym obciążeniem niż obecnie, wystarczyłoby zaspamić kliknięciami tabliczkę od jednego ze sklepów graczy. I co teraz, po każdym kliknięciu serwer miałby wysyłać zapytanie do bazy danych (która też jest osobnym serwerem i ma wystarczająco długi czas odpowiedzi, by zlagować serwer w głównym wątku nawet przy normalnym użytkowaniu)?. Dlatego właśnie zmiany w danych graczy są zapisywane co 30 sekund. Nie wiem czy wiesz, ale wiele pluginów właśnie tak działa. Plugin od uprawnień też korzysta z pamięci podręcznej, nie wykonuje zapytań do bazy danych przy każdej potrzebie sprawdzenia, czy gracz jest do czegoś uprawniony.
- Serwer sprawdzając dane gracza (w tym m.in. pieniądze) nie wysyła zapytania do bazy, a sprawdza wartości przechowywane w pamięci pluginu (które trafiają do bazy co 30 sekund jeśli coś uległo zmianie o czym już wspomniałem). Tak jest optymalnie. Pobieranie danych z bazy następuje tylko podczas włączania serwera.

Umożliwienie pełnego działania aukcji, sklepu i chestshopów na każdym z serwerów wymagałoby ogromnego skomplikowania operacji sprawdzania i modyfikacji danych graczy. Blokowanie dostępu do danych -> wykonywanie zmian -> odblokowywanie dostępu do danych. To wiązałoby się z dużymi opóźnieniami w działaniu serwerów składających się na Survival.

Moje propozycje są szybsze w realizacji, a te ostatnie robią już naprawdę dużo, by gracze w jak najmniejszym stopniu odczuli zmiany. Tak właściwie to tylko teraz wydaje się, że nadal powstanie większa niedogodność, a w rzeczywistości gracze szybko przyzwyczailiby się do zmian i przestaliby zwracać na nie uwagę.
[Obrazek: spawn4edy1.gif]
Odpowiedz


Wiadomości w tym wątku
RE: Nowy pomysł na optymalizację serwera Survival - przez MiroTcz - 13-04-2020, 08:26 AM



Użytkownicy przeglądający ten wątek:
1 gości