Welcome! Log In Create A New Profile

Advanced

Аллокация объектов переменного размера на shared memory

October 30, 2013 02:42PM
Всем привет.

Столкнулся с такой проблемой: допустим, есть дерево в shared memory, где ключ - ip адрес, а значение - структура, которая хранит определенную информацию связанную с этим ip.

С ip необходимо также связать информацию о том, на какие uri он ходил, какие рефереры присылал, какие ua, и прочие строки. Получается, примерно так: ip_tree->ip_node ---> per_ip_tree->node. Создать это не проблема, но при удалении ip_node, скажем по тайм-ауту, необходимо пройтись по всему дереву и сделать free для указателей всех нод, т.к. ноды в per_ip_tree выделялись по мере необходимости.

Тут же возникает мысль: выделить сразу большой блок и на нем сделать ngx_slab_init(). А когда нам потребуется удалить per_ip_tree - будет достаточно всего лишь сделать один free для всего этого блока, т.к. все ноды этого per_ip_tree были выделены исключительно из него.

Вопрос: адекватен ли такой подход в данной ситуации? Если нет, какие можете подсказать варианты?

Заранее всех благодарю.
Subject Author Posted

Аллокация объектов переменного размера на shared memory

megalodon October 30, 2013 02:42PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 294
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready