Архив выступлений: 2016-2017 учебный год, весенний семестр

Аннотация доклада.
Сегодня подавляющее большинство СУБД построены на универсальных x86 процессорах. Разработчики СУБД и приложений для повышения производительности год за годом адаптируют код под распространенные аппаратные платформы и разработанное для них системное ПО, преимущественно Linux. Однако, во-первых, эти универсальные платформы не разрабатывались специально для СУБД и, как следствие, избыточны и неоптимальны; во-вторых, стоимость разработки и поддержки современных СУБД значительно превышает цену 'железа'; в-третьих, энергоэффективность аппаратуры может быть достигнута только специализацией. В четвертых, обработка множества независимых вычислительно несложных запросов требует большого кол-ва простых вычислительных ядер. Указанные соображения обуславливают возможность создания энергоэффективных СУБД на базе специализированных многоядерных процессоров.
В настоящем докладе мы рассмотрим актуальные задачи нагруженных СУБД , связанные с обработкой большого числа одновременно поступающих запросов, среди которых велика доля операций на запись. Поговорим о методах тестирования СУБД на уровне непосредственного выполнения получаемых через API запросов на чтение, вставку и удаление. Покажем, что в традиционных СУБД на базе x86 потеря производительности происходит в том числе и из-за неэффективной реализации подсистемы памяти, что негативно сказывается на производительности большинства методов синхронизации потоков. Далее мы покажем, что использование в модуле индексирования СУБД многопотокового процессора, содержащего сотни простых вычислительных ядер, позволяет эффективнее, чем x86 архитектуры, использовать доступный в рамках чипа теплопакет, а общая тегированная память позволит значительно снизить накладные расходы на синхронизацию потоков.