Cytat
3. Cache jest odświeżany ręcznie, no i to co sugerujesz ja właśnie musze stworzyć w postaci agregatów danych. Problemem jest ich ilość i skomplikowanie kontekstowe
To jaki problem tagować? Tag jest aspektem, konteksty - poszczególnymi obiektami. Musisz odświeżyć? Wywal aspekt. Jak Ci za mało będzie miejsca na cache, to postaw Redisa.
Cytat
5. Możesz to rozwinąc? Bo technologii jeszcze nie wybrałem po to między innymi jest ten wątek. Generalne chcę zapytać maszynę podając kontekst w jakikowliek sposób i odebrać dane do przetworzenia np. zakodowany JSON lub XML abym mógł to na frontendzie zaprezentować dowolnie.
No tworzysz np. demon wykonujący obliczenia, który jest pozbawiony narzutu interpretera. Np. w C++, który jest sprzężony z Gearmanem (Gearman = mechanizm kolejkowania). Nowe zadanie -> wpada kolejne do kolejki, a Gearman już pilnuje reszty, żeby obsłużyć ilość żądań w zależności od workerów.
Generalnie napisanie czegoś takiego w C/C++ albo innym języku pozwalającym na uzyskanie aplikacji binarnych mocno by przyspieszyło całość. Pozbywasz się narzutu bibliotek interpretera, konieczności interpretacji, a gdybyś się pokusił o napisanie aplikacji jako respondera FastCGI, to miałbyś jeszcze narzut na start procesu z głowy.
Rozwiązanie trochę szalone, ale np:
- RAM-dysk na worker, to jednocześnie przyspiesza samą operację, jak i upraszcza napisanie takiego demona. Gdyby męczyć to via zapytania bezpośrednio, to musisz jeszcze się pomęczyć z obsługą bazy. Wszystko zależy od umiejętności, a IMO pozostawienie wszystkiego na prostych plikach trzymanych w RAM pozwoli na napisanie takich rzeczy każdemu, kto potrafi skompliować hello world w GCC. [;
- W Pythonie tworzysz aplikację, która odpowiada za wyciągnięcie danych, sparsowanie ich i wrzucenie na RD. Mógłby być i PHP, ale Python tworzy skompilowane binarki.
- po każdym takim procesie pobierasz pliki z RD i wrzucasz sobie do cache
- a wszystko kontrolowane przez skrypt sh
Możliwości jest wiele, jedno jest pewne: obliczenia = tylko języki kompilowane. Z tego, co wiem, to również Java optymalizuje niektóre operacje matematyczne, więc i nad tym bym się zastanowił.
Wszystko zależy od konkretnego problemu, ogólnikowo, to sobie możemy gdybać. [;