Нельзя просто забирать от одного и передавать другому.
Во-первых ни у LongPull'a, ни у Callback'а аттачи не приходят списком, обычно они приходят массивом.
Во-вторых все аттачи нужно выкачивать и перезаливать, иначе потеряем анонимность собеседников.
smail_digital, Лично я придерживаюсь простой истины: оптимальное количество потоков=(количество ядер)*2. Но для разных задач нужны разные подходы, в некоторых задачах будет оптимальнее работать количество потоков=количество ядер.
Меня за такой подход очень раскритикуют, поэтому всё же сделаю акцент на том что нужно обязательно пробовать разное количество потоков и находить оптимальное число. Минимум в данном случае -- количество ядер.
Стоит учесть, что чрезмерное увеличение числа потоков вначале будет давать минимальный прирост скорости, буквально тысячные доли миллисекунды, а потом и вовсе итоговая скорость вычислений станет ниже.
Лично я бы многопоточно INSERT'ами дописывал из второй базы в первую (если структура совпадает), самый безопасный способ, но признаю что в данном случае есть решения куда лучше - те же распределенные таблицы, про которые вам уже написали.