Kezdőoldal » Számítástechnika » Programozás » Elmeleti kerdes ki mit gondol...

Elmeleti kerdes ki mit gondol errol mik azok a hibak?

Figyelt kérdés

Hali tetelezzuk fel hogy van egy "optimalisan" mukodo programunk pl egy "bank" webes feluletrol elerheto, utalasokat tudsz inditani,naplozni tudod a forgalmat,egyenleg stb.

nyilvanvaloan ehhez a hozzaferes regisztraciohoz kotott, es az miert alakul ki, hogy pl80-100 latogatonal egyszeruen elszall az sql, vagy esetleg valami hiba lesz tehat mas funkciot fog csinalni az adott resz, a kod nem valtozik, mi okozza a problemat, hogy lehet rajonni hogy az adott problemat mi okozta es mi az eljeras ilyenkor hogy ez ne forduljon elo stb.


2018. aug. 14. 12:48
 1/9 anonim ***** válasza:
0%
Hozzáértőknek jól kell megírnia a kódot és alaposan kitesztelni.
2018. aug. 14. 12:59
Hasznos számodra ez a válasz?
 2/9 anonim ***** válasza:
tesztelni,tesztelni,tesztelni :D Nem véletlenül vannak unit,integrációs tesztek. Illetve stressz teszt etcetc.
2018. aug. 14. 13:02
Hasznos számodra ez a válasz?
 3/9 A kérdező kommentje:
kifejtened
2018. aug. 14. 13:02
 4/9 anonim ***** válasza:
Mi az, hogy mik azok a hibák? Ezer ok miatt lehet. Tudni fogja az, aki megvan bízva ezzel.
2018. aug. 14. 13:02
Hasznos számodra ez a válasz?
 5/9 anonim ***** válasza:
0%
Amatőröknek nem szabad ilyesmivel foglalkoznia.
2018. aug. 14. 14:53
Hasznos számodra ez a válasz?
 6/9 A kérdező kommentje:
aha oksa.
2018. aug. 14. 14:58
 7/9 anonim ***** válasza:
Adatbázisoknál pl. ha két műveletet egyszerre akarsz végrehajtani, amiknek az adatai egymástól függnek. (Ld. "lock")
2018. aug. 14. 17:28
Hasznos számodra ez a válasz?
 8/9 anonim ***** válasza:

"egyszeruen elszall az sql"

Kicsit pontosabban?

"vagy esetleg valami hiba lesz tehat mas funkciot fog csinalni az adott resz"

Kicsit pontosabban?

2018. aug. 14. 17:42
Hasznos számodra ez a válasz?
 9/9 anonim ***** válasza:

Ha párhuzamosan több kérést kell kiszolgálni, akkor előfordulhat, hogy ugyanazt az osztott erőforrást több programszál használná. Ha ez a helyzet nincs normálisan lekezelve, akkor az legtöbbször hibához vezet.


Egy nagyon amatőr példa megmaradva a bank és sql vonalon. Minden banki utalásnak egyedi azonosítóval kell rendelkeznie a DB-ben. Tegyük fel, hogy van egy globális counter. Amikor jön egy új utalás, akkor kiolvasom a counter értékét elmentem az utalás részleteit ezzel az azonosítóval, majd növelem eggyel a countert, hogy a következő utalás is egyedi azonosítót kapjon majd.

Tegyük fel, hogy beérkezik két utalás nagyjából egyszerre.

- Szál1 kiolvassa a counterből X értéket.

- Szál2 kiolvassa a counterből X értéket.

- Szál1 elmenti az utalás adatait X azonosítóval.

- Szál1 növeli a countert (X+1)-re.

- Szál2 megpróbálja elmenteni az utalást, de ilyen azonosító már van a táblában és elszáll hibával.


Ez csak egy típushiba volt, van csomó más pl deadlock, starvation, nem várt értékek a memóriában, ha több szál ugyanazt a memóriaterületet írná, stb.

Rájönni általában úgy lehet, hogy végigköveted a logok alapján mi vezetett a hibás állapothoz. Aztán nézed mellette a kódot és felismered a problémát. Liveness problémák esetén thread dump is segít.


Megoldani meg úgy lehet, hogy az osztott erőforrások konzisztenciáját védeni kell, bizonyos összetett műveleteket atomi lépésként kell kezelni, stb

A fenti példában konkrétan nem szabadna megengedni, hogy másik szál is olvassa a countert, amíg az utolsó szál, amelyik olvasta, nem írta vissza a megnövelt értéket.

2018. aug. 14. 20:26
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!