Per quanto riguarda la soluzione alternativa, dovrebbe essere relativamente sicuro farlo? Non mi preoccupa il tempo di inattività, ma solo il rischio di rompere qualcosa.
Stiamo usando il singolo contenitore standard app.yml. Per alleggerire il carico sul web, pensi che usare la modalità sola lettura ed eseguire ./launcher stop app, ./launcher start app prima di applicare la soluzione alternativa sia sufficiente?
Grazie Sam, ho applicato la soluzione alternativa. Tuttavia, non ho ricevuto alcun feedback dopo aver inserito:
ALTER TABLE notifications ALTER COLUMN id SET DATA TYPE bigint
Non sono sicuro che sia ancora in elaborazione. Attualmente ricevo lo stesso errore (nell’elenco /sidekiq dead, per gli ultimi tentativi di ‘appena ora’) per:
L’ho eseguito (nessuna conferma o riscontro ricevuto, come nel caso precedente). Il forum non ha rallentato, quindi non sono sicuro che abbia funzionato. Sto ricevendo gli stessi errori al momento.
Forse sarebbe meglio se aspettassi la migrazione ufficiale.
Sei curioso di sapere dove ti trovi ora su questo problema? Gli errori sono cessati?
Inizialmente avevamo pensato di effettuare una migrazione ufficiale, ma il rischio supera di gran lunga il beneficio. È estremamente raro imbattersi in database con più di 2.147.483.647 post. 2,1 miliardi è un numero davvero enorme.
Lo svantaggio dell’aumento delle dimensioni ovunque è che aumentano i requisiti di archiviazione.
La situazione attuale è che stiamo valutando di aggiungere un task rake che “libera spazio” nel caso raro in cui si abbiano tabelle in Discourse contenenti 2 miliardi di righe (o che ne abbiano contenute 2 miliardi in passato).
Ho appena aggiornato alla versione 2.8.0.beta6 e continuo a ricevere errori di “integer out of range”.
Penso che il problema sia legato alle notifiche, che hanno raggiunto un numero enorme, il che rende più realistico il raggiungimento del limite rispetto al numero di post. Molti argomenti grandi con numerose risposte, like, ecc., provenienti da diversi utenti, possono generare un gran numero di notifiche.
Abbiamo appena riscontrato questo problema anche nella nostra configurazione (devforum.roblox.com)! Stiamo eseguendo la v2.8.9, ma aggiorneremo presto alla 3.0.1.
Abbiamo notato che qualcosa non andava quando gli utenti hanno iniziato a vedere 403/500 mentre cercavano di mettere “mi piace” o togliere “mi piace” ai post.
Sì, questo rimane l’unico workaround qui. Sono preoccupato di cambiarlo nel core, ma immagino che questo continuerà a succedere su forum giganteschi se non lo risolveremo.
Lo svantaggio è l’aumento dello spazio di archiviazione.
Sai se ci sono utilizzi nel servizio post_actions (o da qualche parte nel processo di notifica) che potrebbero ancora aspettarsi interi dopo aver eseguito ALTER?
Stiamo riscontrando errori 5xx nelle chiamate like/unlike a /post_actions con la risposta
{"errors":["The requested URL or resource could not be found."],"error_type":"not_found"}
Inoltre, alcuni job falliscono intorno alle notifiche (Jobs::BookmarkReminderNotifications, Jobs::GrantAnniversaryBadges, Jobs::PostAlert).
Ho aggiunto il backtrace per PostAlert nel mio messaggio precedente; sembra che ci sia un problema lanciato per un limite intero da consolidate_or_create in notification.rb.
Per il nostro utilizzo, l’aumento dello spazio di archiviazione non è una grossa preoccupazione se possiamo ripristinare la funzionalità