Pull to refresh
18
-3
Вадим Цесько @incubos

Главный инженер, VK

Send message

В данном случае как раз используются версии get(int index) и putInt(int index, int value) по абсолютному index, которые реализованы в HeapByteBuffer как явное чтение/запись из массива (в DirectByteBuffer — как чтение/запись из памяти), поэтому проблем нет.

Алексей, вы большие молодцы — так держать! Много лет ждал подобной конференции в РФ. Понимая, что это большой риск и из-за более узкой тематики (хотя очень перспективной), и из-за докладов на английском языке, тем не менее, искренне верю, что у вас всё получится и конференция станет регулярной.

Спасибо.
Действительно, вызов sendfile() блокируется на время чтения с диска (при отсутствии данных в дисковом кеше). Но по результатам профилирования раздатчика под нагрузкой sendfile() не является проблемой — он обслуживает proxy-запросы (HTTP) и ненадолго блокируется только в 10-20% случаях (page cache miss) на чтении с SSD.
В нашем случае количество потоков большее числа ядер в первую очередь объясняется использованием независимых пулов для различных стадий конвейера, чтобы повысить управляемость и наблюдаемость системы.
Но и блокирующие операции, конечно, присутствуют — в частности, в докладе рассматривается чтение блоков с дисков для отправки в клиентский SSL-сокет, когда мы не можем использовать sendfile(). Кроме того, запись блоков из OBS/OCS на диск при cache miss является блокирующей.

Действительно, единственный AtomicBoolean присутствует в абстрактном Actor, от которого наследуются все прикладные акторы. Правильнее было бы сказать, что в прикладном коде никакой синхронизации нет.

Ниже в комментарии приведены ссылки на варианты курсового проекта студентов Технополиса и кафедры КСиПТ ФТК СПбГПУ. В результате почти у всех получился работоспособный распределённый KV storage.
Если кому-то будет интересно, то курсовой проект лежит здесь.
Различные варианты решений можно посмотреть среди закрытых pull request'ов.
Скорее всего, авторы книги подразумевали, что в абстрактном современном ДЦ, расположенном в США, уже используется state-of-the-art охлаждение со всеми возможными трюками и на этом фоне имеет смысл заниматься проблемой лишнего преобразования энергии, для чего, в свою очередь, приходится заказывать/разрабатывать кастомные платформы и шасси. Данный пример про оптимизацию преобразования энергии приведён лишь для иллюстрации подходов, используемых в погоне за оптимизацией PUE.

Вы правы: если погружаться в особенности ДЦстроения, всё гораздо сложнее, не так однозначно и достойно отдельной лекции или даже не одной.

Спасибо за развёрнутый комментарий.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity