【问题标题】:Merging several concurrent Database operations into a single batch将多个并发数据库操作合并到一个批处理中
【发布时间】:2011-02-18 16:41:04
【问题描述】:

[嗨,我早上问了这个问题,但没有得到社区的任何回应或反馈..我想提出这个问题,以便真正得到周围社区的帮助..]

我正在开发一个使用 Java 并由 Cassandra-a NoSQL 数据库支持的 Web 应用程序。

Cassandra 允许高度并发的数据库操作和大量的批量操作,一次完成。 他们建议在单个批处理操作中使用批处理大小,例如数百个操作。但我无法弄清楚,如何有效地合并数百个并发用户在我的应用程序上所需/提交的数据库操作。批量合并这些操作的方法是什么?

编辑:我知道如何向数据库提交批量查询,但我正在寻找的是如何在一个批次中收集多个并发用户会话请求/提交的查询?

【问题讨论】:

    标签: java database jakarta-ee nosql cassandra


    【解决方案1】:

    您过早地进行了优化。几乎没有使用 Cassandra 的人在插入时遇到性能问题,在那些这样做的人中,我想不出任何问题是由于小批量的开销而不是内存阈值和压缩等问题。

    stress.py 和stress.java Cassandra 基准测试使用单行的批量大小。

    【讨论】:

    • 谢谢乔纳森!我只是想确保我在每个查询中执行不超过 15-25 次操作(在某些情况下更多)的批量插入,但是在 Hector 邮件列表中,我看到有些人建议以批量大小开始写入 db每个查询大约 500 列,想知道是否有任何可能的方法可以合并支持我的应用程序上的多个用户会话所需的数据库操作。我只是想确保我充分利用 cassandra 提供的设施并且完全有能力提供支持!
    【解决方案2】:

    免责声明:我没有在 Java 中使用 Cassandra 风格的数据库进行任何实际操作。

    但我真的很好奇这些缓存是如何处理的,所以我用谷歌搜索了一下,发现:

    ehCache

    Gora

    Kundera (google code, github)

    所以有人致力于为 nosql db 构建 JPA。这对我来说很有意义,因为对象图并不能很好地转换为 rdbms。见:a stackoverflow question comparing cassandra/rdmbsTed Neward on Object-Relational Impedence Mismatch

    我的意思是,有人在研究并尝试解决您所询问的问题。不过,似乎这些东西都是最前沿的。玩得开心,不要伤到自己!

    【讨论】:

      猜你喜欢
      • 2012-09-09
      • 2014-05-15
      • 1970-01-01
      • 2014-12-04
      • 2014-06-22
      • 2011-06-04
      • 2018-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多