Рубрика «Compaction»

Задача

Даны массивы a и out. Нужно записать в out подряд, без пробелов, только те элементы a, которые удовлетворяют заданному условию. В статье — условие a[i] > threshold, a[i] ∈ (0, 1), threshold ∈ {0, 0.5, 1}.

Почему компилятор сдается

Один if внутри цикла копирования роняет скорость с 112 до 2.6 GB/s. Компилятор не может векторизовать — в NEON нет подходящей для этого инструкции. Статья о том, как собрать ее.

auto copy_if(const float* a, float* out, size_t n) {
    size_t j = 0;
    for (size_t i = 0; i < n; ++i) {
        if (a[i] > 0) out[j++] = a[i];
    }
    return j;
}

В задаче copy_if выходной курсор (в коде - jЧитать полностью »

В предыдущей статье о Vinyl я рассказывал об архитектуре LSM-движка Tarantool. Восемь лет, прошедшие с момента с написания статьи, показали, что Vinyl сразу получился идеальным и менять его не нужно :). Если серьёзно, сегодня я расскажу о тех изменениях, которые мы внесли в алгоритм в форке Tarantool от Picodata, и неизбежно коснусь более глубокой проблематики работы LSM-деревьев, а конкретнее – работы планировщика слияний (compaction scheduler).

Читать полностью »
Iceberg

Iceberg

Всем привет!
Хочу поделиться нашим опытом использования Apache Iceberg 1.8+ с каталогом AWS Glue и Spark 3.5.

Расскажу:

  • С какими проблемами мы столкнулись;

  • Почему compaction внезапно перестал помогать;

  • Как мы чинили compaction.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js