Manticore 2.8.2 против 3.0 - в 2 раза быстрее в некоторых тестах

Как вы, вероятно, знаете, недавно вышло новое обновление Manticore 3.0 было выпущено .

В этом бенчмарке давайте посмотрим, стало ли оно лучше, чем 2.8. Тестовая среда была следующей:

Конфигурация идентична для обеих версий Manticore:

source full
{
  type = csvpipe
  csvpipe_command = cat /root/hacker_news_comments.prepared.csv|grep -v line_number
  csvpipe_attr_uint = story_id
  csvpipe_attr_timestamp = story_time
  csvpipe_field = story_text
  csvpipe_field = story_author
  csvpipe_attr_uint = comment_id
  csvpipe_field = comment_text
  csvpipe_field = comment_author
  csvpipe_attr_uint = comment_ranking
  csvpipe_attr_uint = author_comment_count
  csvpipe_attr_uint = story_comment_count
}

index full
{
  path = /root/idx_full
  source = full
  html_strip = 1
  mlock = 1
}

searchd
{
  listen = 9306:mysql41
  query_log = /root/query.log
  log = /root/searchd.log
  pid_file = /root/searchd.pid
  binlog_path =
  qcache_max_bytes = 0
}

Индексирование

Индексирование заняло 1303 секунды для Manticore 3.0 и 1322 секунды для Manticore 2.8.2:

Manticore 3.0:

indexing index 'full'...
collected 11654429 docs, 6198.6 MB
creating lookup: 11654.4 Kdocs, 100.0% done
creating histograms: 11654.4 Kdocs, 100.0% done
sorted 1115.7 Mhits, 100.0% done
total 11654429 docs, 6198580642 bytes
total <b>1303.470</b> sec, 4755444 bytes/sec, 8941.07 docs/sec
total 22924 reads, 16.605 sec, 238.4 kb/call avg, 0.7 msec/call avg
total 11687 writes, 13.532 sec, 855.1 kb/call avg, 1.1 msec/call avg

Manticore 2.8:

indexing index 'full'...
collected 11654429 docs, 6198.6 MB
sorted 1115.7 Mhits, 100.0% done
total 11654429 docs, 6198580642 bytes
total <b>1322.239</b> sec, 4687939 bytes/sec, 8814.15 docs/sec
total 11676 reads, 15.248 sec, 452.6 kb/call avg, 1.3 msec/call avg
total 9431 writes, 12.800 sec, 1065.3 kb/call avg, 1.3 msec/call avg

Итак, с этим набором данных и схемой индексации индексирование в 3.0 быстрее, чем в 2.8 примерно на 1,5%.

Тесты производительности


Обе инстанции были разогреты перед тестированием.

Manticore 3.0:

total 4.7G
drwx------ 2 root root 4.0K May 14 17:41 .
drwxr-xr-x 3 root root 4.0K May 14 17:40 ..
-rw-r--r-- 1 root root 362M May 14 17:24 idx_full.spa
-rw-r--r-- 1 root root 3.1G May 14 17:36 idx_full.spd
-rw-r--r-- 1 root root  90M May 14 17:36 idx_full.spe
-rw-r--r-- 1 root root  628 May 14 17:36 idx_full.sph
-rw-r--r-- 1 root root  29K May 14 17:24 idx_full.sphi
-rw-r--r-- 1 root root 6.5M May 14 17:36 idx_full.spi
-rw------- 1 root root    0 May 14 17:41 idx_full.spl
-rw-r--r-- 1 root root 1.4M May 14 17:24 idx_full.spm
-rw-r--r-- 1 root root 1.1G May 14 17:36 idx_full.spp
-rw-r--r-- 1 root root  59M May 14 17:24 idx_full.spt

Manticore 2.8:

total 4.6G
drwx------ 2 root root 4.0K May 16 18:38 .
drwxr-xr-x 3 root root 4.0K May 14 17:43 ..
-rw-r--r-- 1 root root 362M May 14 17:24 idx_full.spa
-rw-r--r-- 1 root root 3.1G May 14 17:36 idx_full.spd
-rw-r--r-- 1 root root  27M May 14 17:36 idx_full.spe
-rw-r--r-- 1 root root  601 May 14 17:36 idx_full.sph
-rw-r--r-- 1 root root 6.3M May 14 17:36 idx_full.spi
-rw-r--r-- 1 root root    0 May 14 17:24 idx_full.spk
-rw------- 1 root root    0 May 16 18:38 idx_full.spl
-rw-r--r-- 1 root root    0 May 14 17:24 idx_full.spm
-rw-r--r-- 1 root root 1.1G May 14 17:36 idx_full.spp
-rw-r--r-- 1 root root    1 May 14 17:36 idx_full.sps

