Здесь ситуация: у меня массивный объект, который нужно загрузить в память. Настолько большой, что если он будет загружен в два раза, он выйдет за пределы доступной памяти на моей машине (и нет, я не могу обновить память). Я также не могу разделить его на любые более мелкие куски. Для простоты позвольте сказать, что объект составляет 600 МБ, и у меня только 1 ГБ ОЗУ. Мне нужно использовать этот объект из веб-приложения, которое выполняется в нескольких процессах, и я не контролирую, как они порождаются (это делает сторонний балансировщик нагрузки), поэтому я не могу полагаться только на создание объекта в какой-то основной поток/процесс, а затем нереста детей. Это также исключает возможность использования чего-то вроде POSH, потому что он полагается на собственный пользовательский вызов fork. Я также не могу использовать что-то вроде базы данных SQLite памяти, mmap или posix_ipc, sysv_ipc и shm-модулей, потому что они действуют как файл в памяти, и эти данные должны быть объектом для меня, чтобы использовать его. Используя один из них, я должен был бы прочитать его как файл, а затем превратить его в объект в каждом отдельном процессе и BAM, с ошибкой сегментации, перейдя по пределу памяти машины, потому что я просто попытался загрузить вторую копию.
Должно быть какое-то время для хранения объекта Python в памяти (а не как файл/строка/сериализованный/маринованный) и иметь доступ к нему из любого процесса. Я просто не знаю, что это. Я просмотрел StackOverflow и Google и не могу найти ответ на этот вопрос, поэтому я надеюсь, что кто-то может мне помочь.