Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Baze podataka i konkurentnost rada

[es] :: Baze podataka :: Baze podataka i konkurentnost rada
(Zaključana tema (lock), by misk0)
Strane: 1 2

[ Pregleda: 6282 | Odgovora: 30 ] > FB > Twit

Postavi temu

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

djoka_l
Beograd

Član broj: 56075
Poruke: 2574



+1072 Profil

icon Re: Baze podataka i konkurentnost rada12.02.2009. u 23:39 - pre 125 meseci
Ako hoćeš tačan mehanizam kako naše banke rade e-banking:

Unos naloga za plaćanje formira slog naloga za plaćanje na bazi podataka koja je u demilitarizovanoj zoni (između neta i tog servera je prvi firewall). Zatim ebanking server šalje DB serveru poruku plaćanja kao rpc (db server je iza drugog firewalla) i time samo upisuje kopiju naloga plaćanja sa ebankig servera na produkcioni server. Na db serveru se vrti job koji proverava da li su pristigle nove poruke plaćanja i kada je nađe onda poziva proceduru koja radi knjiženje (ili rezervaciju, zavisno od toga da li je plaćanje između računa u istoj banci ili na eksterni račun).
Ova procedura proverava da li postoje sredstva na računu i ako ne postoje, stavlja nalog u stanje čekanja na pokriće na kojem može da ostane, u zavisnosti od politike banke i toga šta je komitent stavio kao krajnji rok plaćanja do 5 dana.
Ako je nalog za plaćanje za drugu banku i postoje sredstva na računu platioca, ne radi se knjiženje nego rezervacija. Raspoloživo stanje se računa kao trenutno stanje + dozvoljeni minus - rezervacije. Formira se poruka plaćanja (SWIFT poruka MT103) koja se šalje na SWIFT server, pa dalje u kliring centar. Knjiženje se radi kada se dobije konfirmacija od kliring centra da je nalog izvršen, te se u tom momentu ažurira stanje na računu i stanje rezervisanih sredstava.
 
0

slacker

Član broj: 14720
Poruke: 1048
*.adsl.net.t-com.hr.



+1 Profil

icon Re: Baze podataka i konkurentnost rada12.02.2009. u 23:50 - pre 125 meseci
Upravo tako. Postoji klijentski dio aplikacije, zatim neki midleware koji sadrži poslovnu logiku (transakcije) i komunicira sa DB, te vraća rezultat klijentu (ili više njih najčešće). Klijenti nikad ne šaraju direktno po bazi, bar ne kod tako velikih sistema.

[Ovu poruku je menjao slacker dana 13.02.2009. u 01:22 GMT+1]
 
0

schild
Dejan Šild
TopCode Software
Subotica

Član broj: 59888
Poruke: 136
213.240.53.*

Sajt: www.topcode.rs


+2 Profil

icon Re: Baze podataka i konkurentnost rada13.02.2009. u 06:52 - pre 125 meseci
Citat:
djoka_l: Opet loš primer, pristupanje računu ne sme da zaključa slog stanja računa. Stanje se pročita (samo informativno), formira se stavka knjiženja, pa onda potvrda naloga menja stanje (koje pre započinjanja potvrde zaključa stanje). Potvrda naloga prouzrokuje update stanja. Dok jedna transakcija ne završi commit, druga ne može da se potvrdi, ali ta potvrda traje vrlo kratko (reda 1-10ms od momenta kada se zaključa stanje do završetka update).

Potpuno se slazem sa tobom, i onda je sva ova diskusija gore samo teoretisanje. Isti slog moze da cita vise transakcija, ali samo jedna moze da ga menja, ali cak i pri toj izmeni bi staro stanje sloga moralo biti dostupno drugim transakcijama. Svaka ozbiljna baza to podrzava.
U tom duhu, dobro dizajnirana baza i jos bitnije aplikacija bi morali imati konflikte azuriranja izuzetno retko.

A sto se tice broj konkurentnih korisnika i konkurentnih transakcija, to bi trebalo naglasiti o cemu pricamo, jer kao sto je receno, par korisnika (konekcija) moze imati i vise desetina aktivnih transakcija, te bi onda 100-tinak realnih korisnika lako moglo imati oko 1000 aktivnih transakcija, opet u zavisnosti od dizajna aplikacije.
 
0

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Moderator
Član broj: 53780
Poruke: 575
..9.252.195.static.beotel.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Baze podataka i konkurentnost rada13.02.2009. u 09:07 - pre 125 meseci
Bez obzira da li se radi o bazama podataka ili o generalnom programiranju, pri programiranju konkurentnih procesa se mora voditi računa o upotrebi zajedničkih resursa.

