Ho un database replicato (non SQL, un triplo store, ma le specifiche non dovrebbero importare troppo) in esecuzione su diversi host. Ciascuno di essi contiene una copia del database che viene aggiornata alimentando da una certa fonte esterna e le copie devono essere identiche. Tuttavia, risulta che non sono esattamente identici - c'è una varianza nel conteggio dei record tra i database. Ogni database ha circa 2 miliardi di voci, e la differenza è relativamente piccola - circa lo 0,05% - ma ciò significa che ci sono circa un milione di record che sono in qualche modo sbagliati. Probabilmente a causa di qualche bug nel processo di aggiornamento, ma ho difficoltà a trovare cosa sia esattamente sbagliato. Il cambiamento non è dovuto al ritardo di replica, poiché il ritardo è piccolo (secondi) e il numero di record aggiornati al secondo (~ decine, forse un paio di centinaia se le cose si attivano) è molto più piccolo della differenza di dimensione.
Sarebbe molto utile sapere quali record non corrispondono, ma non sono esattamente sicuro di come si confrontino 2 miliardi di record in un DB di produzione che cambiano ogni secondo. Se faccio solo un dump - che può richiedere molto tempo, almeno ore - e lo confronta con un altro DB - che richiederà anche del tempo - la differenza potrebbe essere dovuta al fatto che i DB sono cambiati da allora.
Quindi, sto cercando idee su come trovare quei record diversi. Non ho bisogno di tutti loro - avere anche una sola istanza sarebbe già utile - ma non sono sicuro di come trovarne una anche in modo efficiente.