2016-01-21 1 views
5

Мы установили Bigtable кластер с 5 узлами, а консоль GCP заявила, что должна поддерживать 50K QPS @ 6ms для чтения и записи.Достижение объявленного облака Bigtable пишет QPS

Мы пытаемся загрузить большой набор данных (~ 800M записей) с ~ 50 полями, содержащими в основном числовые данные, и несколькими короткими строками. Клавиши представляют собой 11-значные числовые строки.

При загрузке этого набора данных через API HBase с единой клиентской виртуальной машины в GCE мы наблюдаем до 4K QPS при помещении каждого поля в отдельный столбец. Мы используем одно соединение HBase, а несколько потоков (5-30) выполняем пакетные записи из 10K записей.

При объединении всех полей в один столбец (Avro-encoded, ~ 250 байт на запись) производительность записи с пакетными позициями улучшается до 10K QPS. Количество параллельных потоков, похоже, не влияет на QPS. При использовании отдельного соединения HBase для каждого потока производительность записи увеличивается до 20K QPS с 5 потоками.

Клиент VM находится в той же зоне доступности, что и кластер Bigtable, и во время загрузки он остается почти бездействующим, поэтому он не похож на узкое место на стороне клиента.

Вопросы:

  1. Из наших испытаний представляется, что запись КПТ уменьшается с числом столбцов для вставки. Ожидается ли это, и как можно количественно определить эти отношения? (Кстати, было бы здорово, если бы это было упомянуто в Bigtable performance documentation).
  2. Что нам может не хватать для достижения заявленной записи QPS? Я понимаю, что каждый узел кластера должен поддерживать 10K write QPS, однако кажется, что мы движемся против одного узла с одним соединением HBase и только против двух узлов с несколькими соединениями HBase.

ответ

1

Чтобы получить максимальную производительность при использовании Cloud Bigtable, вы должны использовать OpenSSL вместо alpn-Boot.

BufferedMutator в 0.2.3-SNAPSHOT с OpenSSL и Java8 дает 22-23K QPS для небольших (1KB) мутаций на 4 процессора и до 90K на 32-процессорной машине. 0.2.2 дал 10K-12K QPS. Для достижения максимальной производительности откройте одно соединение HBase.

+0

Спасибо Les! Похоже, что репозиторий github является частным. Можно ли опубликовать этот тест в публичном репо? –

+0

Я постараюсь сделать это с выпуском 0.2.3 - извините. –

1

Ответ на второй вопрос: нам удалось получить более 50 тыс. QPS, переключившись с пакетного HBase Puts на mutators. Мы по-прежнему используем несколько соединений HBase, одно соединение, по-видимому, ограничено пропускной способностью одного узла.

+0

Мы исправили проблему с одним подключением в предстоящем выпуске 0.2.3. 0.2.3-SNAPSHOT (по адресу http://oss.sonatype.org/content/repositories/snapshots) может получить одну и ту же пропускную способность из одного соединения. –

Смежные вопросы