Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V  < 1 2  
Reply to this topicStart new topic
> Gra internetowa - hierarchia klas
Ace
post 12.02.2007, 13:22:40
Post #21





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 9.08.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Przeczytaj dokladnie to co napisalem.

Baza to podstawa, a twoja watpliwosc to cache? heh
Go to the top of the page
+Quote Post
KOMPsognat
post 13.02.2007, 19:26:35
Post #22





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 23.10.2006

Ostrzeżenie: (0%)
-----


Racja. Nie dopatrzyłem tego cache :]
Nie muszę mówić, że zmęzenie, pośpiech itp... ? biggrin.gif

Myślę, że temat jest już do zamknięcia (nie wiem jak inni) smile.gif

Ten post edytował KOMPsognat 15.02.2007, 14:28:57
Go to the top of the page
+Quote Post
KG-
post 28.02.2007, 14:23:48
Post #23





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 30.05.2006

Ostrzeżenie: (0%)
-----


Cytat(Ace @ 12.02.2007, 13:22:40 ) *
Przeczytaj dokladnie to co napisalem.

Baza to podstawa, a twoja watpliwosc to cache? heh


Pozwolisz że zapytam - cache zapytań masz na czym? Na plikach? smile.gif No chyba że na memcache, co i tak nie zmienia faktu że memcache także ma ograniczone możliwości (choć przyznam że są one ogromne).

Druga kwestia - wyobraź sobie że coś zmieniasz, np statystyki przedmiotu (co w dorosłej produkcji robi się bardzo rzadko - gracze nie cierpią gdy zmienia się coś w trakcie rozgrywki i przy pierwszej okazji cię za to zagryzą, zwłaszcza jeśli płacą za grę) i zmieniasz to na 500 serwerach. Teraz musisz połączyć się do 500 serwerów, wykonać zapytania a potem jeszcze dodatkowo uruchomić skrypt który wyczyści cache aby zmiany były widoczne. Musisz przy tym mieć ustawione w bazie danych by można się było łączyć z zewnątrz (mało bezpieczne rozwiązanie).
Zapisując dane w plikach odpalasz skrypt który wykonuje svn update po kolei na każdym serwerze a php acceleratory same zauważają że plik się zmienił. Oba rozwiązania są dobre ale to drugie wydaje mi się wygodniejsze na dłuższą metę (choć jest to kwestia gustu i przyzwyczajeń).
Pozdrawiam smile.gif

Ten post edytował KG- 28.02.2007, 14:27:31
Go to the top of the page
+Quote Post
dr_bonzo
post 28.02.2007, 14:57:51
Post #24





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Cytat
Teraz musisz połączyć się do 500 serwerów, wykonać zapytania a potem jeszcze dodatkowo uruchomić skrypt który wyczyści cache aby zmiany były widoczne. Musisz przy tym mieć ustawione w bazie danych by można się było łączyć z zewnątrz (mało bezpieczne rozwiązanie).
Zapisując dane w plikach odpalasz skrypt który wykonuje svn update po kolei na każdym serwerze a php acceleratory same zauważają że plik się zmienił.


Capistrano (http://manuals.rubyonrails.com/read/book/17 ): umozliwia ci wykonanie tych zamych (lub innych) zadan (skrypty schellowe) na wielu maszynach, obsluga SVN, laczy sie przez ssh. Trzeba dopisac wlasne taski (zadania -- czyli te skrypty updatujace) i update robisz jednym poleceniem smile.gif


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Turgon
post 28.02.2007, 15:17:26
Post #25





Grupa: Zarejestrowani
Postów: 800
Pomógł: 0
Dołączył: 26.11.2005
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


Szczerze powiem jak update się robi, to tak czy siak jest to rzadkie... W przypadku zwłaszcza komercyjnych systemów smile.gif Dlategóż, można też przyjąć strategię jak plemiona.pl . Nowy serwer = nowa wersja gierki smile.gif

Ten post edytował Turgon 28.02.2007, 15:18:25


--------------------
Jah Music Is On My Mind !
Go to the top of the page
+Quote Post
KOMPsognat
post 28.02.2007, 20:39:46
Post #26





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 23.10.2006

Ostrzeżenie: (0%)
-----


No właśnie ten cennik będzie dość często modyfikowany przy produkcji nowych gier. Mimo wszystko myślę jednak, że oparcie tego na plikach w formacie jaki pokazałem wcześniej będzie najlepszym rozwiązaniem.

Ten post edytował KOMPsognat 28.02.2007, 20:39:58
Go to the top of the page
+Quote Post
Ace
post 1.03.2007, 13:37:40
Post #27





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 9.08.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Hehe, a powiedz mi jaka jest roznica miedyz wykonaniem na 500 serwerach svn up... a uzyciem jakiegos skryptu bashowego ktory sciagnie tobie plik PHP z instalacja nowej wersji, ktory sam bedzie wiedzial jak zmigorwac caly system do nowej wersji. Czasem roznice w plikach, a czasem w bazie? A tak plik z update sciagasz sobie, z konsoli jest uruchamiany powiedzmy w nocy. Sciaga skrypt SQL, wykonuje go w transakcji + zmienia pliki kodu (Tu mozna uzyc np: svn up) i po ptakach...

Trzymanie wszystkiego w plikach textowych - uwierz mi, ze to sie nie uda. Po to wymyslil ktos baze danych, zeby tam skladowac potrzebne inforamcje, a nie rozrzucac je po katalogach na dysku w formacie plikow textowych... Cache powiedzmy moze sie odswiezac co jakis czas... np: Po takim update moze automatycznie cache byc kasowane.

@KG-:
Nie udostepniasz bazy na zewnatrz...

Logujesz sie po ssh, wykonujesz komende i tyle. Zawsze mozesz przemycic do kodu gry jakas akcje odpowiedzialna za update systemu. Cron co dzien w nocy laczy sie z twoim serwerem, sciaga definicjie xml'a, sprawdza czy jest nowsza wersja - JEST. Sciaga paczke, unzipuje, wykonuje komendy sql, wgrywa nowe pliki, uruchamia pliki php odpowiedzialne np: za skonwertowanie starej bazy do nowego formatu, przeprowadza testy jednostkowe, i jesli jest wszystko ok, to konczy proces.

Masz 500 serwerow - bo o takiej skali zaczoles mowic smile.gif to ulatwi proces jeszcze bardziej niz zalogowac sie 500 razy i zrobic svn up...

Ten post edytował Ace 1.03.2007, 13:44:05
Go to the top of the page
+Quote Post
KG-
post 2.03.2007, 17:40:55
Post #28





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 30.05.2006

Ostrzeżenie: (0%)
-----


Cytat
Trzymanie wszystkiego w plikach textowych - uwierz mi, ze to sie nie uda.

Uwierz mi że nie tylko się uda ale już się udało, działa bardzo ładnie przy 1000+ użytkowników jednocześnie smile.gif

Cytat
Masz 500 serwerow - bo o takiej skali zaczoles mowic smilingsmiley.gif to ulatwi proces jeszcze bardziej niz zalogowac sie 500 razy i zrobic svn up...

Ja nigdzie nie pisałem żeby się logować, można odpalać svn update zdalnie na wszystkich serwerach jednocześnie. Jakbym przy każdym update-cie się musiał logować na ssh po kolei na wszystkie serwery, to bym chyba jakiejś choroby nerwowej dostał winksmiley.jpg

Jak pisałem wyżej - kwestia przyzwyczajeń, ja wychodzę z założenia żeby oszczędzać bazę i memcache bo one mają ważniejsze rzeczy do roboty niż wczytywać dane które się zmieniają raz na 2 miesiące albo rzadziej.
Go to the top of the page
+Quote Post
Ace
post 5.03.2007, 09:46:07
Post #29





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 9.08.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Czyli robiłeś testy i mówisz, że baza nie wytrzyma 1000+ użytkowników?
Go to the top of the page
+Quote Post
KG-
post 7.03.2007, 14:33:19
Post #30





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 30.05.2006

Ostrzeżenie: (0%)
-----


Wytrzyma czy nie wytrzyma to zbyt generalne pojęcie winksmiley.jpg
Zależy która baza, jaki engine, na jakim sprzęcie, co musi zrobić w pojedynczym żądaniu itd.
Na mysql 4.1 bez cache-owania było już momentami ciężko przy ok 1400 użytkownikach jednocześnie (klikających w miarę często, w końcu to gra) na dedyku z 3gb ramu. Obciążenie bazy danych potrafiło osiągnąć 50-60%, po zastosowaniu memcache spadło do ok 15-25%. Mimo wszystko wolę zapisywać takie rzeczy w plikach, łatwiej mi edytować plik pod edytorem niż logować się do bazy i wykonywać zapytania + czyścić cache.

A jak ktoś nie używa memcache i robi cache na plikach, to wrzuca do bazy dane, które i tak zostaną zapisane w pliku i z pliku będą odczytywane. Kolejna kwestia - wolisz zapis w bazie ze względu na wygodę zmian - jak pisałem wcześniej w dorosłej produkcji nie dasz rady zmieniać czegoś co chwilę, gracze naprawdę nie lubią jak zmienia się coś w trakcie gry winksmiley.jpg

Ten post edytował KG- 7.03.2007, 15:17:55
Go to the top of the page
+Quote Post
Vogel
post 7.03.2007, 15:52:21
Post #31





Grupa: Zarejestrowani
Postów: 402
Pomógł: 0
Dołączył: 20.01.2003

Ostrzeżenie: (0%)
-----


MySQL lepiej sobie odpuścić do takich projektów. PostgreSQL albo MSSQL. Od kiedy przerzuciłem się na postgresa to mysqla wspominam tylklow koszmarach winksmiley.jpg zupelnie inny komfort pracy


--------------------
Go to the top of the page
+Quote Post
mike
post 7.03.2007, 18:00:18
Post #32





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


~Vogel przerzuć się na wspomnianego przez siebie MS SQL'a. Dopiero będziesz miał koszmary. Ta baza to porażka.

W tej sytuacji PostgreSQL wydaje się być najlepszym rozwiązaniem.
Go to the top of the page
+Quote Post

2 Stron V  < 1 2
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 03:49