Jak przechowywać złożone obiekty z których korzystać będą korzystać różni użytkownicy? Od razu zaznaczam, że żadne memcached nie wchodzi w grę. Obiekt musi cały czas funkcjonować w pamięci, gdyż zajmuje kilkaset megabajtów. Czy da się to zrobić z użyciem ROR? na razie przychodzi mi na myśl tylko jakiś własny serwer napisany w Rubym i nasłuchujący na porcie. Pytam, gdyż chciałbym wiedzieć czy nauka rails nie będzie stratą czasu.
Może władować to do bazy danych opartej na ramie np Redis
Każde zapytanie to kilkaset/kilka tysięcy operacji typu inkrementacja czy szukanie wartości minimalnej. Czy taką ilość operacji da się wykonać na takiej bazie w czasie poniżej 1s? Bo to złożony obiekt i algorytm za każdym razem biega po listach/tablicach/referencjach jak opętany i zmian danych nie dokonuje się na wielu rekordach tylko pojedynczo. Akcje następna zależy od poprzedniej, więc nie można ich robić na raz. A może najlepiej po prostu włożyć jakoś obiekt Javovy, tylko czy się to da w połączeniu powiedzmy z rails, który będzie z tego korzystał?
Redis według testów to około
100.000 operacji na sekundę
Odczyt i zapis w sumie w tym samym czasie
więcej masz na:
http://code.google.com/p/redis/
są tam też opisy złożoności operacji i benchmarki. Ogólnie to chyba najszybsza baza na rynku. Trochę ciężko się ją oprogramowuje
jak byś potrzebował jakiegoś prostego przykładu to na github jest kilka łacznie z czatem jaki pisałem w niej. W celach czysto naukowych ;]
A jak chcesz łączyć Jave i Ruby to jasne, da się są do tego odpowiednie narzędzia, poszukaj nawet na tym forum było nie raz już.