PostgreSQL 15 изнутри. Заметки по книге

## Глава 1 ### Табличные пространства У каждой базы данных есть так называемое табличное пространство по умолчанию, в котором создаются все объекты, если явно не указать иное. В этом же табличном пространстве хранятся и объекты системного каталога.

RabbitMQ. Заметки

### Основные понятия Производитель(producer) - это приложение, которое отправляет сообщения. Очередь(queue) - это буфер, в котором хранятся сообщения. Потребитель(consumer) - это приложение, которое получает сообщения.

Битовые операции. Трюки для разработчиков

Установка n-ого бита в единицу ``` x | (1<<n) ```

Как посмотреть файлы в остановленном контейнере Docker

``` docker commit $CONTAINER_ID test_image docker run -ti --entrypoint=sh test_image docker exec --privileged $NEW_CONTAINER_ID ls -1 /var/log ```

Python. asyncio часть 6

### Многозадачность В asyncio для организации конкурентности используется кооперативная многозадачность. Когда приложение доходит до точки, в которой может подождать результата, мы явно помечаем это в коде. Поэтому другой код может работать, пока мы ждем получения результата, вычисляемого в фоновом режиме. Как только вычисление результата завершится, мы «просыпаемся» и возобновляем задачу. Это является формой конкурентности, потому что несколько задач может работать одновременно, но – и это очень важно – не параллельно, так как их выполнение чередуется. У кооперативной многозадачности есть ряд преимуществ перед вытесняющей. Во-первых, кооперативная многозадачность потребляет меньше ресурсов. Когда операционной системе нужно переключиться между потоками или процессами, мы говорим, что имеет место контекстное переключение. Это трудоемкая операция, потому что операционная система должна сохранить всю информацию о работающем процессе или потоке, чтобы потом его можно было возобновить. Второе преимущество – гранулярность. Операционная система приостанавливает поток или процесс в соответствии со своим алгоритмом планирования, но выбранный для этого момент не всегда оптимален. В случае кооперативной многозадачности мы явно помечаем точки, в которых приостановить задачу наиболее выгодно. Это дает выигрыш в эффективности, потому что мы переключаем задачи именно в тот момент, когда это нужно.