Arama butonu
Bu konudaki kullanıcılar: 1 misafir
11
Cevap
400
Tıklama
0
Öne Çıkarma
Birden fazla kullanıcı aynı satırda işlem yapmak isterse?
K
8 yıl
Yüzbaşı
Konu Sahibi

Arkadaşlar diyelim stok veritabanında elma sütununda 5 değeri var. A kullanıcısı bunu bir arttırmak istiyor veritabanından 5 verisini çekiyor 1 ekliyor veritabanına gönderiyor.
Ama aynı anda B kullanıcısı da veri çekmişti ve onun çektiği veri de 5, buna 1 ekliyor ve 6 sonucunu veritabanina gönderiyor. Sonuç olarak veritabanina 2 eklenmesi gerekirken stoğun 7 olması gerekirken 6 olduğunu görüyoruz bunu nasıl engelleriz?



< Bu ileti mobil sürüm kullanılarak atıldı >

M
8 yıl
Yarbay

Bu senin degil, veri tabaninin problemi ( Eger veritabani yazmiyorsan ). ACID prensiplerini inceleyebilirsin.
https://en.wikipedia.org/wiki/ACID
---

Eger uygulaman bu durumun dogru calismasina bagimliysa , ki database'ler zaten bunun duzgun calismasi uzerine kurulu; bunu uygulama seviyesinde de forse edebilirsin.
Eger tek makinede tek instance uzerinde calisiyorsa lock mekanizmasi kullanarak; tek makine cok instance ise memory share ile ; cok makine cok instance ise cluster cache kullanarak.

Eger bu bir odev ise , semafor falandir muhtemelen hocanin ogretmeye calistigi sey. Programlama diline gore nasil implemente edildigini ogrenip yapabilirsin.
https://en.wikipedia.org/wiki/Semaphore_(programming)





< Bu mesaj bu kişi tarafından değiştirildi Mephalay -- 20 Eylül 2017; 22:15:36 >

< Bu ileti tablet sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
K
8 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: Mephalay

Bu senin degil, veri tabaninin problemi ( Eger veritabani yazmiyorsan ). ACID prensiplerini inceleyebilirsin.
https://en.wikipedia.org/wiki/ACID
---

Eger uygulaman bu durumun dogru calismasina bagimliysa , ki database'ler zaten bunun duzgun calismasi uzerine kurulu; bunu uygulama seviyesinde de forse edebilirsin.
Eger tek makinede tek instance uzerinde calisiyorsa lock mekanizmasi kullanarak; tek makine cok instance ise memory share ile ; cok makine cok instance ise cluster cache kullanarak.

Eger bu bir odev ise , semafor falandir muhtemelen hocanin ogretmeye calistigi sey. Programlama diline gore nasil implemente edildigini ogrenip yapabilirsin.
https://en.wikipedia.org/wiki/Semaphore_(programming)

Teşekkür ederim hocam ödev değil.

Bir web uygulaması üzerinde çalışıyorum beğeni butonu yaparken aklıma takıldı. Beğen butonunda çok sorun olmaz ama daha farklı bir projede nasıl çözerim onu merak etmiştim.



< Bu ileti mobil sürüm kullanılarak atıldı >

B
8 yıl
Yarbay

quote:

Orijinalden alıntı: hseyindemirr

Hocam Selamlar,

Buradaki arkadaşlarda açıklamışlar, ilişkisel veritabanları ACID prensibine göre çalışır ve data tutarsızlığının önüne geçmek için bir lock mekanizması kullanır. Hatta bu lock mekanizması kayıt için değil tablo için çalışır. Aynı tablo üzerine gelen kullanıcılar birbirlerinin işlerinin bitmesini beklemek durumundadır.

Durumun önüne geçmek için tablo locklandığında aynı tablo üzerine işlem yapmak isteyen kullanıcıya exception fırlatmak olabilir uygulama katmanında :)

Kolay Gelsin,
İyi Forumlar.


bu arkadaşın derdini çözmez. arkadaşın anlatmak istediği sanırım şu:

-a kaydı okudu
-b kaydı okudu
-a değişiklikler yaptı ve kaydetti
-b değişiklikler yaptı ve kaydetti

işte b kaydedememeli. kayıt güncel değil hatası vermeli. optimistic concurrency, pessimistic concurrency konusu bu. temel mantığı şöyle; kaydı güncellemeden önce kayıt hala ilk okuduğun gibi mi kontrol edilir. eğer öyleyse sıkıntı yok. değişmişse hata patlatılır. aşağıda bununla ilgili bir yazı var:

https://docs.microsoft.com/en-us/aspnet/web-forms/overview/data-access/editing-inserting-and-deleting-data/implementing-optimistic-concurrency-cs





< Bu mesaj bu kişi tarafından değiştirildi beyinsis -- 26 Eylül 2017; 9:11:27 >
Bu mesaja 1 cevap geldi.
K
8 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: beyinsis


quote:

Orijinalden alıntı: hseyindemirr

Hocam Selamlar,

Buradaki arkadaşlarda açıklamışlar, ilişkisel veritabanları ACID prensibine göre çalışır ve data tutarsızlığının önüne geçmek için bir lock mekanizması kullanır. Hatta bu lock mekanizması kayıt için değil tablo için çalışır. Aynı tablo üzerine gelen kullanıcılar birbirlerinin işlerinin bitmesini beklemek durumundadır.

Durumun önüne geçmek için tablo locklandığında aynı tablo üzerine işlem yapmak isteyen kullanıcıya exception fırlatmak olabilir uygulama katmanında :)

Kolay Gelsin,
İyi Forumlar.


bu arkadaşın derdini çözmez. arkadaşın anlatmak istediği sanırım şu:

-a kaydı okudu
-b kaydı okudu
-a değişiklikler yaptı ve kaydetti
-b değişiklikler yaptı ve kaydetti

işte b kaydedememeli. kayıt güncel değil hatası vermeli. optimistic concurrency, pessimistic concurrency konusu bu. temel mantığı şöyle; kaydı güncellemeden önce kayıt hala ilk okuduğun gibi mi kontrol edilir. eğer öyleyse sıkıntı yok. değişmişse hata patlatılır. aşağıda bununla ilgili bir yazı var:

https://docs.microsoft.com/en-us/aspnet/web-forms/overview/data-access/editing-inserting-and-deleting-data/implementing-optimistic-concurrency-cs

İşte bu hocam çok teşekkürler



< Bu ileti mobil sürüm kullanılarak atıldı >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.