LINUX.ORG.RU

Сообщения netcreeper

 

Динамические структуры данных в shared memory.

Всем привет. Интересует вопрос возможности создания динамический структур данных в разделяемой памяти, либо альтернативы этому.

Есть демон. Один main-процесс и несколько форкнутых воркеров. В качестве IPC используется разделяемая память. Через shmat выделяется кусок памяти, где хранятся общие используемые структуры. Все устраивает, кроме одного, нельзя использовать STL-контейнеры. Приходится делать все на обычных массивах и наступать на ограничения, которые связаны с этим.

Некоторые «workaround», которые пришли в голову:

  • Использовать boost::ipc. Писать свои кастомные алокаторы.
  • Не форкаться. Создавать треды, тогда контейнеры использовать можно, нужно лишь позаботиться об мьютексах и т.д. и т.п.
  • Не использовать разделяемую память. Поставить тот же Redis и хранить все в нем.

Есть ли еще какие-то варианты в моем случае?

Заранее спасибо за ответы.

 , , ,

netcreeper
()

RSS подписка на новые темы