Konrad L 18 Napisano 26 Października 2022 Udostępnij Napisano 26 Października 2022 w Parametry specyficzne - powolne pobieranie Czy dałoby się jakoś zoptymalizować i w efekcie przyspieszyć pobieranie parametrów specyficznych dla kategorii? Zrobienie raz na jakiś czas "globalnego" pobierania parametrów jeszcze jakoś ujdzie (nie sobie trwa jak musi), ale pobieranie parametrów w trakcie dodawania produktu do aukcji z włączoną opcją pobierania "Kategorii i parametrów" jest już dość upierdliwe. Jeżeli pobrane parametry są w miarę "świeże" to operacja przebiega w szybko i sprawnie, ale jeżeli już się trochę zleżały (a wystarczy kilka ledwie kilka dni) to trwa to kilka dobrych minut za każdym razem. Co dziwne, ta operacja strasznie obciąża procesor bazy danych - danych jest pobieranych z sieci niewiele, ale proces serwera coś strasznie mieli przez te kilka minut. Chyba, że to u mnie w bazie danych coś się nawarstwiło i teraz serwer musi się przekopywać przez jakieś złogi... Tabela st_CategorySpecificDict ma ponad 500 tys. pozycji. Cytuj Link to postu
Bartosz Rosa 1 771 Napisano 28 Października 2022 Udostępnij Napisano 28 Października 2022 w Parametry specyficzne - powolne pobieranie Problemem jest w zasadzie jeden parametr (prawdopodobnie), producent/marka. O ile dobrze pamiętam w tym parametrze jest ponad 10 tys. różnych wartości i każdorazowo Sello aktualizując ten parametr musi zsynchronizować słownik zapisany w bazie i ta operacja po prostu trwa. Pewne optymalizacje już tam robiliśmy i przyspieszyliśmy to wielokrotnie, ale były one robione w momencie gdy w parametrze tym było 4 tys. wartości. Podeślij proszę jakieś przykładowe numery kategorii w których to występuje, zobaczymy jak to u nas działa i czy da radę coś z tym zrobić. W dniu 26.10.2022 o 19:24, Konrad L napisał: Tabela st_CategorySpecificDict ma ponad 500 tys. pozycji. No, jeśli jeden parametr z marką ma 13tys pozycji to wystarczy kilkadziesiąt takich parametrów żeby dobić do miliona . Jedno z rozwiązań jakie rozważaliśmy to było nie analizowanie zmian i różnic (nie synchronizowanie słownika) tylko usunięcie danych słownika i wpisanie ich na nowo. Ale to z kolei po niedługim czasie spowodowałoby przekręcenie się licznika identyfikatorów w bazie - a co się wtedy stanie to nie wiem . Na pewno nic miłego. Cytuj Link to postu
MARCIN e-kupowanie.pl 1 012 Napisano 29 Października 2022 Udostępnij Napisano 29 Października 2022 w Parametry specyficzne - powolne pobieranie 18 godzin temu, Bartosz Rosa napisał: No, jeśli jeden parametr z marką ma 13tys pozycji to wystarczy kilkadziesiąt takich parametrów żeby dobić do miliona . A może - jeśli się na razie nie da tego normalnie obejść - dodać opcję (jeśli to możliwe) pobierania w tle (kiedy Sello jest bezczynne) tylko opcji 'Marka' do np. kategorii z aukcji trwających? Nie wiem czy to możliwe... I ustawianie tego procesu np. co X dni... Edycja 1 aukcji to rzeczywiście problem, gdy trzeba czekać ...naście minut... Ale ostatnio to pobieranie ubijam (przerwij) i jakośc potem udaje się wybrać prawidłowe parametry w aukcji. Czy może to oznaczać, że coś się 'wiesza' w interfejsie Sello? (samo 'przerwij' to też oczekiwanie z minutę...) Cytuj Link to postu
Bartosz Rosa 1 771 Napisano 7 Listopada 2022 Udostępnij Napisano 7 Listopada 2022 w Parametry specyficzne - powolne pobieranie Przerwij działa tak, że umożliwia przerwanie po zakończeniu wykonania aktualnego zadania. Jeśli zadań jest np 10, to po każdym z 10 kroków można przerwać. Natomiast jeśli samo zadanie trwa minutę - a tak jest tutaj, to przerwanie zadziała ale po tej minucie (po zakończeniu aktualnego zadania). Cytuj Link to postu
Konrad L 18 Napisano 7 Listopada 2022 Autor Udostępnij Napisano 7 Listopada 2022 w Parametry specyficzne - powolne pobieranie W dniu 28.10.2022 o 14:57, Bartosz Rosa napisał: Problemem jest w zasadzie jeden parametr (prawdopodobnie), producent/marka. O ile dobrze pamiętam w tym parametrze jest ponad 10 tys. różnych wartości i każdorazowo Sello aktualizując ten parametr musi zsynchronizować słownik zapisany w bazie i ta operacja po prostu trwa. Pewne optymalizacje już tam robiliśmy i przyspieszyliśmy to wielokrotnie, ale były one robione w momencie gdy w parametrze tym było 4 tys. wartości. W ramach eksperymentów dodałem do tej tabeli index na pola csd_ExtId i csd_Position i to znacznie poprawiło sytuację. Czas synchronizacji parametrów produktu do oferty z kilku minut skrócił się do kilku(nastu) sekund. Kosztowało to co prawda 40MB miejsca, ale trudno. W dniu 28.10.2022 o 14:57, Bartosz Rosa napisał: Podeślij proszę jakieś przykładowe numery kategorii w których to występuje, zobaczymy jak to u nas działa i czy da radę coś z tym zrobić. Kręcę się głównie w zabawkach (np. 321435) i grach (np 6106). Ale generalnie to się zachowuje trochę dziwnie. Pierwsza aktualizacja parametrów dla danej kategorii trwa długo, natomiast kolejne idą już szybciej. Inna kategoria i znów trzeba poczekać dłużej. Czasem po kilku godzinach a czasem dniach znowu potrzebuje więcej czasu na zaktualizowanie parametrów dla danej kategorii. Jakby dane trafiały do jakiegoś cache i póki tam siedzą to działało szybciej. W dniu 28.10.2022 o 14:57, Bartosz Rosa napisał: No, jeśli jeden parametr z marką ma 13tys pozycji to wystarczy kilkadziesiąt takich parametrów żeby dobić do miliona . Jedno z rozwiązań jakie rozważaliśmy to było nie analizowanie zmian i różnic (nie synchronizowanie słownika) tylko usunięcie danych słownika i wpisanie ich na nowo. Ale to z kolei po niedługim czasie spowodowałoby przekręcenie się licznika identyfikatorów w bazie - a co się wtedy stanie to nie wiem . Na pewno nic miłego. Sprawdźcie, proszę, czy ten index nie będzie miał jakichś negatywnych konsekwencji, bo może to wystarczy żeby porzucić temat do czasu Sello NX. I jeżeli nie będzie problemów i może zostać, to żeby nie znikał przy konwersji bazy przy okazji aktualizacji Sello. 1 Cytuj Link to postu
Bartosz Rosa 1 771 Napisano 8 Listopada 2022 Udostępnij Napisano 8 Listopada 2022 w Parametry specyficzne - powolne pobieranie 21 godzin temu, Konrad L napisał: Ale generalnie to się zachowuje trochę dziwnie. Pierwsza aktualizacja parametrów dla danej kategorii trwa długo, natomiast kolejne idą już szybciej. Inna kategoria i znów trzeba poczekać dłużej. Czasem po kilku godzinach a czasem dniach znowu potrzebuje więcej czasu na zaktualizowanie parametrów dla danej kategorii. Działa to tak ze względu na optymalizację, którą tam zastosowaliśmy. Parametr ten jest aktualizowany tylko gdy wystąpi różnica pomiędzy tym co jest w bazie a tym co zwraca Allegro, dlatego pierwsza synchronizacja trwa długo, kolejne szybko do czasu aż zmieni się lista producentów w Allegro. 21 godzin temu, Konrad L napisał: czy ten index nie będzie miał jakichś negatywnych konsekwencji Konsekwencje indeksu są tylko takie, że dłużej trwa zapis danych, zaś odczyt jest znacznie przyspieszony. Natomiast jeśli tutaj on pomógł to oznacza, że problem z wolną aktualizacją nie leży w kodzie, który porównuje słownik zapisany w bazie ze słownikiem w Allegro, tylko w samym odczycie tych danych z bazy - zapewne z racji liczby wpisów w tej tabeli. Cytuj Link to postu
Polecane posty
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.