(я знаю, что отвечаю на свой вопрос)
В конце концов, мы решили разработать собственный протокол удаленного доступа к базе данных.Это не сложно, поскольку мы используем только базовое подмножество SQL (SELECT и UPDATE), и протокол все равно не должен понимать SQL.
Используя наш собственный протокол, мы сможем использоватьсжатие, позволяющее клиенту использовать несколько каналов TCP одновременно, максимально использовать сеть и добавить некоторое функциональное кэширование, характерное для нашего приложения.
Клиент будет нашим приложением, а сервер будет "прокси"к реальной базе данных, сидящей рядом с ней (как предложено @Tim в комментариях).
Это не единственное решение, но мы считаем, что это хороший баланс между огромной ценой репликации, сложностью разработки и ожидаемыми преимуществами.