Рівні ізоляції транзакцій у БД
Доволі детальний огляд аномалій у БД, рівнів ізоляції, які дозволяються уникнути аномалії, та імплементації цих рівнів. Багато використовую джерела та свої коментарі, в кінці декілька чит-шитів.
![Картинка довгочиту](https://cdn.drukarnia.com.ua/6449890f38cd2dd0b1d354fd/images/articles/preview/u6cXj6V_pDYIrZoDbya.webp)
Доволі детальний огляд аномалій у БД, рівнів ізоляції, які дозволяються уникнути аномалії, та імплементації цих рівнів. Багато використовую джерела та свої коментарі, в кінці декілька чит-шитів.
Хешування паролів - це важливий елемент захисту інформації в сучасних системах. Використання солі в хешуванні додає додатковий рівень безпеки, а алгоритм BCrypt дозволяє забезпечити високу стійкість до атак грубою силою та інших видів атак.
Пост про функціональну залежність в реляційних множинах. Визначення. Повторення значень в атрибуті. Приклад з п'ятьма атрибутами. Тривіальна залежність. Замикання. залежностей та атрибутів. Незвідні множини. Використання
Пост про те, як сервіс надає своєму користувачу гарантії і те, як ці гарантії необхідно формувати.
Стаття про черги в Rabbit. Кворум черги. Raft консенсус алгоритм. Типи конфірмів і ановледжментів. Типи черг. V1 vs V2. Фічі черг. Використання, недоліки та переваги.
Хоча сокет - це один файловий дескриптор, він є двонаправленим каналом комунікації, який використовується для одночасного відправлення і отримання даних. Операційна система та мережеві протоколи забезпечують управління потоками даних, що дозволяє коректно розрізняти дані
Пост про порівняння протоколів у Rabbit. Різні версії Advanced Message Queuing Protocol. Недоліки та переваги, способи використання.
Пост про Spring Statemachine. Глосарій. Моніторинг. Безпека. Детальний розбір прикладу комплексної машини станів.
Сервер в свою чергу повертає відповідь із 101 статус кодом — що так, давай змінимо протокол між тобою і мною. Тепер будемо використовувати вебсокети. Потім, після з’єднання, я розсилаю всім клієнтам інфомацію про нового користуча (і собі також, не робив додаткових перевірок).
Продовження розробки телеграм бота з попередніх частин. Там ми мінімально налаштовували середовище, а зараз детальніше про саму ідею.
В попередній частині я купив сервер, створив телеграм бота та успішно задеплоїв його на віддаленій машині. Але, кому потрібен бот, який не вміє працювати з даними? Тому, поділюсь як я розширив бота та конфігурацію, додавши PostgreSQL.
Ми часто з другом пишемо телеграм ботів для своїх потреб та інколи брейнштормимо різні ідеї для класного проєкту. Декілька днів тому, я задумався про те, щоб взяти хостинг, оскільки Free Tier на AWS закінчився, а платні тарифи там трохи кусаються.
Пост про всі класи, які надає Spring Security для кодування пароля, короткий опис сучасних та застарілих.
Стаття про бінарні дерева. Алгоритми. Різниця між графом і деревом. Складність алгоритмів для дерева. Число Стралера. Обхід дерев. Використання та порівняння дерев.
Стаття про детальний огляд AOP в Java. Weaving: CTW, LTW, RTW. Способи використання. Порівняння інструментів, пояснення анотацій, конфігурування, термінологія.
Десь вискочив OutOfMemory. Як взнати, що є причиною? Чи достатньо буде треддампу (в нас є декілька потоків, аутофмеморі міг викинутися в іншому потоці, який просто десь створив новий об'єкт, але реальна проблема в іншому потоці)?
Консенсус в розподілених системах — це фундаментальний принцип, який дозволяє декільком взаємопов'язаним вузлам (або процесам) у системі досягти загальної домовленості щодо певного даних або стану системи, незважаючи на наявність помилок або відмов деяких вузлів.
Стаття про продюсери і консюмери в Kafka. Producers, Consumers, Consumer groups, Rebalancing, Message delivery semantics, Offsets, Kafka partition picking, Avoiding duplicates, Message order maintaining, How many partitions should I choose for topic? Strategy for partitioning)
Коментар про використання функціонального стилю в програмуванні на Java для покращення читання коду і його підтримки.
Java Software Engineer
Java Software Engineer