Тест 1 - время обработки топ-1000 терминов из коллекции

Сначала давайте просто проведем простой тест - сколько времени потребуется, чтобы пройти через топ-1000 частых терминов коллекции и найти все документы для каждого:

Результаты таковы: 77.61 секунды для Manticore 2.8 и 71.79 секунды для Manticore 3.0.

Таким образом, в этом тесте Manticore Search 3.0 быстрее, чем предыдущая версия, на 8%.

Тест 2 - топ-1000 частых терминов из коллекции, разбитых по группам (топ 1-50, топ 50-100 и т.д.)

Теперь давайте посмотрим, лучше ли 3.0 в обработке терминов из разных групп частот. Ниже вы можете найти несколько случайных примеров из каждой из групп:

1-5050-100100-150150-200200-250250-300
onemuchoureverylesspay
withдействительновбездругойпонять
былдругойвсё ещёвнизужекаждый
300-350350-400400-450450-500500-550550-600
поискаразработчиковсоздаватьинтересобщийсопредельный
причинацелыйданныйпопробовалмодельофис
ничегоимядрузьядоступколичествооплаченный
600-650650-700700-750750-800800-850850-900
управлениесамипоpgбумагаядерный
связаномаркетингузналмнениевыбратьвысоко
идётесли непостырисксильныйтрафик
900-950950-1000
размышленияприемлемый
интерфейсмолодой
ответанглийский


Manticore 2.8 в среднем быстрее, чем 3.0 на 0,4% по задержке и обеспечивает на 0,5% более высокую пропускную способность. Это находится в пределах диапазона ошибки.

Тест 3 - топ 1000 часто встречающихся терминов из коллекции, разбитой на группы + 1 термин из группы 1-100

Let’s see how it works when you have one very frequent term and another less frequent from different frequency groups. The examples are:

1-5050-100100-150150-200200-250250-300
другие могуттот нетна черезо егодолжен большойs всегда
нет естьмой useдругие почемубыло деньбыло датьим позволить
здесь некоторыебыли известныs гдекак точнобыло большоездесь e
300-350350-400400-450450-500500-550550-600
кто разработчикэто bookсейчас одиннет доступана solutionих назвали
работа началасьодин ycombinatorиз addиспользовать sitesзнает microsoftкак в основном
в часахсейчас valueтакже данокоторый builtчем powerранней
600-650650-700700-750750-800800-850850-900
знает наукудолжен marketingдолжны kidsчислаих driveкто высоко
если agreeнесколько minutest poststime pgтам pickесть opportunity
бы связанныеесть countryполучить postshttp educationтакже extremelyмог бы тема
900-950950-1000
любая сторонапо особенно
только ответмогли бы компьютеры
люди firefoxо компьютерах
![](95-latency-of-top-1000-frequent-terms-from-Hacker-News-colleciton-by-groups-1-term-from-group-1-100-ms-1-optimized.webp) ![](Throughput-of-top-1000-frequent-terms-from-Hacker-News-colleciton-by-groups-1-term-from-group-1-100-1-optimized.webp) **Manticore 3.0 показывает в среднем на 86.3% более высокую пропускную способность и на 109,5% меньшую латентность 95p.** ### Тест 4 - топ 1000 частых терминов из коллекции, разбитых по группам + 1 термин из группы 1-100, оба термина заключены в кавычки, чтобы составить фразу

Установить Manticore Search

Установить Manticore Search
1-5050-100100-150150-200200-250250-300
"работа не""ты их""мы все еще""свой""я получаю""мог бы запустить"
"мой для""самый""твоя работа""используй получил""здесь плохо""тогда когда-либо"
"но это""получить ком""я первый""сейчас день""вверх помощь""тогда делать"
300-350350-400400-450450-500500-550550-600
"это информация""их сообщество""1 забота""что мобильный""поздравляю""смотреть"
"ком сторона""этот сервер""ком позиция""при огромном""как остановить""написано"
"он смотрит""был x""время стать""попробовали""должен придти""другие звуки"
600-650650-700700-750750-800800-850850-900
"по api""не скоро""заинтересован""было много""исправление""вещи абсолютно"
"из трех""используйте приходящие""это недостаток"