Alexander
у Никиты libpq но бинарный протокол его
Alexander
т.е. все те же проблемы остаются
Cheese
я всегда думал, что libpq — это самый нативный способ. то есть ниже идёт только внутренный протокол, совместимость которого никто не гарантирует
Aleksei (astynax)
Потому что в Go линковать внешее не любят
Alexander
вон у Дениса, пришлось на RTS=-N1 переходить
Cheese
Alexander
ибо тормозило
Aleksei (astynax)
Кмк, поддерживать свою версию либы для постгри, это тяжко
Alexander
лучше иметь говно, которое убивает производительность на 20-99%?
Alexander
или переписать pg-simple (что не факт, что в принципе возможно)
Cheese
там свой шедулер, конкурирующий с нашим RTS?
Alexander
я думаю там выделение памяти попадающее в largeobjects или как-то на одну капабилитю
Alexander
в итоге параллельная сборка мусора деградирует до того, что только 1 тред работает
Alexander
а остальные на спинлоке
Alexander
т.е. в бизилупе
Alexander
так что работает все, а работу делает только 1
Alexander
в общем по мне так нативный драйвер (написанный в основном), это лучше чем воевать с pg-simple
Alexander
тем более, что в других языках (более чем одном) этим путем пошли достаточно успешно
A64m
уже реализован
Alexander
но он есть
Alexander
https://github.com/postgres-haskell/postgres-wire
Dmitrii
но он есть
То есть уже можно тащить в продакшн вместо postgresql-simple смело, например?
Alexander
но там нужно:
1. привязки к библиотекам persistent, opaleye, hasql, чтобы можно было взять и заменить и посмотреть что с твоим проектом
2. документация / туториалы (?)
3. утилиты (?) типа как в pgsimple есть много дополнительных фич
Alexander
нет
Alexander
т.е. нужна ещё работа поверх
Alexander
как сказал @VividDesires сделать совместимый интерфейс с pg-simple тяжело, но вот заставить более высокие либы работать поверх pg-wire можно
Alexander
вообще было желание сделать хакатон по всему этому, но не факт, что взлетит
NC
NC
А это асинхронный с бинарным форматом
NC
В теории можно переключить на текстовый и засинхронить, но у коллеги возникли дополнительные проблемы с этим год назад
NC
Собственно он подавляющую часть кода написал
Alexander
@VividDesires вообще если ты сможешь скординировать как-то effort то можно начать (у меня правда ничерта времени на opensource пока нет)
NC
Как минимум я сам начну
Alexander
вон у ребят вроде есть целые полдня*человек на opensource
Dmitrii
У нас пока еще не все свои идеи кончились для своих проектов, чтобы еще БД заниматься) Мы пока на проде используем postgresql-simple и это все равно бекенд работает в целом намного быстрей чем прошлый, написанный на Node.js И так не для всего есть библиотеки, что приходится самим писать, поэтому еще и postgresql тащить нет сил... Могу разве что так сделать!
* https://github.com/morphismtech/squeal/issues/63
Kirill
NC
Это будет считаться за рекламу компании, хех
NC
Alexander
а у меня где встречалось решение сделать 1 капабилитю было ок
Alexander
а в другом и сможет выдержать нормально нагрузку раз в 10 выше текущей
Anonymous
у нас нету ни одной приличной low level либы работающей с pg
У вас и по качеству кода нет ни одного хорошего драйвера. Помню как-то ради интереса выбрал одну реализацию, чтобы посмотреть как промышленный код на хаскелл выглядит. А там сплошной liftM5/liftA5. Выглядело так себе, крякнул и закрыл
саша
NC
Λrtem
Я как-то раз открыл код проекта на языке X, не понял его, и решил, что на языке X не бывает хорошего кода
NC
Я ковырялся в либах 2002ого и они норм были написаны
Anonymous
Зигохистоморфный
Alexander
Зигохистоморфный
саша
кислота пошла
Зигохистоморфный
саша
саша
Alexander
Anonymous
Alexander
драйвера к postgres?
Alexander
есть 3 либы которые можно назвать драйвером:
- postgres-wire (ссылку вы видели выше)
- postgresql-libpq
- odbc
посмотрите например postgresql-libpq например как самую популярную
Alexander
хотя я не уверен, что там хороший и эффективный код
Alexander
liftA* там нету
Alexander
даже не знаю в какой либе дров к pg они могли быть
Alexander
но учитывая, что это байндинг к либе - код там специфический
Vladislav
первая часть курса по хаскелю
Vladislav
вторая часть курса по хаскелю
Vladislav
15 процентов дошли до «конца» в первый раз.
из них
дошло 9 процентов на втором курсе.
итого, в хаскеле до финала доходит 1,6 процентов.
Vladislav
Это со степика
Alexander
вторая часть скучновата и сбивчива
Alexander
там возникает очущение, что ты что-то делаешь, но не ясно зачем
Vladislav
Alexander
в формате степика даже не знаю
саша
Alexander
ну там начинаются копипасты инстансов 100500 раз
Vladislav
конечно, о хаскелистах как о небожителях думают, раз они прошли такой отбор.
Alexander
т.е. оно *нужно* для понимания
Alexander
но не все выдержат
Alexander
демидовича тоже не все прорешивают