The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Релиз nginx 1.23.0"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Релиз nginx 1.23.0"  +/
Сообщение от opennews (ok), 21-Июн-22, 22:47 
Представлен первый выпуск новой основной ветки nginx 1.23.0, в рамках которой будет продолжено развитие новых возможностей. В параллельно поддерживаемой стабильной ветке 1.22.x вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей. В следующем году на базе основной ветки 1.23.x будет сформирована стабильная ветка 1.24...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=57385

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Релиз nginx 1.23.0"  +1 +/
Сообщение от topin89 (ok), 21-Июн-22, 22:47 
> Переделан внутренний API, строки заголовков теперь передаются в форме связанного списка.

Кто пограмотнее, объясните, какая с этого выгода.
Я искал время от времени случаи, где связный список лучше, чем указатели на массив/двустороннюю очередь, и не мог найти ничего полезней чем "ну когда нужно вставлять один контейнер в середину другого", и даже там на коротких массивах выгоды как правило не было.
Раз перешли на них, должна быть хорошая причина, о которой я не догадываюсь.

Ответить | Правка | Наверх | Cообщить модератору

5. "Релиз nginx 1.23.0"  +1 +/
Сообщение от Онаним (?), 21-Июн-22, 23:09 
Быстрая вставка, быстрое удаление элемента - единственное, что могу придумать.

Больше ничего в голову не приходит. Ещё есть конечно вариант, когда суммарный размер всех указателей сопоставим с размером L1D хотя бы, а останавливаться при проходе надо максимум посерёдке - но это явно не тот случай.

Ответить | Правка | Наверх | Cообщить модератору

21. "Релиз nginx 1.23.0"  +/
Сообщение от Аноним (-), 22-Июн-22, 01:21 
https://github.com/matklad/vec-vs-list
Ответить | Правка | Наверх | Cообщить модератору

42. "Релиз nginx 1.23.0"  +/
Сообщение от Онаним (?), 22-Июн-22, 22:25 
Что за ...ня, написанная на ...не, простите?
Ответить | Правка | Наверх | Cообщить модератору

43. "Релиз nginx 1.23.0"  +/
Сообщение от Онаним (?), 22-Июн-22, 22:26 
А самое главное - какое эта ^_^ня имеет отношение к nginx?
Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

49. "Релиз nginx 1.23.0"  +/
Сообщение от Онаним (?), 22-Июн-22, 22:52 
Я даже тебе объясню, почему вообще мимо тазика: реализация этих примитивов на езычге, где работа с указателями реализована через libastral (или libanal), может быть совершенно неоптимальной.
Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

6. "Релиз nginx 1.23.0"  +1 +/
Сообщение от Онаним (?), 21-Июн-22, 23:10 
С другой стороны бинарный поиск в отсортированном списке - так себе затея, т.е. это tradeoff.
Вот в жизни не поверю, что у них число вставок-удалений превышает число поисков.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

35. "Релиз nginx 1.23.0"  +/
Сообщение от topin89 (ok), 22-Июн-22, 10:41 
> С другой стороны бинарный поиск в отсортированном списке - так себе затея,
> т.е. это tradeoff.
> Вот в жизни не поверю, что у них число вставок-удалений превышает число
> поисков.

Да даже если и превышает, ну будет массив указателей на строки размером на 10-30 строк, там вставка не будет сильно медленней, чем в списках. Из-за высокой локальности оно может ещё и быстрее оказаться.

Ответить | Правка | Наверх | Cообщить модератору

44. "Релиз nginx 1.23.0"  +/
Сообщение от Онаним (?), 22-Июн-22, 22:27 
Вставка в связанный список - это 2 указателя заменить, если по-минимуму. O(1)
Вставка в массив указателей - это, простите, сдвинуть N указателей. O(N)
Ответить | Правка | Наверх | Cообщить модератору

45. "Релиз nginx 1.23.0"  +/
Сообщение от Онаним (?), 22-Июн-22, 22:29 
(кроме вырожденного случая вставки в конец массива)
Ответить | Правка | Наверх | Cообщить модератору

53. "Релиз nginx 1.23.0"  +/
Сообщение от 1 (??), 23-Июн-22, 09:36 
Наоборот, вырожденный случай вставлять в середину массива (это ж надо иметь отсортированный массив), а так всегда добавляется в конец.
Ответить | Правка | Наверх | Cообщить модератору

54. "Релиз nginx 1.23.0"  +/
Сообщение от Онаним (?), 23-Июн-22, 13:39 
Вставка в конец массива (или, если быть совсем точным - всегда в одинаково отдалённую от конца массива позицию) - это O(1), не зависит от числа элементов в массиве, поэтому и вырожденный случай.
Ответить | Правка | Наверх | Cообщить модератору

12. "Релиз nginx 1.23.0"  +1 +/
Сообщение от native76 (ok), 21-Июн-22, 23:34 
возможно, меньшая фрагментация памяти - возможность pre-alloc/pool блоков одинакового размера. при высокой нагрузке это может быть важно.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

