Multithreading 并行读取单个卡桑德拉表?

Multithreading 并行读取单个卡桑德拉表?,multithreading,parallel-processing,cassandra,Multithreading,Parallel Processing,Cassandra,我有一个单节点Cassandra数据库,所有数据都存储在一个表中。在这个表中,我使用分区键和集群键对数据进行了拆分。我可以使用基于Java的客户机查询这个表以并行地读取每个分区吗 在我的客户机上,我想启动四个线程,其中每个线程将通过一个简单的查询同时查询单个Cassandra表->“select*from tablename where column1=PARTITITIONID” 我意识到实现Cassandra集群要好得多,但目前使用单节点系统是必不可少的 使用从java客户端访问Cassan

我有一个单节点Cassandra数据库,所有数据都存储在一个表中。在这个表中,我使用分区键和集群键对数据进行了拆分。我可以使用基于Java的客户机查询这个表以并行地读取每个分区吗

在我的客户机上,我想启动四个线程,其中每个线程将通过一个简单的查询同时查询单个Cassandra表->“select*from tablename where column1=PARTITITIONID”

我意识到实现Cassandra集群要好得多,但目前使用单节点系统是必不可少的

使用从java客户端访问Cassandra

根据Cassandra体系结构,您的单个Cassandra表将分布在集群中的节点之间(集群设置很明显),其中包含多个分区和分区副本(副本)。与其中一个副本联系以获取所需数据(在运行查询时)将由java驱动程序本身及其可配置集群策略处理

引用本教程中的内容:“如果一个节点接收到另一个节点上拥有的读或写操作,它将为客户端协调该请求。我们可以使用负载平衡策略来控制该操作。TokenAwarePolicy确保请求将转到负责主键指示的数据的节点或副本。它围绕dcawarerRoundRobinPolicy进行包装,以确保请求留在本地数据中心。"


希望能有所帮助!!

你好,Mayank,谢谢你的回答。我使用单节点系统是很重要的。希望你能帮我解决这个问题。如果我执行了一个查询(请参阅上面问题中的查询)从我的客户机中的每个线程,它会并行地从我的Cassandra表中读取信息吗?我知道,对于集群,它确实可以这样做,因为每个分区可能位于不同的节点上,但我不确定它是否可以位于单节点系统中,因为每个分区位于同一个(单个)节点上在这种情况下,NodeEthere与分区或节点数无关。请确保线程之间没有相互阻塞,并且JVM的单次运行只有一个群集对象。此多线程示例也可以修改为读取目的。请查看此处[]