当前位置: 首页 > 知识库问答 >
问题:

实时内容排序解决方案

商棋
2023-03-14

我想在cassandra 1.2 CQL 3.0上实现一个实时的内容排名系统

示例:根据用户投票提供新闻的前10条评论

  • 用户可以评论新闻
  • 用户可以对每条评论投票+1或-1

“真实例子youtube评论”

我的解决方案是:

  • 在计数器表(content_counter)上存储投票计数器
  • 创建排名表
    null
  • 选择core FROM content_counter where content_id='x'(r:123)
  • 更新content_counter SET score=score+1(124)(或-1)

批量:

  • 删除content_comment_rank,其中content_id='x'和score=123和com_id='y'
  • 插入content_comment_rank(content_id,score,com_id)值('x',124,'y')

从content_comment_rank中选择*,其中content_id='x'限制10

这很容易,但我不确定我做得好不好,因为:

>

  • 如何处理复制和并发投票

    你对我的解决方案有什么建议?

    谢谢,

  • 共有1个答案

    田柏
    2023-03-14

    @Sebastien Kondov

    您正在复制content_comment_rank表中的计数器值(score)。Cassandra分布式计数器表content_counter和表content_comment_rank中的计数器值可能不匹配

    为了减轻这种情况,您可能希望在此表中使用仲裁一致性级别进行写入和读取,但这肯定会对性能产生影响。

    -->在并发投票时,content_counter表将提供很强的一致性。对于content_comment_rank,最后一次写入获胜

    也许有更好的办法....

    您可以阅读这篇文章:http://nathanmarz.com/blog/how-to-beat-the-cap-theorum.html

      null
     类似资料:
    • 本文向大家介绍Spring关闭Tomcat Servlet容器时内存泄漏问题解决方案,包括了Spring关闭Tomcat Servlet容器时内存泄漏问题解决方案的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Spring关闭Tomcat Servlet容器时内存泄漏问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 出错信息

    • 问题内容: 我已经弄清楚了如何正确地对a 进行排序,但是当表单元发生更改时,我无法弄清楚如何自动更新排序顺序。现在,我有这段代码(很长),主要是基于Java教程的How to Use Tables中的代码 。我强调了我所做的更改。在这种情况下,新添加的值可以正确排序,但是当我进入编辑值时,即使我打电话给我,它似乎也没有采取任何措施。 简而言之,当模型中的数据值更改时,如何使表重新排序? 问题答案:

    • 本文向大家介绍详解MySQL实时同步到Oracle解决方案,包括了详解MySQL实时同步到Oracle解决方案的使用技巧和注意事项,需要的朋友参考一下 1 需求概述 将MySQL5.6生产库多张表的数据实时同步到Oracle11g数据仓库,MySQL历史数据700G,平均每天产生50G左右日志文件,MySQL日志空间50G,超过后滚动删除日志文件。整个同步过程不可影响MySQL业务操作。 2 技术

    • 所以我这里有这个问题。我想编码非抢占优先级调度算法,我的方法是对它进行排序,因为你想像算法所说的那样首先获得最高优先级。如果我在Array中有优先级值。例如:job1=2;job2=5;job3=2;job4=4。 算法是,当存在两个或多个具有同等优先级的作业时,将处理器分配给“最先到达”的作业。从上面的示例可以看出,它应该按以下方式排序(降序):job2-job4-job1-job3。 由于jo

    • 我用elementui写了一个表格但是没有分页,所以导致排序速度特别慢,这种有什么特殊的处理方法嘛,纯前端解决? 怎么能优化一下速度

    • 本文向大家介绍解决TreeSet类的排序问题,包括了解决TreeSet类的排序问题的使用技巧和注意事项,需要的朋友参考一下 TreeSet支持两种排序方法:自然排序和定制排序。TreeSet默认采用自然排序。 1、自然排序 TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间大小关系,然后将集合元素按升序排列,这种方式就是自然排序。(比较的前提:两个对象的类型