Witam ... jako, że pierwszy raz także pozdrawiam.
Może nie tyle co mam problem co zastanawiam się nad architekturą obiektu. Mniej więcej wygląda to tak:
jest aplikacja www która budową przypomina jakiekolwiek z brzegu wzięte środowisko social ( użytkownicy posiadający konta, dane, galerie, artykuły etc). Działanie aplikacji przebiega tak:
- Użytkownik loguje się pierwszy raz
- Kontroler stosu ( zawiera tablice obiektów użytkowników ) sprawdza czy posiada danego pacjenta na stosie
2a. jeśli tak, zwraca mu jego obiekt ze stosu
2b. jeśli nie, tworzy obiekt, wsadza na stos i zwraca pacjentowi - pacjent jest zadowolony i śmiga
- każdy kolejny request ( przeładowanie strony ) powtarza się od punktu 2 ( stos -> sprawdź czy masz mój obiekt -> zwróć )
Nic skomplikowanego .. ot prosta aplikacja.
Do rzeczy.
Jest kilka miejsc w których pacjent korzysta z bazy ( nie ważne co pobiera ). Na chwilę obecną w przypadku potrzeby zassania z bazy, pacjent pobiera sobie instancje połączenia z bazą z singletona ( klasa do obsługi bazy jest singletonem ). I wszystko ok. Ale natknęła mnie myśl czy może nie lepszym rozwiązaniem ( skoro każdy z użytkowników posiada własny obiekt ) byłoby stworzenie dla każdego z nich osobnego obiektu dla połączeń z bazą który także byłby trzymany w jego obiekcie.
Skąd taka myśl ?
- serwer DB jest przysłowiowym "Deep blue" - 128 GB ramu, jakieś procesory nie z tej planety .. wydajnością bazy martwić się nie muszę jak i ilością jednoczesnych połączeń
- mogą być momenty kiedy jednocześnie działa około 400 użytkowników - na tym jednym biednym singletonie
- ... pierwszy raz robię sajt jako aplikacje .net stąd tego typu historie są jeszcze troszkę mi obce
Sugestie mile widziane.
PS. przesiadka z PHP na c# jest szokiem termicznym ... zgodności typów zachowane i od razu porządek w kodzie ;)
pozdrawiam