Хэш-таблицы в nginx

Igor Sysoev is at rambler-co.ru
Tue Jul 25 20:20:40 MSD 2006


On Tue, 25 Jul 2006, Konstantin Sorokin wrote:

> Игорь, а я правильно понимаю, что судя по (src/core/ngx_hash.c)
>
> if (names[n].key.len >= 255) {
>    ngx_log_error(NGX_LOG_EMERG, hinit->pool->log, 0,
>        "the \"%V\" value to hash is to long: %uz bytes, "
>        "the maximum length can be 255 bytes only",
>        &names[n].key, names[n].key.len);
>    return NGX_ERROR;
> }
>
> Длина ключа в nginx'овой хэш-таблице не может быть больше 255 ? А почему
> так ? Что может поломаться, если это увеличить ?

Потому что корзина устроена так:

void*   указатель
u_char  длина ключа1
u_char  ключ1[длина]
u-char  выравнивание до указателя

void*   указатель
u_char  длина ключа2
u_char  ключ2[длина]
u-char  выравнивание до указателя

...

void*   NULL


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list