Bitno je identikovati kritične sekcije, tj. delove programa koji nesmeju paralelno da koriste iste resurse. Pre ulaska u kritičnu sekciju sporni resursi se moraju ekskluzivno prisvojiti, i osloboditi nakon izvršavanja kritične sekcije.

U mkarasovom primeru 3 platne kartice nad jednim računom, moguća kritična sekcija je momenat kada se vrši skidanje novca sa računa. Rekao sam "moguća kritična sekcija" jer to zavisi od dizajna baze - midlweara aplikacije - klijentske aplikacije. U svakom slučaju, ako se utvrdi da je skidanje novca kritična sekcija neke od aplikacija, tabele koje učestvuju u formiranju stanja računa se moraju pesimistički zaključati do obavljanja transakcije skidanja!
"The best code is no code at all." - Zidar (ES član)
"Biggest obstacle to learning SQL is unlearning procedural programming." - Joe
Celko
"Minimize code, maximize data." - A. Neil Pappalardo
 
0

mkaras
Marko Karas
Beograd

Član broj: 66087
Poruke: 427



+19 Profil

icon Re: Baze podataka i konkurentnost rada13.02.2009. u 09:47 - pre 125 meseci
Citat:
chachka: Bez obzira da li se radi o bazama podataka ili o generalnom programiranju, pri programiranju konkurentnih procesa se mora voditi računa o upotrebi zajedničkih resursa.
...
U svakom slučaju, ako se utvrdi da je skidanje novca kritična sekcija neke od aplikacija, tabele koje učestvuju u formiranju stanja računa se moraju pesimistički zaključati do obavljanja transakcije skidanja!


Konačno. Do sada se više puta pojavila tvrdnja da je pesimističko (eXlusivno) zaključavanje glupost koja uništava perfomanse aplikacije. Čini mi se da smo ipak došli do spoznaje da je u nekim situacijama neophodno. Naravno, projektanti baze i aplikacije moraju da povedu računa i da ga svedu na najmanju moguću meru i po učestalosti upotrebe i po trajanju, ali ne smeju i ne mogu ga izbaciti iz upotrebe kao što su zagovarali neki od diskutanata.
Na forumu se nekada pojave tekstovi koje pišu diskutanti koji nisu učestvovali u rešavanju konkretnih problema pa samim tim i ne primećuju sve skrivene zamke koje problem nosi sa sobom. Drago mi je da su se javili i oni koji su čestvovali u sličnim projektima. Hvala.
 
0

savkic
Igor Savkić

Član broj: 92186
Poruke: 2560



+65 Profil

icon Re: Baze podataka i konkurentnost rada13.02.2009. u 10:40 - pre 125 meseci
Sasvim sigurno se neće zaključavati čitava tabele zbog jednog korisnika već samo pojedini slogovi koji se tiču tog korisnika. Drugo, sama baza će voditi računa o tome, ako dve transakcije pretenduju da izmene isti slog, baza će shodno podešavanjima transkacije razrešiti situaciju i po potrebi sprečiti jednu transakciju da promeni stanje. Kao što je neko rekao ranije, tako nešto se u bankarskim aplikacijama nikada neće desiti, nalozi za plaćanje se upisuju u red za čekanje i redom se obrađuju tako da nikada ne utiču na isti slog istovremeno.
Ekskluzivno zaključavanje na nivou čitave tabele jeste loše u tavkim velikim sistemima jer bi ih učinilo neupotrebljivim, ako postoji potreba zaključavaju se samo pojedini slogovi.

 
0

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 5929



+4599 Profil

icon Re: Baze podataka i konkurentnost rada13.02.2009. u 13:48 - pre 125 meseci
Ma nije u tome problem, njegov problem sam od pocetka bio ja kao "diskutanti koji nisu učestvovali u rešavanju konkretnih problema pa samim tim i ne primećuju sve skrivene zamke koje problem nosi sa sobom" . Svojevremeno sam mu rekao da je izrekao neke totalne gluposti oko pesimistickog zakljucavanja u ado.net aplikacionom layer-u i posto nije dobio odgovarajucu satisfakciju u zalbi mojim kolegama na moje ponasanje sad pokusava posto poto da dokaze da nisam u pravu, makar usput iskrivljujuci cinjenice, deleci tu temu na nekoliko nekompletnih tema koje moze da navodi ka svom zakljucku, pozivajuci se na svoje vaskoliko Access i FoxPro iskustvo i citirajuci populisticku literaturu, dok ne uspe da ubedi bar jos nekog da se slozi sa njim, pri tom pokazajuci sopstveno elementarno nepoznavanje materije o kojoj iznosi tvrdjenja. Retko ko je pratio sve te teme, pa cisto da ubrazmo upoznavanje.

