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
https://docs.google.com/presentation/d/1VnisvNEUj0Q7JzHbvGqTOVM9zcLuHhBOwg4aaTx6cMQ/edit#slide=id.p причина почему #cpp это боль. название говорит за себя. нужен целый гайд что бы понять как оно работает. вообще не смешно
https://blog.reverberate.org/2020/05/12/optimizing-date-algorithms.html про оптимизации превращения даты в юникс эпоху, магические числа, #fortran #c с бенчмарками
https://blog.reverberate.org/2009/01/llvm-bitcode-vs-protocol-buffers.html прям по свежему. недавно копал разного вида бенчмарки мгновенной десериализации данных, и тут старая статья про биткод #llvm и #protobuf... если коротко то бикод выиграл по месту... по остальным показателям протобаф ообошел. НО в моих бенчах на #rust имплементация протобафов получилась чуть ли не самая тормозная и в результате выбрал малоизвестную либу speedy которая работает так же как bincode но оптимизирована по скорости загрузки в память сразу в нужном виде (что критично важно)
https://habr.com/ru/post/460295/ ансэйф в #rust. Если коротко то компилятор гарантирует отсутствие сигфолдов, но иногда надо манипулировать указателями и там нужен ансэйф
О ролях и шилдочках в разработке
https://doc.rust-lang.org/std/mem/fn.replace.html
наконец добрались руки везде где надо mem::replace прописать. 0.4секунды из 4.6сек сэкономлено. #rust
кроссплатформенная компиляция в #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% - легко. и весь ансэйф станет явным и инкапсулированным