Vertica- легко на основную память?

Я новичок в Vertica и читал много материалов, но пока мало что применял. Из того, что я прочитал до сих пор, я понимаю, что хранилище только для чтения (ROS), которое действительно отвечает на запросы, полностью работает с диска и вообще не использует основную память. Означает ли это, что в Vertica нет концепции кэширования запросов? Это из-за архитектуры «ничего общего»?

Учитывая вышеизложенное, означает ли это, что Vertica на самом деле не нужны ГБ памяти для ответов на запросы? Я знаю, что Хранилище только для записи (WOS) работает в основном из памяти, и поэтому WOS потребуется память. Но, учитывая использование OLAP (где чтение более сложное по сравнению с записью), кажется, что Vertica легко справляется с памятью.

Правильно ли я понимаю?


person museshad    schedule 30.07.2012    source источник


Ответы (4)


На производительность Vertica влияет объем памяти.

При попытке присоединиться к 2 большим таблицам (например) он пытается выполнить хеширование/слияние/независимое соединение в памяти. Когда данные не помещаются, они «проливаются на диск», что приводит к гораздо более медленному процессу, чем в памяти.

Vertica будет работать, но негативно скажется на производительности, если у нее недостаточно памяти. (Достаточно оставлено намеренно расплывчатым)

person QuinnG    schedule 30.07.2012

ROS и WOS означают хранилище, оптимизированное для чтения, и хранилище, оптимизированное для записи, а не только для чтения и только для записи.

По своему собственному расписанию Vertica будет перемещать кортежи из WOS в ROS по таблице за таблицей. В конечном счете, производительность чтения/запроса зависит от того, как данные хранятся на диске.

Конечно, как описывает Ния, существуют ограничения памяти. Но вы никогда не должны рассматривать данные в WOS как постоянно находящиеся там. Ожидайте, что в конечном итоге он перейдет в ROS в долгосрочной перспективе.

person kimbo305    schedule 30.07.2012

RE: Nija - на самом деле, MergeJoin и другие оптимизации на основе сортировки используют относительно мало памяти.

WOS используется для амортизации затрат на выполнение множества небольших загрузок путем сбора кортежей из нескольких загрузок в оптимизированном для записи хранилище и их сортировки/записи в более крупном пакете. Обычно это не повышает производительность запросов.

person Stephen    schedule 31.07.2012

В дополнение к комментарию Стивена, использование сбора данных WOS ухудшит производительность вставки, но если вы будете вставлять более 100 МБ за раз, лучше обойти WOS и вставить напрямую в ROS, таким образом, Vertica не будет вынуждена перемещайте данные с помощью кортежей, и это позволит избежать других неоптимальных ситуаций с распределением данных.

person Fernando Vizer    schedule 01.08.2012