Как стать автором
Обновить
19
30

Багодел и токсик

Отправить сообщение

Шардирование (sharding). Эпизод 2: шардирование по гео

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров1K

Viam supervadet vadens (дорогу осилит идущий)

Есть много счастливчиков, которым повезло работать в ситуации, когда объёмы по-настоящему огромны и требования кажутся невыполнимыми. Но есть те, кому по настоящем крупно повезло! Я говорю о тех, кто решал задачи в пространствах, где размерность больше 1.

Давайте разбросаем осколки по всей земле?

Разбрасываем?
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

Шардирование (sharding). Эпизод 1: Начало и шардирование по идентификатору

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров5.8K

Divide et impera (разделяй и властвуй) – древний принцип для управления чем-то большим и сложным.

Многие из нас программируют. Многие из нас делают системы, сложные системы. Но некоторым повезло работать в ситуации, когда объёмы по-настоящему огромны и требования кажутся невыполнимыми. Шардировние – один из излюбленных счастливчиками, которых зовут приключения, приемов.

Что-нибудь разбить на кусочки – это круто! Переходите на сторону шардирования у нас есть печеньки!

За кусочками!!!
Всего голосов 22: ↑22 и ↓0+22
Комментарии7

Golang пощупаем дженерики

Время на прочтение2 мин
Количество просмотров16K

Скоро выйдет релиз 1.18 в котором появятся долгожданные дженерики. Они позволят сделать универсальные методы. Я написал пару примеров для себя. Может быть они будут интересны кому-нибудь ещё.

Давайте разберём что появилось.
Всего голосов 26: ↑21 и ↓5+16
Комментарии45

Кодогенерация в GO на примере маршалинга и анмаршалинга интерфейсных типов данных

Время на прочтение10 мин
Количество просмотров5.2K

Есть интерфейс и есть несколько типов удовлетворяющих этому интерфейсу. Хочется сделать так, что бы можно было сохранить в JSON список таких интерфейсов а потом восстановить из JSON-а этот список.

Давайте прикинем как это сделать на Go
Всего голосов 6: ↑5 и ↓1+4
Комментарии2

А давайте в Go сделаем TryLock(context.Context)

Время на прочтение3 мин
Количество просмотров4.9K

Привет!


Вэтой статье я хотел бы расcказать, как можно было бы сделать свой RWMutex, но с возможностью по таймауту или по срабатыванию контекста пропустить блокировку. То есть реализовать TryLock(context.Context) и RTryLock(context.Context), но уже для своего Mutex.


image


На картинке изображено, как нужно наливать воду в очень узкое горлышко.

Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии13

Информация

В рейтинге
189-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность

Специализация

Специалист
От 2 000 000 ₽