Re[32]: Собеседования в Яндекс++
От: Lexey Россия  
Дата: 05.06.19 10:35
Оценка: +2
Здравствуйте, smeeld, Вы писали:

S>Это приватные функции, выполняющие определённую роль. Тот кусок кода-это из интерфейсной юзерспайсовой оболочки, предоставляющей доступ к функционалу высокопроизводительной системы стораджа через демон, функционирующий в юзерспайсе. Сама система-это система организации хранения данных, оптимизированная с учётом особенностей реализации драйверов шин блочных устройств в linux, а также особенностей взаимодействия кеша CPU, с областями памяти, которые выделены под зоны для DMA, в которых отображаются данные с диска. Она работает в обход подсистемы блочного IO ядра и слоя файловых систем в ядре. Основная функциональная часть реализации функционирует в kernel space. В юзерспайсе многопоточный демон, общающийся с кернел левелом через модифицированную подсистему epoll. Похожую вещь чуваки пропихивают в майнстрим. Сейчас в процессе превращения стораджа в распределённую систему хранения. Пока данные синхронизируются через упомянутый демон, организующий кластерный кворум в режиме мастер-мастер. Но есть планы реализовать обмен данными посредством RDMA. Требование к системе всегда было одно-производительность. Ради этой цели приходится идти на самые разные трюки. Порой код выглядит нечитабельным или малопонятным, но иначе никак. К тому куску выше это не относится, там тестовый набросок.


Много умных слов, которые никак не оправдывают то, что названия методов/их интерфейс не соответствуют их поведению. Нужно либо интерфейс менять так, чтобы сайдэффекты стали явно видимы, либо переименовать методы так, чтобы было видно, что это не просто get/set, но и что-то еще.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.