Witam,
Chcialbym dowiedziec sie jakie sa wasze opinie, sugestie na rozwiazanie ponizszego problemu:
Mianowicie pisze aplikacje, ktorej zadaniem jest archiwizowanie danych. Aplikacja posiadac musi nastepujace opcje:
- zapis kontaktow w bazie (dane osobowe ludzi),
- kalendarz(moze raczej terminarz) i odpowiednie dzialania do niego,
- zapis linkow (podzial ich na kategorie),
- czytnik RSS (zapisywanie zarowno kanalow jak i newsow do bazy),
- uploadowanie plikow.
- ...
Problem jest oczywiscie zwiazany z optymalizacja dzialania serwera. Sam czytnik Rss'ow potrafi dziennie dla jednego uzytkownika zgromadzic ok.200 newsow|rekordow (tytul, opis, link, data - takie dane zapisywane sa do bazy).
Narazie rozwiazaniem jest upchanie wszystkiego do poszczegolnych tabel w bazie, jednak nie wiem jak to bedzie wygladac, jesli np. bedzie aktywnych 1000 uzytkownikow, odpowiednio kazdy pobieral bedzie rssy z/do bazy oraz wykonywal inne czynnosci.
Moze ktos wczeniej rozwiazywal podobny problem - duzo_uzytkownikow/duzo_danych ?
Moze ktos wie w jaki sposob rozwiazane jest podobne zagadnienie na Google. Oni maja cala mase aplikacji typu: rssReader, Calendar, Contact ... Raz zarejstrowany uzytkownik ma do wzystkiego dostep.
devnul
9.04.2007, 13:49:18
jeśli o RSS chodzi to zrób relacje jeden do wielu (bo po co ssać to samo dla wiecej niż jednego usera - nie ma sensu kilka razy pobierac tej samej rsski). jeśli chodzi o reszte operacji to nie wydaje mi sie żeby to aż tak bardzo obciążyło serwer (rozumiem że masz dedyka?) - nie jest to przecierz (chyba) aplikacja z któej w jednej chwili będzie kożystało tysiące osób. Co do google to oni mają gigantyczny fundusz więc stać ich na porządne ilości porząnych serwerów które spokojnie zajmują sie liczeniem gugantycznych ilości danych. ot cała filozofia
PS. zmien temat bo ten to się długo nie utrzyma
Hmm.. Kazdy uzytkownik wybiera sobie kanaly, dodaje jakies linki z rss'ami. W jedenj tabeli sa spisy kanalow, w innej newsy. Chcialem faktycznie w tabeli 'channels' dac klucz obcy do uzytkownika konkretnego.
Mysle, ze jak juz to musialbym stworzyc dodatkowa tabele z kluczami obcymi, a ich relacja to wiele-do-wielu. Ale to rozwiazanie wydaje mi sie srednie, np. ze wzgledu manipulacji przy dodatkowej tabeli.
Wiec nie wiem, wiadomo - cos kosztem czegos

Nie musialbym zapisywac n razy tych samych danych, ale musialym utworzyc dodatkowa tabele.
Tabela - użytkownicy
Tabela - subskrypcje
Tabela - użytkownik posiada subskrypcje
I koniec. Tak ma być. Wszystko działa jak powinno.
Dodatkowa tabela u mnie to Kanaly. Jest tam spis kanalow i opis krotki, pobierany oczywiscie z rssow. Jest ona konieczna imho, poniewaz dzieki niej latwo na stronie wypisac liste kanalow, przyporzadkowac poszczegolnych uzytkownikow do niej...
Jednak jesli zrobie tak jak mowisz sf to uzytkownik, ktory w pozniejszym czasie doda sobie kanal (ktory inny uzytkownik wczesniej dodal) bedzie mial newsy od momentu dodania kanalu przez uzytkownika wczesniejszego.
Nie mowie, ze to zle (czasem nawet dobre), ale jednak dosc dziwne .. [;
c3zi: zamień sobie u mnie subskrypcje na kanały i masz to co napisałeś
dalszej części jednak nie rozumiem, zapisujesz wszystkie wpisy rss do bazy tak? i je przechowujesz przez tysiące lat potem.. bo jeśli tak to dlaczego nowy użytkownik ma mieć dostęp do mniejszej ilości wpisów niż starszy? powinien mieć do wszystkich bo dlaczego nie, a nawet jak chcesz mu ograniczyć co wydaje mi się bardzo dziwne to po prostu robisz od daty dodania użytkownika wyświetlaj wiadomości
sf:
Wpisy w bazie beda przechowywane do jakiegos czasu lub osiagniecia pewnego limitu. Owszem, uzytkownik moglby przeczytac wczesniejsze informacje (jest to rzeczywiscie wrecz wskazane), jednak kademu newsowi przyporzadkowane sa pewne opcje (np. polec dany news). Zatem nalezaloby chyba kolejna tabele stworzyc wiele do wielu.. Ponadto kazdy uzytkownik ma opcje usuniecia rssa, przez co kazdy uzytkownik powinien miec przyporzadkowanego newsa do siebie. Teraz tak na to patrze i duzo moge na wydajnosci przez takie podejscie stracic.
W temacie po prostu chodzilo mi o wytrzymalosc serwera. Czy bylby gotow bezproblemowo obsluzyc 1000 uzytkownikow, biorac pod uwage jakis standardowy serwer z home, nazwa ...
devnul
9.04.2007, 17:56:55
to w tabeli użytkownik posaida subskrypcje dodaj znacznik czasu od kiedy posiada daną subskrypcje i przy wyświetlaniu newsów z rss pokazuj tylko te które się pojawiły od czasu zapisania się do subskrypcji plus ostatnie n gdzie n to liczba newsów pokazywanych w danym feedzie - simple
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.