ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • To: nginx-ru@xxxxxxxxx
  • Subject: Аллокация объектов переменного размера на shared memory
  • From: "megalodon" <nginx-forum@xxxxxxxx>
  • Date: Wed, 30 Oct 2013 14:42:12 -0400
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=helium.jlkhosting.com; s=x; h=Date:Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=wYcO2HUITV20PHpxPZnBc+Z9WbFju2xuy0lKj3iSMVQ=; b=6yJ8JWilMWydsg5SEAH2Bv9nqgnj+SaJx9UyHUiFsjuZSY8UXRQcZAt4ChIBDPq4YOgEJjmwMuk6F8bCcARLb7jLfM7HDOV5StVijVB6E2CXhJnX6p051NDtJ80De2zaqZII6PvgxMBYB2jKVSLzgdEr7T7fMNx/TdcmAx+g2Ec=;

Всем привет.

Столкнулся с такой проблемой: допустим, есть дерево в 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 были выделены исключительно из него. 

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

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

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,244268,244268#msg-244268

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.