BufWriter<Master<'_>> – Telegram
BufWriter<Master<'_>>
105 subscribers
451 photos
28 videos
34 files
1.7K links
https://www.patreon.com/alxe_master

Видео/статьи. Конспект и мои вольные комментарии по инженерии. тут только то, что считаю полезным для себя или других =)

#os, #cloud, #rust, #golang, #python, #javaScript, #cpp, etc
Download Telegram
кроссплатформенная компиляция в #rust огнище 🔥🔥🔥🔥🔥 вот только чтото с openssl не получилось скомпилировать. но думаю что получится скоро.
https://cloudwafer.com/blog/installing-openssl-on-ubuntu-16-04-18-04/ неплохой ман по тому как скомпилировать openssl под убунту
https://medium.com/@qertoip/how-to-generate-an-array-of-random-bytes-in-rust-ccf742a1afd5 обана. незадокументированная мелочь генерации массива рандомных значений в #rust при помощи rand
вопросы Саше
- мув памяти, как это работает ?
https://www.youtube.com/watch?v=iTJpGa3W0xc оч хорошо рассказал.

* меньше хип - меньше паузы GC. GC останавливает все потоки. поэтмоу лучше разделить #Jvm на несколько.
* мидеанная задержка меньше 1мксек. изза этого не дюрабл, и зза этого только асинхронная репликация.
* вариант 1 = общение через syscall, лупбэк и сокеты (это поход в ОС и это около 100нс*4) = дорого. лишние копирования (2+) и непредсказуемые задержки.
* вариант 2 = общение через разделяемую память. всеже есть перекопирования. минусов меньше, но есть.
* контекст свич это дорого.
* репликации без логов. просто флаг на данных, и отдельно воркер ходит и перекладывает с одной базы на другую
* асинхронная репликация нарушает консистентность мультикей обновлений.
https://www.youtube.com/watch?v=g6mso3BiMuQ голопом по европам

* #kdb. ну оооочень шустрая вещь, но дорогущая (20к в год).
* MOM. Informatica Ultra Messaging. Multicast, Hub&Spot. Store&Forward. двухфазный коммит. доставка только раз. - эта очередь умеет оба варианта. UDP multicast, UDP unicast, TCP.
* ИЛИ сквозная нумерация сообщений. Reliable Multicast. - доставка хотябы раз. потребитель отвечает что обработается только однажды. - самая популярная тема
* надежность: иерархический кворум. сиквенирование сообщений.
* тотальный EventDriven. нет статических данных, только ивент
* [спорный] способ представления фронтенда через реляционный язык.
* CEP - Continues Event Processing - не канает. так как не "мгновенно гибко"
https://www.youtube.com/watch?v=5DDEIyfw0RU

забавная база LMDB -> MDBX
* COW
* без лога транзакций, без востановления
* ACID/MVCC (https://ru.wikipedia.org/wiki/ACID, https://ru.wikipedia.org/wiki/MVCC)
* Multi Consumer Single Producer
* можно читать в режиме ядра ОС. работа с указателями - нет копирования вообще
* LIFO оч крутое решение для этой базы. снижает нагрузку, увеличивет производительность
https://www.youtube.com/watch?v=j9tlJAqMV7U
просто афигенный доклад про корутины которые могут переключаться за наносекунду. много кода на #cpp

* переключение между потоками дорого
* префетч наше все
* negative overhead abstraction, again ??? =)
https://www.chromium.org/Home/chromium-security/memory-safety
к слову про ансэйф и почему #rust может помочь в этом очень сильно. абсолютно все части с unsafe убрать нельзя, так как оно нужно иногда. но я бы сказал, что >80% - легко. и весь ансэйф станет явным и инкапсулированным
https://github.com/paulkernfeld/global-data-in-rust небольшой гайд по работе с данными в #rust которые генерируются для конфигурации или описания, меняются редко
https://nick.groenen.me/posts/rust-error-handling/ отличное овервью удобной обработки ошибок в #rust. обзор двух пакетов thiserror и anyhow. пожалуй заменю у себя старый пакет custom_error на thiserror, лучше инспекция в IDE так как просто делает дерайв со пропертями, используя стандартный инам

https://crates.io/crates/anyhow

https://crates.io/crates/thiserror
https://dev.to/citizen_stig/converting-bits-to-integers-in-rust-using-generics-2nfg когданибудь мне вновь придется пописать драйверы. но точно знаю что выберу в этот раз #rust. ну а статья рассказывает как конвертить данные с пинов оч удобно
http://jamesmcm.github.io/blog/2020/05/06/a-practical-introduction-to-async-programming-in-rust/#en эх гдеже ты была раньше, статья ? про асинхронность в #rust сразу с кодом
http://lbrandy.com/blog/2013/02/c11s-six-dots/ оказывается в #cpp есть возможно сделать шесть точек подряд и это валидно ......
https://www.youtube.com/watch?v=d8BcCLLX4N4 ты крутой если у тебя все быстро, но даже если ты суперкрутой и оптимизировал весь канал связи и драйверы и даже связался с биржей по свч, ты всеравно нарвешься на физические ограничения. специально для того что бы уровнять человеческих трейдеров с HFT трейдерами - на бирже (Nasdaq для примера) есть входные 60км кабеля

https://www.sec.gov/files/07feb18_hu_iex_becoming_an_exchange.pdf