Подборка объединяет вопросы, отмеченные на этапах интервью в Small. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: go, database, sql.
Репликация в базах данных — это процесс копирования и синхронизации данных между несколькими серверами для повышения доступности и отказоустойчивости. Основные способы реализации:
Выбор уровня изоляции транзакций зависит от требований к согласованности данных и производительности. В Go, при работе с базами данных через драйверы, обычно используются стандартные уровни изоляции, такие как:
Модель OSI (Open Systems Interconnection) — это эталонная сетевая модель, которая описывает семь уровней взаимодействия в компьютерных сетях. Она помогает стандартизировать функции сетевых протоколов и устройств.
Интерфейсы в Go нужны для определения поведения объектов без привязки к конкретной реализации. Они позволяют писать более гибкий и расширяемый код, поддерживают полиморфизм и облегчают тестирование.
Данные в OpenTelemetry коллектор (Collector) поступают от приложений через экспортёры (exporters), которые используют протоколы OTLP (OpenTelemetry Protocol), Jaeger, Zipkin и др.
Stream-запросы в gRPC лучше использовать, когда нужно передавать или получать большой поток данных или множество сообщений, а не одноразовый ответ. Это особенно полезно в следующих случаях:
Массивы в Go имеют фиксированный размер, который задаётся при объявлении, и этот размер является частью типа. Это значит, что массивы не гибкие и не могут динамически изменять длину.
Проблема деградации запросов на запись и чтение в одной таблице с индексом часто связана с ростом нагрузки и объёма данных. Для масштабирования базы данных применяют следующие методы:
Mutex (взаимное исключение) и RWMutex (мьютекс с разделением на чтение и запись) — это механизмы синхронизации в Go для защиты общих ресурсов от одновременного доступа.