Tengo una aplicación donde la entidad principal es Story
y los usuarios pueden votar por cada historia. Cada voto incrementa un vote_count
para la historia.Cómo ordenar por un contador cuando se usan contadores de fragmentos
Me preocupa la contención de escritura en la historia, por lo que planeo usar un sharded counter para cada historia para rastrear los votos.
Ahora mi pregunta: ¿cómo podría obtener una lista de historias ordenadas por número de votos? Por ejemplo: muestre las 50 historias con más votos.
Mi idea inicial es realizar una tarea periódicamente que lea los valores del contador y actualice una propiedad en la historia real. Estaría bien que los resultados de la consulta por votación estuvieran un poco desactualizados.
Re optimización prematura: estoy de acuerdo en que es probablemente demasiado para una aplicación nueva sin contención de escritura demostrada, pero considere esto como una pregunta de aprendizaje y suponga que la aplicación recibirá 10 escrituras/segundo en los contadores. – cope360
Es una pregunta interesante. Nunca había escuchado hablar de contadores deshilachados antes, así que espero recibir más respuestas. –
Agregué un enlace a la pregunta si desea ver cómo funcionan. – cope360