Odwrót częściowy: Import i wywóz handlowy
- identified
Mamy do czynienia i zidentyfikowaliśmy częściowy brak w naszym serwisie Import & Eksport Merchant i pracujemy nad jego jak najszybszym rozwiązaniem.
- resolved
Ten incydent został rozwiązany.
- postmortem
# Incydent Pośmiertny Raport * * Eksport desek rozdzielczych i import opóźniony dla wszystkich zapasów * * 124; 124; 124; 124; {C: $999966} {f: * * Data * * 25 października 2026, 11: 25 do 14: 26 PM\ (UTC\ + 3, KSA time\). Czas trwania: 3 godziny 1 minuta 124; 124; * * Typ incydentu * * 124; degradacja usług: przetwarzanie tła 124; 124; * * Tytuł * * 124; Bardzo duży import klienta zatrzymany eksport desek rozdzielczych i import dla wszystkich sklepów 124; 124; * * Impact * * 124; 132 wnioski o wywóz z 66 Stores zostały opóźnione, średnio o 81 minut i do 3 godzin 43 minuty. Trzy z nich zostały rozłożone w czasie i muszą być żądane ponownie. Import klienta ze sklepu, który rozpoczął duży import został opóźniony do 15: 12 PM. 124; * * Całkowity wpływ na czas uśpienia * * 124; brak przerw. Sklepy, wymeldowanie i deska rozdzielcza działały cały czas. Tylko eksport i import czekał. VIId; Podsumowanie Eksport desek rozdzielczych\ (zamówienia, klienci, portfel, porzucone wózki i inne\) i import desek rozdzielczych są budowane w tle przez jedną wspólną pulę pracowników. O 11: 23 kupca rozpoczął import klienta z około 1,05 miliona wierszy. Platforma dzieli każdy import na części 100 rzędów, więc ten stał się 10,486 części. Po każdej części platforma sprawdza, czy cały import się skończył, więc może wysłać Merchant streszczenie. Ten czek załadował do pamięci każdą część importu, wiersze włącznie: około 200 MB za sprawdzian dla tego importu, z maksymalnie pięć kontroli uruchomionych jednocześnie. Robotnikom zabrakło pamięci i zaczęli od nowa. Wnioski o wywóz z każdego Sklepu czekał za części importowe. Wysłaliśmy zmiany poziomu kodu, więc czek pyta tylko, czy jakaś część jest nadal w toku i dodaje ostateczne sumy w bazie danych. Nie ładuje już wierszy, więc jego wykorzystanie pamięci nie rośnie wraz z wielkością importu. # # Timeline\ (KSA time\) 124; czas 124; zdarzenie 124; {C: $999966} {f: 124; 11: 23 AM 124; A Merchant rozpoczyna import klienta o 1,05 miliona wierszy. O 11: 27 jest podzielony na 10,486 części. 124; 11: 25 AM 124; Powstaje pierwszy wniosek o wywóz, który musi czekać. Późniejsze żądania kolejka za części importu. 124; ~ 11: 34 AM 124; Robotnikom kończy się pamięć i zaczyna się od nowa. Stąd kończą około 5 importowanych części na restart i prawie żadnego eksportu. 124; 124; 12: 26 PM 124; A Merchant donosi, że 3 eksportu wymagane od 11: 30 AM są nadal przetwarzane. 124; ~ 1: 15 PM XI124; Inżynieria produktów rozpoczyna dochodzenie i śledzi wznowienie kontroli zakończenia przywozu. 124; 1: 54 PM XI124; Inżynieria produktów przygotowuje zmianę, z testem, który regeneruje wzrost pamięci. 124; 2: 08 PM 124; Pracownicy zaczynają oczyszczać zaległości, chociaż wciąż ponownie zaczynają od czasu do czasu. VIId; 124; 2: 26 PM 124; Ostatni opóźniony wywóz kończy. Eksport wraca do normy. 124; 2: 34 PM 124; Zmiana jest na żywo. 124; ~ 3: 00 PM XI124; pracownik ponownie zaczyna się zatrzymywać. 124; 3: 09 PM 124; 3 wnioski o wywóz, które czekały dłużej niż 3 godziny, oznaczone są jako nieaktualne. 124; 3: 10 PM 124; Duża import kończy się, z wyjątkiem jednej części 100 wierszy, które platforma ponownie automatycznie. VIId; # What was affected 124; Obszar 124; Stan podczas incydentu 124; Skąd wiemy 124; {C: $aaccff} 124; {C: $aaccff} {f: 124; Eksport desek rozdzielczych, wszystkie rodzaje i wszystkie sklepy 124; * * Opóźnione: * * 132 wnioski z 66 Sklepów, średnio 81 minut, do 3 godzin 43 minuty 124; Zapisy wniosku o wywóz. Zamówienia 72, szczegółowe zamówienia 21, portfel 11, porzucone wózki 6, klienci 6, opinie 5, przygotowanie zamówienia 4, kupony 3, inne 4. 124; Eksport, który czas minął 124; * * Nie powiodło się: * * 3 wnioski z 2 Sklepów 124; Zapisy wniosku o wywóz. Kupcy ci muszą ponownie wystąpić o wywóz. 124; 124; Eksport nadal przetwarzający 124; * * 1 wniosek * * 124; Zapisy wniosku o wywóz. Platforma ponownie próbuje go automatycznie. 124; Import klienta w Sklepie, który rozpoczął duży import 124; * * Opóźniony do 3: 12 PM: * * 9 import 124; Zapisy importu. Wszystkie części zostały ukończone z wyjątkiem jednego, który jest automatycznie próbowany. 124; 124; Przywóz z innych sklepów 124; * * Nie dotyczy * * 124; Żaden inny sklep nie rozpoczął przywozu podczas incydentu Xi124; Eksportuj zawartość pliku Xi124; * * Nie dotyczy * * Xi124; Każdy plik jest zbudowany z danych na żywo, gdy działa, więc opóźnione pliki są kompletne Xi124; 124; Sklepy, wymeldowanie i deska rozdzielcza 124; * * Nienaruszone * * Jedynie pracownicy zajmujący się wywozem i importem wznowili działalność 124; # # Action taken 1. Znalazłem przyczynę: pracownicy, którzy budują eksport i import były ponownie uruchomione, ponieważ kontrola zakończenia importu zabrakło pamięci. 2. Przesyłka zmiany poziomu kodu: kontrola zakończenia liczy oczekujące części i dodaje sumy w bazie danych zamiast wczytywania każdej części. Testy nie sprawdzają starego zachowania i przechodzą na nowy. 3. Potwierdził, że opóźniony wywóz zakończył się i zidentyfikował 3 timed-out prośby, aby wsparcie może poprosić tych Kupców o ich ponownie. # # Wnioski * * Import jednego kupca nie powinien wstrzymywać eksportu każdego innego sklepu. * * Wywóz i import mają tych samych pracowników, dlatego duży import opóźnia wszystkich. Zmiana usuwa tę przyczynę. * * Praca, która działa raz na część nie może rosnąć z wielkością całego importu. * * Kontrola zakończenia odczytuje cały import po każdej części. To było dobre dla typowego importu i zawiodło tylko dla bardzo dużego. Z tą zmianą import tego rozmiaru nie wyczerpuje już pamięci pracowników.
Automatyczne tłumaczenie oficjalnej aktualizacji incydentu.