Общая память между процессами Python

Я пытаюсь найти способ совместного использования памяти между процессами Python. В основном существуют объекты, которые несколько процессов Python должны иметь возможность читать (только читать )и использовать (без изменений ). Прямо сейчас это реализовано с помощью redis + strings + cPickle, но cPickle занимает драгоценное процессорное время, поэтому я бы не хотел его использовать. Большинство реализаций общей памяти Python, которые я видел в Интернете, похоже, требуют файлов и солений, что в основном я уже делаю и именно этого я пытаюсь избежать.

Что мне интересно, так это то, есть ли способ написать подобное... в основном базу данных/сервер объектов python в памяти -и соответствующий модуль C для взаимодействия с базой данных?

По сути, модуль C запрашивает у сервера адрес для записи объекта, сервер отвечает адресом,затем модуль запишет объект и уведомит сервер о том, что объект с заданным ключом был записан на диск в указанном месте. Затем, когда какой-либо из процессов хотел получить объект с заданным ключом, они просто запрашивали у db место в памяти для данного ключа, сервер отвечал местоположением, и модуль знал, как загрузить это пространство в память и передать объект python обратно в процесс python.

Это совершенно неразумно или просто чертовски трудно реализовать? Я гонюсь за чем-то невозможным? Любые предложения будут приветствоваться. Спасибо интернету.

11
задан nickneedsaname 2 July 2012 в 23:40
поделиться