Ovu njegovu poslednju poruku bih trebao da obrisem jer nije odgovor na pitanje zbog kojeg je meni tako samouvereno nadrljao nos pri pocetku teme, secas se mkaras? "@mmix
Pitanje je glasilo : *Koja firma u Srbiji koristi bazu podataka i aplikaciju sa više stotina konkurentnih klijenata?* Molio bih te da se držiš teme i da, ako imaš odgovor na temu , onda to i kaži, kratko i jasno. Znači : koja firma? Samo to je bilo pitanje. Hvala"

Al nema veze, znao sam da ces pre ili kasnije da sam navedes vodu na tu vodenicu sa pesimistickim zakljucavanjem i mojom 'nesposobnoscu', pa sad mogu slobodno da uputim ljude na tu drugu temu, pa koga interesuje nek isprati: ES: Pesimisticko zakljucavanje - razlozi za i protiv da ne bi ovde ponovo to ponavljali. I ja i dalje stojim protiv drzanja pesimistickih lockova duze nego sto je apsolutno minimalno neophodno i da nisu najbolji lek za sve moguce concurrency probleme i stojim iza toga da su pesimisticki lockovi i njihova zloupotreba glavni uzrocnici neskalabilnosti aplikacija a te tvrdnje su u toj drugoj temi potkrepljene primerima.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
0

mkaras
Marko Karas
Beograd

Član broj: 66087
Poruke: 427



+19 Profil

icon Re: Baze podataka i konkurentnost rada13.02.2009. u 15:15 - pre 125 meseci
Došli smo do zaključka da veliki broj finansijskih organizacija koristi bazu podataka sa velikim brojem klijenata. Prilikom plaćanja karticom na izveštaju se, osim datuma, iznosa i broja terminala nalaze još neki podaci. Na jednom od njih imam stavke: broj prometa, broj potvrde i broj odobrenja i još po nešto. Gde se generišu ti podaci?
 
0

djoka_l
Beograd

Član broj: 56075
Poruke: 2574



+1072 Profil

icon Re: Baze podataka i konkurentnost rada13.02.2009. u 15:36 - pre 125 meseci
Između POS-a ili ATM-a i banke se nalazi procesor. Banka i sama može da radi procesiranje ukoliko ima opremu i softver. E sad, imaš tri scenarija, bančina kartica u bančinoj mreži, tuđa kartica u bančinoj mreži i bančina kartica u tuđoj mreži.

U principu, te dodatne podatke generiše procesor, osim broja autorizacije. Ako banka ima on-line autorizaciju, tada ona generiše broj autorizacije. Ako nema, ona pravi balance file za procesora, pa onda procesor na osnovu podataka iz tog fajla (stanja na računima) generiše i autorizaciju.

Uzimajući u obzir prvu rečenicu, tada te podatke mogu generisati procesor, procesor u banci, procesor u drugoj banci ili banka.
 
0

mkaras
Marko Karas
Beograd

Član broj: 66087
Poruke: 427



+19 Profil

icon Re: Baze podataka i konkurentnost rada13.02.2009. u 15:49 - pre 125 meseci
Sve te dodatne informacije su brojevi. Pitanje je da li ti brojevi moraju da budu poređani po nekom određenom pravilu i da li su dozvoljene "rupe u nizu?
 
0

misk0
.: Lugano :. _.: CH :.

SuperModerator
Član broj: 634
Poruke: 2824
*.adsl.ticino.com.

ICQ: 46802502


+49 Profil

icon Re: Baze podataka i konkurentnost rada13.02.2009. u 21:08 - pre 125 meseci
Ova tema ide u nekim cudnim pravcima i mislim da na je na pocetno pitanje odgovoreno. Pitanja koja autor postavlja naknadno nisu toliko vezana za temu. Zatvoricu je sad, a ako autor misli da pita neke druge stvari slobodan je da otvori novu temu.

:: Nemoj se svadjati sa budalom, ljudi cesto nece primjetiti razliku ::
 
0

[es] :: Baze podataka :: Baze podataka i konkurentnost rada
(Zaključana tema (lock), by misk0)
Strane: 1 2

[ Pregleda: 6282 | Odgovora: 30 ] > FB > Twit

Postavi temu

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.