@dlangru

Страница 283 из 719
qwerty
10.10.2017
07:35:44
так. Мне копать в event loop?

Maxim
10.10.2017
07:36:34
https://habrahabr.ru/post/336498/ вот, вроде, в статье как раз рассказывают, как event loop в libuv устроен)

Google
Maxim
10.10.2017
07:38:49
я сам, если честно, только абстрактные знания по этому поводу имею и не отказался бы от списка более подробных статей)

про epoll, Kqueue вот это вот все)

Dmitry
10.10.2017
07:44:11
"За всю мою карьеру, необходимость написать код, который запускает второй рабочий поток, возникала, вероятно, менее полудюжины раз." и это говорят люди которые разработкой по 20 лет занимаются

Stepanos
10.10.2017
07:45:27
меня больше интересует масштабирование, безопасность чем что там в кишках делается - вот тут если кто может что-то посоветоввать, буду рад

Dmitry
10.10.2017
07:46:30
Я много читал последние дни про это прихожу к мысли что лучшее масштабирование это изолированные данные и по процессу на ядро. Все остальное — тупо оптимизация кода

Stepanos
10.10.2017
07:47:25
что есть "изолированные данные"?

Maxim
10.10.2017
07:47:52
thread local?)

Stepanos
10.10.2017
07:48:18
у меня 8 серверов. надо чтоб данньіе дублировались минимум 3-4 раза + нагрузка делилась максимально равномерно

Dmitry
10.10.2017
07:50:00
ну типа потоки не пытаются одни и те же данные по очереди менять т.к. судя по тому что я прочитал попытка разграничить доступ будет приводить к просадке производительности

Maxim
10.10.2017
07:52:14
ну и осталось сделать еще один шаг и признаться, что для распараллеливания идеально подходит функциональное программирование)

Stepanos
10.10.2017
07:54:07
ну распаралеливание разве не на стороне БД будет?

3 дня назад решил поюзать dlangide - 3 бага за пол часа запостил, в сравнении с тем что бьіло год назад - намного лучше, но все еще пилить и пилить(

Google
qwerty
10.10.2017
08:53:49
http://aosabook.org/en/index.html ?
мне кажется тут про всякое разное, не только про то, что мне надо. Верно?

Dmitry
10.10.2017
08:54:27
да, там надо выбирать проекты подходящие

тот же nginx описан

Dmitry
10.10.2017
08:58:06
Любое gui приложение до эры файберов)
А разве файберы в гуи используются?

Oleg
10.10.2017
09:03:19
А разве файберы в гуи используются?
А в чём фундаментальная проблема? Может 'не стиль', но мне норм, приложения 4 так сделал...

Maxim
10.10.2017
09:04:46
как мы тут пришли недавно к выводу в C# async/await выполняет роль тех же файберов и активно используется в GUI)

Dmitry
10.10.2017
09:06:11
А в чём фундаментальная проблема? Может 'не стиль', но мне норм, приложения 4 так сделал...
просто как я понимаю они для совсем уж легковесных операций были задуманы. Хотя по идее их можно же и как потоки использовать не вызывая yield

Pavel
10.10.2017
09:07:25
Они для IO операций задуманы

Maxim
10.10.2017
09:07:31
если не вызывать yield, в файберах нет особого смысла

Pavel
10.10.2017
09:08:05
Там где надо ждать пока запишутся данные в сокет или прочитаются.

Andrey
10.10.2017
09:08:26
как мы тут пришли недавно к выводу в C# async/await выполняет роль тех же файберов и активно используется в GUI)
ды к чудес то не бывает, либо процессы, либо потоки, либо игрища с сохранением контектса)

Oleg
10.10.2017
09:10:32
И, следовательно, бессмысленно в gui

Dmitry
10.10.2017
09:11:09
а ты в каких местах для гуи его использовал?

Oleg
10.10.2017
09:14:09
Dmitry
10.10.2017
09:14:37
ну какие операции ты в гуи проводил в файберах. к примеру отрисовка окна и рассчеты в самой проге

Oleg
10.10.2017
09:15:54
Ну у гуя есть свой эвентлуп, его пошагово можно крутить в файбере, можно на его основе запускать работу файбера

Но по хорошему, всё-таки это 'не стиль')

Dmitry
10.10.2017
12:02:34
Вот что нашел про Ди и потокобезопасность: "However, the other major thing that needs to be pointed out is that all data in D is thread-local by default. So, you can't access data across threads unless it's explicitly shared. So, you don't normally have to worry about thread safety at all. It's only when you explicitly share data that it's an issue."

Google
Maxim
10.10.2017
12:08:27
ну, на самом деле, утврждение из разряда «за употребление алкоголя в нашей стране расстреливают, поэтому в большинстве случаев вам не нужно беспокоиться об алкогольной зависимости. Но в случае, если вы регулярно употребляете алкоголь у себя в подвале, вам стоит задуматься о том, что зависимость можеть развиться»)

