The OpenNET Project / Index page

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



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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #5, #6, #12, #20, #28, #32, #47

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #21

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #23, #25

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

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

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #34

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

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

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

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

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

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #44

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #48

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

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

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

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

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

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #57

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


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

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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