40. "Релиз nginx 1.23.0"  +/
Сообщение от topin89 (ok), 22-Июн-22, 14:52 
> возможно, меньшая фрагментация памяти - возможность pre-alloc/pool блоков одинакового
> размера. при высокой нагрузке это может быть важно.

Почитал про Pool Allocator, спасибо за место, где в связном списке больше смысла, чем в простом массиве. Но не могу понять по коду nginx, чанки ли там или просто список сам по себе.

Ответить | Правка | Наверх | Cообщить модератору

46. "Релиз nginx 1.23.0"  +/
Сообщение от Онаним (?), 22-Июн-22, 22:34 
Блоки одинакового размера для содержимого хедеров?
Не, конечно это nginx, там всякое может быть. Но не верю.
Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

20. "Релиз nginx 1.23.0"  +1 +/
Сообщение от Аноним (20), 22-Июн-22, 01:11 
Выгода от связного списка есть, только если он intrusive, как в ядре линуховом. В остальных случаях классическая реализация с указателем на следующую ноду что асимптотически так себе, что с точки зрения фрагментации кучи. Не зря же в той же жабе в 90% процентов случаев пользуются реализацией на основе массива.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

36. "Релиз nginx 1.23.0"  +/
Сообщение от topin89 (ok), 22-Июн-22, 11:07 
> Выгода от связного списка есть, только если он intrusive, как в ядре линуховом.

А какая? Есть какая информация в духе "вот тут мы заменили X на linked list -- и стало слегка/гораздо быстрее", может в LKLM где-нибудь?

Ответить | Правка | Наверх | Cообщить модератору

37. "Релиз nginx 1.23.0"  –4 +/
Сообщение от Аноним (37), 22-Июн-22, 11:28 
Аргументация о том что так называемые "программисты на java", не знающие чем фон неймановская архитектура отличается от гарвардской, используют массивы, а не связные списки скорее говорит в пользу связных списков.
То что "макака-формошлёп" будет использовать неподходящие структуры данных понятно любому настоящему программисту на ANSI C, обильно комментирующему новости на opennet
Ответить | Правка | К родителю #20 | Наверх | Cообщить модератору

38. "Релиз nginx 1.23.0"  +3 +/
Сообщение от 1 (??), 22-Июн-22, 12:29 
Ну и как поможет "программисту на java" знания о том, перемешиваются данные и код или нет, в выборе структуры данных ?
Вопрос был о том, почему перешли с массива на связный список.
Ответить | Правка | Наверх | Cообщить модератору

28. "Релиз nginx 1.23.0"  +2 +/
Сообщение от Lucky (??), 22-Июн-22, 05:23 
> Раз перешли на них, должна быть хорошая причина, о которой я не догадываюсь

На самом деле возможность обходить нормальные заготовки как связный список там есть давно. Просто в некоторых специфичных случаях использовались ещё и массивы (например для multi headers - когда в сообщении может быть несколько заголовков с одинаковым именем, как в случае с Set-Cookie). Из-за этого итерация по заголовкам и их значениям превращалась в квест на костылях. Теперь структуры данных привели к одному виду.

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

34. "Релиз nginx 1.23.0"  +/
Сообщение от topin89 (ok), 22-Июн-22, 10:37 
>> Раз перешли на них, должна быть хорошая причина, о которой я не догадываюсь
> Теперь структуры данных привели к одному виду.

Но зачем было в принципе список использовать? Почему не перейти к массивам? Почему в принципе был выбран именно список? А то вдруг он выбран давным-давно и теперь все хотели бы заменить, но обратная совместимость и не чини что работает.

Ответить | Правка | Наверх | Cообщить модератору

32. "Релиз nginx 1.23.0"  +3 +/
Сообщение от 1 (??), 22-Июн-22, 09:11 
Читаю ветку и душа радуется. Наконец-то что-то вменяемое, без "ненужно", раста и несоответствий в версиях питона (недавно, как раз, попал в Jinja2 версии 3.1).
Вполне себе профессиональная беседа.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

47. "Релиз nginx 1.23.0"  +/
Сообщение от Онаним (?), 22-Июн-22, 22:38 
Пришёл на ум ещё один вариант, когда связный список эффективнее - это когда его надо часто на запись блокировать между потоками (вставка-удаление). В случае массива указателей придётся блокировать таковой целиком (или извращаться с частичной блокировкой). В случае связного списка блокировать придётся только непосредственно участвующие записи (одну или две, в зависимости односвязный или двусвязный это список).

Но это опять не про nginx.

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

48. "Релиз nginx 1.23.0"  +/
Сообщение от Онаним (?), 22-Июн-22, 22:42 
Ну и на вставку в связный список аналогично хорошо RCU ложится, если возможность в соседнем потоке пролистать список в stale state без нового элемента не напрягает. На удаление - на любителя, прочитать удалённую запись обычно не есть гуд.
Ответить | Правка | Наверх | Cообщить модератору

7. "Релиз nginx 1.23.0"  +6 +/
Сообщение от Гость (??), 21-Июн-22, 23:17 
Зачем ссылка на изменения на английском и зачем было их переводить по своему? есть же русская версия http://nginx.org/ru/CHANGES.ru
Ответить | Правка | Наверх | Cообщить модератору

