Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Scalanie i sortowanie dwóch źródeł danych, Na dobitke stronnicowanie
zulus
post
Post #1





Grupa: Zarejestrowani
Postów: 225
Pomógł: 18
Dołączył: 30.06.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Witam, nie wiem czy to dobre miejsce (dawno mnie tu nie było). Postaram się opisać problem jak najbardziej ogólnie:

Mamy dwa źródła danych (oba to SOAP REST API z różnych serwisów). Potrzebuję pobrać wynik wyszukiwania z obu systemów (docelowo może być ich więcej), scalić w jedną listę i wyświetlić w postaci posortowanego grida.

Kombinuję na różne sposoby. Niestety cache danych dłuższy niż 5s jest totalnie za długi ze względu na dużą częstotliwość aktualizacji. Danych jest sporo dla jednego zapytania może być np 30 000 rekordów po 10 kolumn każdy.

Sortowanie po liczbach rzeczywistych dodatnich (cena).

To, tak ogólnie, jakieś pomysły co do algorytmu?

Dodam że dane możemy pobierać w paczkach od 5 do 100 rekordów i przy każdym requeście mamy dostęp do liczby wszystkich rekordów. Obie serie danych są posortowane.

Rozwiązanie na SQLlite tmp table i pliki wypada dość marnie. Im dalej dochodzi stronicowanie tym jest to wolniejsze.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Niestety cache danych dłuższy niż 5s jest totalnie za długi ze względu na dużą częstotliwość aktualizacji.

Jakiś system giełdowy, czy co? O.o'

Cytat
Rozwiązanie na SQLlite tmp table i pliki wypada dość marnie. Im dalej dochodzi stronicowanie tym jest to wolniejsze.

To zainteresuj się bazą trzymaną w pamięci RAM + kopia na HDD. Np. Redis.
Go to the top of the page
+Quote Post
zulus
post
Post #3





Grupa: Zarejestrowani
Postów: 225
Pomógł: 18
Dołączył: 30.06.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Nie chciałem sugerować. Chodzi o np połączenie danych ze świstaka z danymi z allegro. Jak wiadomo aukcje zwłaszcza pod koniec zmieniają się non stop. Albo przynajmniej znikają (allegro kup teraz). Możliwości odpytania jest tak wiele że cache niema większego sensu.

Jedyne co na razie przychodzi mi na myśl to wczytanie takich samych porcji danych (od 0 do $limit*$offset + $limit) , scalenie a na końcu obcięcie. Ew jakieś optymalizacje na początku i w trakcie scalania. Niestety im głębiej w las (dalsza podstrona) tym to będzie działać coraz wolniej, ze względu na coraz większą ilość requestów.

Zapis do bazy w locie jest przyjemny, ale to po prostu dodatkowy krok: zrzut do bazy, pobierz co chcesz, cleanup)

Na razie to rozważania czysto teoretyczne. Teraz to jest allegro/swistak, ale tak samo dobrze się sprawdzi przy pobieraniu danych z dwóch różnych źródeł dany (np dwa kanały RSS) i ich wyświetlanie. W tym ostatnim raczej tak często się nie zmienia i po prostu będzie opóźnienie. Plus to że jest więcej stałych.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 16:02