Estrazione parziale: Merchant Importazioni ed Esportazioni
- identified
Ci troviamo di fronte e abbiamo identificato un parziale outage nel nostro servizio Merchant Imports & Exports e stiamo lavorando per risolverlo il prima possibile.
- resolved
Questo incidente è stato risolto.
- postmortem
Traduzione: ** Esportazioni e importazioni di cartone in ritardo per tutti i negozi** | | | | --- | | **Date** | 25, 2026, 11:25 AM fino alle 2:26 PM\(UTC\+3, KSA time\). Durata: 3 ore 1 minuto | **Tipo di incidente** | Degrado di servizio: elaborazione di sfondo | | **Title** | Un'importazione di clienti molto grande bancarotta esporta e importa per tutti i negozi | | **Impact** | 132 richieste di esportazione da 66 Store sono state ritardate, in media, di 81 minuti e fino a 3 ore 43 minuti. 3 di loro hanno tempo e devono essere richiesti di nuovo. Le importazioni del cliente del negozio che ha iniziato la grande importazione sono state ritardate fino alle 15:12 PM. | ** Impatto totale sull'aggiornamento | Nessun outage. Negozi, checkout e il cruscotto ha funzionato tutto il tempo. Solo le esportazioni e le importazioni aspettavano. # # Le esportazioni di Dashboard \(ordini, clienti, portafogli, carrelli abbandonati e altri\) e le importazioni di cruscotto sono costruite sullo sfondo da un pool condiviso di lavoratori. Alle 11:23 un Merchant ha iniziato un'importazione di clienti con circa 1.05 milioni di righe. La piattaforma si divide ogni importazione in parti di 100 file, così questo è diventato 10.486 parti. Dopo ogni parte, la piattaforma controlla se l'intera importazione è finita, in modo da poter inviare al Merchant un riassunto. Quel controllo ha caricato ogni parte dell'importazione, le righe incluse, in memoria: circa 200 MB per assegno per questa importazione, con fino a cinque controlli in esecuzione subito. I lavoratori sono scappati di memoria e si riavviarono di nuovo e di nuovo. Le richieste di esportazione da ogni negozio hanno aspettato dietro le parti di importazione. Abbiamo spedito un cambiamento di livello di codice, quindi il controllo chiede solo se qualsiasi parte è ancora in sospeso e aggiunge i totali finali nel database. Non carica più le righe, quindi il suo uso di memoria non cresce più con la dimensione dell'importazione. ## Timeline \(KSA time\) | Time | Event | | --- | | 11:23 | A Merchant inizia un'importazione di circa 1.05 milioni di righe. Alle 11:27 è diviso in 10,486 parti. | | 11:25 | Viene creata la prima richiesta di esportazione che deve aspettare. Successivamente richiede la coda dietro le parti di importazione. | | ~11:34 I lavoratori cominciano a scappare dalla memoria e riavviarsi. Da qui terminano circa 5 parti di importazione per riavvio e quasi nessuna esportazione. # | 12:26 PM | A Merchant riferisce di sostenere che 3 esportazioni richieste dalle 11:30 sono ancora in fase di elaborazione. | ~1:15 PM | Product Engineering avvia l'indagine e traccia i riavviamenti al controllo di completamento dell'importazione. | 1:54 PM | Product Engineering prepara il cambiamento, con un test che riproduce la crescita della memoria. | 2:08 PM | I lavoratori iniziano a sgomberare il backlog, anche se si riavviano ancora di volta. # | 2:26 PM | L'ultima esportazione ritardata termina. Le esportazioni sono tornate alla normalità. | 2:34 PM | Il cambiamento è vivo. | | ~3:00 PM | Il lavoratore si riavvia. | | 3:09 PM | 3 richieste di esportazione che avevano aspettato più di 3 ore sono contrassegnate come timed out. | 3:10 PM | La grande importazione termina, ad eccezione di una parte di 100 righe che la piattaforma si ricarica automaticamente. # # Che cosa à ̈ stato interessato # | Area | Stato durante l'incidente | Come sappiamo | | --- | --- | Esportazioni di Dashboard, tutti i tipi e tutti i negozi | **Delayed:** 132 richieste da 66 Stores, 81 minuti in media, fino a 3 ore 43 minuti | Registrati di richiesta di esportazione. Ordini 72, ordini dettagliati 21, portafoglio 11, carrelli abbandonati 6, clienti 6, recensioni 5, preparazione ordine 4, tagliandi 3, altro 4. | Exports that timed out | **Failed:** 3 richieste da 2 Stores | Esporta record di richiesta. Questi Mercanti hanno bisogno di chiedere di nuovo l'esportazione. # | Exports still processing | **1 request** | Esporta record di richiesta. La piattaforma lo rimetta automaticamente. | | Importazioni del cliente del negozio che ha iniziato la grande importazione | **Delayed fino alle 15:12 PM:** 9 importazioni | Import records. Tutte le parti finite tranne una, che viene ritratta automaticamente. # | Importazioni da altri negozi | ** Non interessato | Nessun altro negozio ha iniziato un'importazione durante l'incidente | | Esportare il contenuto dei file | **Non interessato** | Ogni file è costruito da dati in tempo reale quando viene eseguito, quindi i file ritardati sono completi | | Negozi, checkout e cruscotto | **Non interessati | Solo i lavoratori di base per le esportazioni e le importazioni riavvicinati | ## Azione presa 1. Trovata la causa: i lavoratori che costruiscono le esportazioni e le importazioni stavano riavviando perché il controllo di completamento delle importazioni è finito di memoria. 2. Spedito un cambiamento di livello di codice: il controllo di completamento conta parti in sospeso e aggiunge i totali nel database invece di caricare ogni parte. Un test fallisce sul vecchio comportamento e passa al nuovo. 3. Confermato che le esportazioni ritardate sono finite, e ha identificato le 3 richieste timed-out in modo che il sostegno può chiedere a quei Mercanti di chiedere di nuovo loro. ## Conclusioni **L'importazione di One Merchant non dovrebbe contenere le esportazioni di ogni altro Store.** Le esportazioni e le importazioni condividono gli stessi lavoratori, quindi un'importazione pesante ritarda tutti. Il cambiamento rimuove questa causa. **Il lavoro che funziona una volta per parte non deve crescere con le dimensioni dell'intera importazione** Il controllo di completamento legge l'intera importazione dopo ogni parte. Questo è stato bene per le importazioni tipiche e non è riuscito solo per uno molto grande. Con il cambiamento, un'importazione di questa dimensione non esaurisce più la memoria dei lavoratori.
Tradotto automaticamente dall'aggiornamento ufficiale dell'incidente.