Я работаю над проверкой концепции базы данных в памяти. Я знаю о таких вещах, как redis и люблю такие вещи, как пересекающиеся множества, но этого недостаточно. Я хочу узнать, как реализовать сервис, подобный базе данных Parstream или решениям drawtoscale.
И поэтому мне нравится иметь демона, который хранит вещи в памяти.
Я сделал прототип с pyro, который делает то, что должен: генерирует случайный индекс растрового изображения и принимает битовую маску в качестве входных данных от pyro-клиента и возвращает все первичные ключи, которые соответствуют растровой маске.
Но итерации по индексу слишком медленны на несколько величин, что очевидно, поскольку это python. Я хотел бы использовать расширение C, которое выполняет сканирование индекса. Поэтому индекс растрового изображения должен храниться в памяти внутри расширения c.
Следующим шагом было бы сохранить те же данные в оперативной памяти gpu внутри моего gpu.
Не имея опыта написания расширений c и pyOpenCL, у меня вопрос такой: могу ли я хранить данные внутри расширения C и использовать python (pyro daeomon или, возможно, даже flask / tornado) только для получения и возврата запросов, не копируя весь индекс растрового изображения все время?
С уважением
Christian