Я работаю над веб-приложением Grails, которое по шаблонам доступа будет похоже на StackOverflow или MyLifeIsAverage - пользователи могут голосовать за записи, а их голоса используются для сортировки списка записей по количеству голосов. Голоса могут быть размещены во время выполнения отсортированных запросов выбора.
Поскольку операции выбора блокировали бы большую часть таблицы, кажется, что нормальная блокировка транзакций приведет к тому, что обновления будут выполняться вечно (при условии достаточного трафика). Кто-нибудь работал над приложением с такой схемой доступа к данным, и если да, то нашли ли вы способ, чтобы эти обновления и выборки происходили более или менее одновременно? Кто-нибудь знает, как сайты, подобные SO, подходят к этому?
Я думал сделать сортированные выборки грязными, так как это приемлемо, если они не все время обновляются. Это моя единственная идея для возможного улучшения производительности этих выборов и обновлений, но я подумал, что кто-то может знать лучший способ.