Oleg
10.10.2017
12:09:08
Да и вроде это давно известная всем тема

Ну, всмысле, что это не недавно появилось и они эту систему типов и сам tls позиционируют как одну из ключевых фич

Dmitry
10.10.2017
12:11:36
В D1 вроде бы не так было...

Maxim
10.10.2017
12:11:39
ну так-то да, скажем так, встроенная в язык защита от выстрела в ногу

но как только понадобится обмениваться данными между потоками, появятся все те же прелести, что и в C/C++

Dmitry
10.10.2017
12:12:19
И да, я праивльно понимаю, что в других языках Java/C#/python такого меньше и *не все* данные тред-локал?

Maxim
10.10.2017
12:12:55
в языках, где нет данных)

Eto
10.10.2017
12:13:31
?

Maxim
10.10.2017
12:13:55
ну функциональщина там всякая, но что-то она с трудом взлетает

Eto
10.10.2017
12:14:32
Функциональщина выглядит очень прелестно, пока не встаёт надобность в IO.

Maxim
10.10.2017
12:15:01
другими словами, пока она не встречает «данные» на свем пути)

нет в жизни счастья

Eto
10.10.2017
12:15:42
Скорее побочные эффекты, чем данные.

Maxim
10.10.2017
12:16:06
ну да, они и есть)

грубо говоря, функция, которая возвращает разные значения при разных входных параматерах автоматом превращается в некую «переменную», хранящую состояние, что ломает концепцию сферических функциональных языков в вакууме

и тут начинаются всякие мьютексы и обмен сообщениями

Dmitry
10.10.2017
12:19:24
А концепция месседж-пассинг это попытка реализовать пококобезопасность или это немного не о том?

Google
Oleg
10.10.2017
12:20:49
В D система типов не позволит те же проблемы поиметь что и в C++

Dmitry
10.10.2017
12:22:04
а какие к примеру?

Stepanos
10.10.2017
12:35:33
чтоб если один сервер накроется, ничего не случилось плохого с данньіми

как рейд-массив

но на уровне не дисков, а серверов

например. в одном дата-центре что-то случится с инетом или светом...

Pavel
10.10.2017
12:37:37
У меня как раз вчера был порыв начать пилить систему синхронизации на D, но погуглив я понял что все уже давно придумано и разработано :)

Ievgenii
10.10.2017
12:52:05
Что-то я не понял, а БД на что?

Или о каких данных идёт речь?

Admin
ERROR: S client not available

Pavel
10.10.2017
12:53:14
Файлы

Ievgenii
10.10.2017
12:55:23
В таком случае делается централизованная система хранения файлов, которая сама по себе распределенная

Аналог S3

Но на уровне app его дублировать - не верно

Точнее можно, но этим должно заниматься не основное приложение, а то, которое отвечает за его (файла) хранение

Не то, что производит бизнес логику

Основное приложение должно по API получать/обновлять/удалять эти файлы из второго приложения, которое отвечает исключительно за его хранение и, возможно, за его масштабирование...

Как пример - MongoFS

Не твоё приложение его (файл) масштабирует, а "сторедж", в лице MongoFS

Google
Ievgenii
10.10.2017
12:59:58
Тогда ты не ограничен 8ю серверами или какой-то иной инфроструктурой...

Pavel
10.10.2017
13:00:02
Ну вот есть решения вроде GlusterFS

Но он, как мне сказали, жрет ресурсы

Ievgenii
10.10.2017
13:00:14
Их много

То же сепх

Pavel
10.10.2017
13:00:20
Есть более легковесные

ceph это жесть )

Ievgenii
10.10.2017
13:00:46
Согласен, его нужно уметь готовить

Pavel
10.10.2017
13:00:57
Требует спец. разметки диска, двойного резервирования, минимум 3 ноды в кластере и кучу других оверхедов

Ievgenii
10.10.2017
13:01:04
Но он реально крут, если его верно настроить.

Так что ты подумай в эту сторону, а не дублирования.

Pavel
10.10.2017
13:02:25
Зачем мне думать в эту сторону? Вся его крутость мне совершенно не нужна.

Нужно просто синхронизировать пару десятков гигов файлов между двумя серверами. Без отказоустойчивости и транзакционности.

Ievgenii
10.10.2017
13:02:51
У меня в загашник есть идея написать распределенную систему сообщений, но времени до нее добраться нет :(

Я Степаносу отвечал :)

Ну так рсинк тебе в помощь!

Самое что не есть простое решение

Положи файл и засинкай его

Oleg
10.10.2017
17:51:11
Новый dmd вышел

Eto
10.10.2017
17:53:25
Чего там хорошего?

2.076.1 https://dlang.org/changelog/2.076.1.html Просто кучка багфиксов.

Oleg
10.10.2017
18:20:48
2.076.1 https://dlang.org/changelog/2.076.1.html Просто кучка багфиксов.
По мне так багфиксы это очень хорошо

Eto
10.10.2017
18:23:03
Это верно.

Страница 283 из 719