有没有办法为cassandra或hector使用astyanax进行异步put?

有没有办法为cassandra或hector使用astyanax进行异步put?,cassandra,hector,astyanax,Cassandra,Hector,Astyanax,我想在cassandra中输入和输出一些文件,因为我们已经在使用它,而不是建立一个完整的hadoop分布式文件系统。atyanax或hector中是否有任何异步输入,我会在完成时提供回调,这样我就可以避免在写入1000个条目时1000个调用的1毫秒网络延迟(也分为几行和列,以便并行地流式传输到几个服务器,然后在流式传输完成后返回所有响应/回调)。Hector或astyanax支持这一点吗 看起来astyanax支持查询回调,所以我想我可以使用主键将文件流式返回astyanax 谢谢, DeanC

我想在cassandra中输入和输出一些文件,因为我们已经在使用它,而不是建立一个完整的hadoop分布式文件系统。atyanax或hector中是否有任何异步输入,我会在完成时提供回调,这样我就可以避免在写入1000个条目时1000个调用的1毫秒网络延迟(也分为几行和列,以便并行地流式传输到几个服务器,然后在流式传输完成后返回所有响应/回调)。Hector或astyanax支持这一点吗

看起来astyanax支持查询回调,所以我想我可以使用主键将文件流式返回astyanax

谢谢,
Dean

Cassandra实际上不支持通过thrift API进行流媒体传输。此外,将文件分解为一个单独的变异批,将数据分散到多个行和列可能非常危险。这可能会导致cassandra上的堆崩溃,或者您也可能会遇到1MB套接字写入缓冲区限制,在某些错误情况下,这实际上会导致thrift连接无限期挂起(尽管我认为这可能在cassandra的最新版本中得到修复)


Astyanax中新的分块对象存储配方(https://github.com/Netflix/astyanax/wiki/Chunked-Object-Store)基于我们在Netflix在Cassandra中存储大型对象的经验,并提供了一个简单的API来为您处理所有的分块和并行化。它仍然可以对cassandra进行1000次调用(取决于您的文件大小和块大小),但也可以为您处理所有重试和并行化。读取文件也是如此。API将读取数据块并将它们重新组装成一个OutputStream

astyanax没有经过thrift api吗?我听说thrift最近支持Asynchronous(它仍然是请求/回复,但有希望通过与我不同的nio通道的线程池得到回复)。此外,我还研究了astyanax分块,并对必须配置X线程感到困惑,因为如果它是异步的,您可以写、写、写而不读,并且应该只需要一个线程,对不对?我的意思是,在我的例子中,我只是通过astyanax通过http上传流,那么为什么每次上传操作都要使用多个线程呢?