Snusmumriken
Luvit и openresty — более чем нормальные решения для лютого хайлоада, и они отлично справляются с задачей, если писать под них с учётом специфики.
аннлн
«openresty» переводится как «я не осилил настроить nginx» же, да?
Snusmumriken
Не надо тут провокаций ))
аннлн
шутка наполовину шутка
аннлн
серьёзно, чем openresty отличается от nginx+ngx_lua, кроме брендинга и модулей изкоробки?
Snusmumriken
Как будто нгинкс более сложен в настройке чем рестя.
аннлн
ну здрасьте, кодовая база одна и та же
Snusmumriken
Как это опровергает мои слова?
Korsar
Snusmumriken
Luvit и openresty — более чем нормальные решения для лютого хайлоада, и они отлично справляются с задачей, если писать под них с учётом специфики.
Недостатков всего три:
1. Luajit плохо работает со слишком большими объёмами логики (кол-во скомпиленных трасс может привести к лютым замедлениям, но это относится к тру-бизнес-приложениям, с миллиардами строк кода)
2. Сборка мусора идёт по довольно древним алгоритмам, генеративный впилили в 5.4, но до luajit он не дойдёт
3. Кошмарная функция хеширования строк, если ты работаешь с очень большим количеством почти одинаковых строк — можешь напороться на то, что система скажет "кря".
Но это относится к самому luajit'у. Не к openresty/luvit, которые его используют.
А не использовать luajit — быть самому себе злобным буратиной.
аннлн
само так
аннлн
просто не всегда есть возможность вкорячить nginx, например
Snusmumriken
Это когда нет возможности вкорячить нгинкс, но есть возможность вкорячить луа?
аннлн
freeswitch
Snusmumriken
Ну тогда мы берём и используем средства freeswitch.
аннлн
там кроме луа нет средств
Snusmumriken
Ужс
аннлн
инкрементирую этого
Snusmumriken
А ещё, два года жизни потраченных впустую.
Если в кайф — пожалуйста. Но не надо это делать всем подряд ))
Korsar
Korsar
оно как пример было, не надо продолжать дискусиию на эту тему )
аннлн
а ещё в nginx/openresty очень не хватает FIFO с мьютексами
Snusmumriken
За это время, ты мог получить куда более актуальные для тебя знания, которые действительно пригодятся. Подтянуть иностранные языки, научиться музицировать, путешествовать, наполнять жизнь смыслом. Время — это ресурс, который можно перераспределять.
аннлн
аннлн
7.00000002
Snusmumriken
Это бот, я его удолил.
аннлн
я тоже
Snusmumriken
Тогда и тебя удолю ))
аннлн
Snusmumriken
Ну тогда я тебе сейчас дам десять томов Советской Энциклопедии, а ты будешь зубрить ))
Зазубришь — найду ещё чего-нибудь из той же серии.
аннлн
tarantool всем хорош, кроме того, что:
- репозиторий работает через раз, однажды неделю висел 302 на главную мылору (О_Ошто)
- из исходников не собирается (ага, кто бы сомневался)
- документация и примеры имеют отношения к реальности и даже не запускается при дефолтном конфиге
- МЕЙЛ РУ
аннлн
держи
Snusmumriken
Если зависимость от сложных технологий создаёт для тебя неудобства — старые знания становятся для тебя актуальными.
Слово "актуальный", в данном случае, означает "востребованный для тебя в данный момент". Не "востребованный работодателем и/или твоей мамой".
И я давал примеры про путешествия и музицирование, то есть твои личные навыки-знания, можно было логически вывести смысл.
Korsar
openresty - хорошая, стабильная сборка для приложений с высокой нагрузкой, например мы используем ее в первую очередь в сервисе-АПИшке для приема клиентского трафика.
Я в свое время под впечатлением даже внутреннюю апишку реализовал на openresty же. В связке с arangodb - супер 🙂
аннлн
> хорошая, стабильная сборка
как зверьсд?
аннлн
(извините, личная неприязнь к опенрести)
Korsar
так обычно джуниоры говорят ) но я, конечно, не вешаю ярлыков 🙂
Snusmumriken
Ты зацепился за слово, я дал определение, всё ок ))
аннлн
а срач то развели, хосспади
Snusmumriken
Ну чего? Учебники по математике для 5-11 классов ты сам в гугле найдёшь. Как пройдёшь — можешь тут поковырять, весьма доходчиво и со списками "необходимых знаний" для каждой темы: http://mathprofi.ru/
Korsar
https://www.litres.ru/charlz-petcold/kod-taynyy-yazyk-informatiki/
тем, кому хочется с основ начать 😃
Snusmumriken
Хорошая книжка, врубает мозги по теории информации.
Правда, мало связано прям с математикой.
Korsar
да, хороша, рекомендую
аннлн
так в том-то и дело, что маны прочитаны до дыр, а готовые решения типа lanes или llthreads либо не готовые, либо не решения
Snusmumriken
Тогда почему раньше был сегфолт а теперь нет? _))
аннлн
потому что double free corruption
Snusmumriken
Хорошоу
аннлн
Snusmumriken
Ну, вродь ещё можно разметить кусок shared memory, и гонять данные там, это быстрее сокетов.
аннлн
всякие луашные объекты не погонять
Snusmumriken
Конечно нет.
Snusmumriken
А зачем?
аннлн
действительно, зачем preemptive multitasking нужен
Snusmumriken
Луашные объекты (даже просто таблично-метатабличная фигня а не cdata) — очень сложна даже в копировании. А между стейтами их нужно именно что копировать, потому что стейт держит его в себе и никуда не отдаёт.
аннлн
простая задачка: пул соединений к постгресу, который шарится между «тяжёлыми потоками», как ты это называл (те самые кол_во_ядер-1)
аннлн
и нет, tcp keepalive не подходит
Snusmumriken
Так что давай просто строчки кидай в shared-memory.
А preemptive multitasking — делай средствами самих луа с корутинами. Это не сложно. Для этого не нужны тяжёлые потоки и разные стейты. Внутри одного стейта получишь свою мультитаску, по приёму строчек из сокета/шаред-мемори.
Snusmumriken
Одного универсального решения нет, иначе бы оно давно было и активно использовалось. Приходится комбинировать.
аннлн
ну вон чуть выше конкретная таска
Snusmumriken
Snusmumriken
Примерно так же работает, например, openal: есть поток со звуком, который всё микширует, а другие потоки в приложении шлют ему: "хочу проиграть вот это и вот это".
аннлн
вот примерно то, что я хочу
аннлн
восстанови линку
Snusmumriken
https://www.tarantool.io/ru/doc/1.10/reference/reference_lua/fiber/
Snusmumriken
Файберы — аналог корутин. Все файберы выполняются в одном настоящем потоке. Или там нагромоздили извращений. А ещё, я не уверен что там можно шарить объекты.
Arslan
Шо за фигня с линками? Он только гит пропускает?
аннлн
Arslan
Ясно
аннлн
«выглядит надёжно»
Snusmumriken
Более чем.
Snusmumriken
По крайней мере, куда надёжнее десяти копий пула в каждом хард-треде ))
Если что, каждый хард-тред ОС имеет раздельную память. Он не может лезть в память других тредов и дёргать объекты там. Можно скопировать, можно пихнуть в шаред-кусок, но не лазать когда вздумается.
Snusmumriken
Поэтому пересылаем строчки, и грустим о несовершенстве компьютерных систем.
аннлн
алло, pthreads используют clone(), а не fork()
Snusmumriken
Клон, да. Копия, нет? ))