2012-02-21 78 views
0

我正在研究内存数据库的概念验证。我知道像redis这样的东西,喜欢相交集等东西,但这还不够。我想知道如何实现一个类似于parstream数据库或者解压缩解决方案的服务。 因此我喜欢有一个守护进程来保存内存中的东西。 我用pyro做了一个原型,它做它应该做的:生成一个随机位图索引并接受一个位图掩码作为来自pyro客户端的输入并返回所有与位图掩码匹配的主键。 但迭代索引太慢了一些幅度,这是显而易见的,因为它是python。我想使用一个C扩展索引扫描。因此,位图索引应该保存在c扩展名的内存中。 下一步将是保持gpu内的相同数据在我的GPU内迭代。python c扩展/ opencl守护进程

没有写c扩展和pyOpenCL的经验,我的问题是:我可以保留数据在我的C扩展中,并使用python(pyro daeomon或者甚至flask/tornado)来接收和返回查询而不复制整个位图索引每时每刻?

问候 基督教

+0

听起来很有趣。你有关于它的博客吗? – smartmeta 2013-09-27 07:34:19

回答

0

是,C扩展可以有分配的内部结构,但一定需要时正确破坏你的数据。 您也可以将代码编写为C/C++ DLL,并使用ctypes python扩展来直接访问C函数并将它们传递给C变量(ints,char *等)。