14. "Релиз nginx 1.23.0"  –2 +/
Сообщение от Мохнатый пись (?), 22-Июн-22, 00:15 
Когда квик в стабильную версию добавят?
Ответить | Правка | Наверх | Cообщить модератору

17. "Релиз nginx 1.23.0"  +2 +/
Сообщение от Аноним (17), 22-Июн-22, 00:59 
>Когда квик в стабильную версию добавят?

Гуглу или Фэйсбуку с их миллионами TCP коннектами понятно зачем квик.
А тебе оно зачем?

Ответить | Правка | Наверх | Cообщить модератору

23. "Релиз nginx 1.23.0"  +/
Сообщение от Аноним (23), 22-Июн-22, 01:50 
Ну я замечал, что в 2 раза быстрее сайты загружаются. Так 2 секунды где-то до появления контента, а с этим около 0.5с. В консоли смотрел-сравнивал разницу, там пишет время загрузки ресурсов.
Ответить | Правка | Наверх | Cообщить модератору

26. "Релиз nginx 1.23.0"  +/
Сообщение от Аноним (26), 22-Июн-22, 03:33 
У тебя цифры не сходятся, перепроверь свои навыки в арифметике.
Ответить | Правка | Наверх | Cообщить модератору

33. "Релиз nginx 1.23.0"  +/
Сообщение от another_one (ok), 22-Июн-22, 09:59 
"быстрее сайты загружаются" и  "где-то до появления контента" не одно и тоже, может в "2 раза" это до события "load".
Ответить | Правка | Наверх | Cообщить модератору

39. "Релиз nginx 1.23.0"  +1 +/
Сообщение от Аноним (39), 22-Июн-22, 13:11 
> Ну я замечал, что в 2 раза быстрее сайты загружаются. Так 2 секунды где-то до появления контента, а с этим около 0.5с.

Это баг в Vue, должны починить. Загрузка сайтов не должна занимать менее двух секунд.

Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

25. "Релиз nginx 1.23.0"  +/
Сообщение от Аноним (25), 22-Июн-22, 03:24 
Quic нужен, чтобы под него маскировать любой другой UDP трафик.
Ответить | Правка | К родителю #17 | Наверх | Cообщить модератору

30. "Релиз nginx 1.23.0"  +/
Сообщение от Аноним (30), 22-Июн-22, 08:48 
откуда дровишки?
Ответить | Правка | Наверх | Cообщить модератору

31. "Релиз nginx 1.23.0"  +/
Сообщение от Аноним (25), 22-Июн-22, 08:58 
Для начала от проекта v2ray и ему подобных. Которые уже кое-что подобное сделали, только на старой версии квика.

Но для того, чтобы не светиться как новогодняя ёлка, нужно чтобы квик стал популярным.

Ну а потом придёт masque wg, и маскировка будет встроена в сам протокол.

Ответить | Правка | Наверх | Cообщить модератору

19. "Релиз nginx 1.23.0"  +1 +/
Сообщение от Аноним (17), 22-Июн-22, 01:06 
Хайп "передовых технологий" поймал?
Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

22. "Релиз nginx 1.23.0"  +/
Сообщение от Ilya Indigo (ok), 22-Июн-22, 01:29 
Не раньше, чем поддержку оного в openssl добавят.
Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

50. "Релиз nginx 1.23.0"  +/
Сообщение от Вы забыли заполнить поле Name (?), 23-Июн-22, 03:41 
Без Сысоева уже не то...
Ответить | Правка | Наверх | Cообщить модератору

51. "Релиз nginx 1.23.0"  +/
Сообщение от Онаним (?), 23-Июн-22, 09:05 
Тем, кто ещё на этом сидит, ещё не начал phaseout, и не готов платить за поддержку - я бы уже советовал задуматься.
Ответить | Правка | Наверх | Cообщить модератору

56. "Релиз nginx 1.23.0"  +/
Сообщение от Вы забыли заполнить поле Name (?), 24-Июн-22, 08:30 
> Тем, кто ещё на этом сидит, ещё не начал phaseout, и не
> готов платить за поддержку - я бы уже советовал задуматься.

По факту проект закончен. Так бы выпилить из него ненужное типа njs (есть nginx-lua кому надо).

Ответить | Правка | Наверх | Cообщить модератору

57. "Релиз nginx 1.23.0"  +/
Сообщение от Онаним (?), 24-Июн-22, 22:39 
Если из нгинха выпилить ненужное - не останется ничего.
Ответить | Правка | Наверх | Cообщить модератору

52. "Релиз nginx 1.23.0"  +/
Сообщение от Аноним (-), 23-Июн-22, 09:13 
>Без Сысоева уже не то...

Без твоего ценного мнения, всё - уже то.

Ответить | Правка | К родителю #50 | Наверх | Cообщить модератору

55. "Релиз nginx 1.23.0"  +/
Сообщение от Какаянахренразница (ok), 23-Июн-22, 13:55 
Зачастили как-то релизы nginx-а...
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру