Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> sekcja krytyczna, jak rozwiązujecie ten problem w www?
abusiek
post
Post #1





Grupa: Zarejestrowani
Postów: 89
Pomógł: 5
Dołączył: 23.10.2006
Skąd: Gda?sk

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


Witam!

Mam problem z zaimplementowaniem dostepu do sekcji krytycznej i brak dobrego pomyslu jak go rozwiac. Rzecz polega na dwuetapowym dobieraniu fotografii do kategorii (tzn najpierw wybieramy fotografie, strona sie przeladowuje, wybieramy kategorie).

Fotografie przeglada wiele osob jednoczesnie i chodzi o to zeby dwie osoby nie mogly przejsc jednoczesnie do drugiego etapu z ta sama fotografia.
Fotografie sa pobierane z bazy, maja pole status i mozna je ustawiac po pierwszym etapie, ale to nie rozwiazuje problemu.

Z kolei typowe algorytmy rozwiazywania problemu sekcji krytycznej zakladaja dostep do zmiennych wspoldzielonych przez procesy w celu roztrzygniecie ktory wchodzi do sekcji, a takie zmienne sa nie do osiegniecia w www (plik? ale tu tez trzeba kontrolowac dostep...)

Moze macie jakis pomysl jak to rozwiazac?
Go to the top of the page
+Quote Post
rybik
post
Post #2





Grupa: Zarejestrowani
Postów: 99
Pomógł: 15
Dołączył: 29.07.2006

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


nie bardzo rozumiem, czemu nie wystarczy status w bazie, jeżeli drugi user wybierze zablokowana fotkę to przekierujesz go spowrotem do wyboru fotek aktualizując listę dostępnych

jeżeli opcja z baza danych z jakichs przyczyn (nie jestem fachowcem) odpada to pozostaje blokada pliku, żeby uniknąć ryzyka wynikającego z czasu między fopen i flock można użyć pliku/katalogu semafora. Wybór pliku sprawdza czy jest semafor i próbuje go blokować, jak sie uda to zdjecie sprzedane (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) jak nie może blokować lub zablokowany to wraca do zdjęć

takie akademickie rozwiązanie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) nie krzyczcie jak bredzę
Go to the top of the page
+Quote Post
abusiek
post
Post #3





Grupa: Zarejestrowani
Postów: 89
Pomógł: 5
Dołączył: 23.10.2006
Skąd: Gda?sk

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


Poniekad sam sobie odpowiedziales

Cytat
uniknąć ryzyka wynikającego z czasu między fopen i flock


Tak samo moze byc z baza i updejtem/odczywaniem statusu.

Ale tak sobie mysle ze mieszanka statusu i flock() powinna byc wystarczajaco silna (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Podsumowujac dzieki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
rybik
post
Post #4





Grupa: Zarejestrowani
Postów: 99
Pomógł: 15
Dołączył: 29.07.2006

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


gdzieś czytałem, że napewniejsze jest stosowanie katalogów jako semaforów , operacje atomowe itp, ważne jest też sprawdzenie systemu plików, sporo ciekawostek znajdziesz na http://pl2.php.net/flock
Go to the top of the page
+Quote Post
SirZooro
post
Post #5





Grupa: Zarejestrowani
Postów: 243
Pomógł: 32
Dołączył: 14.06.2007

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


Jeżeli korzystasz z bazy danych to użyj składni SELECT ... FOR UPDATE. Tutaj jest opis tej składni dla MySQL: http://dev.mysql.com/doc/refman/5.0/en/inn...king-reads.html
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.12.2025 - 04:47