metaclass: (Default)
[personal profile] metaclass
В итоге, в разборки насчет использования [livejournal.com profile] dmzlj postgresql под приличной нагрузкой в системе GPS-мониторинга подключили всех до кого смогли дотянутся, вплоть до разработчиков postgresql.

Я потерял нить обсуждения где-то в конце, но судя по результатам, ключевой аспект шизы был в двух вещах: фрагментированность данных и индекса (условно говоря - на каждую интересующую нас запись нужно было читать целую страницу данных, в которой все остальное нас не касалось) и нехватка памяти для кэша, в результате чего все начинало тормозить.

В качестве решения проблемы в итоге предложили какое-то хитрое двухуровневное партиционирование, которое должно устранить проблему фрагментации - сначала партиционировать сильно актуальные данные (текущий день(неделя, месяц)) по hash id объекта, затем переносить данные в партиции по времени кусками с одинаковыми id чтобы избежать фрагментации.

Date: 2010-03-25 07:42 pm (UTC)
From: [identity profile] theiced.livejournal.com
забавно, что в случае постгре, при минимальном применении головы, это бы тоже получилось автоматически.

ну и будет учитывать то что когда я в 9 утра начал заниматься этой проблемой - то я уже не спал более суток ;]

Date: 2010-03-25 07:45 pm (UTC)
From: [identity profile] plumqqz.livejournal.com
Не получилось бы. Постгрес не умеет партиции, IOT и компрессию индексов (да и данных тоже).

Date: 2010-03-25 07:49 pm (UTC)
From: [identity profile] theiced.livejournal.com
(посмотрел на партиции) точно не умеет?

эксперты такие эксперты...

Date: 2010-03-25 07:52 pm (UTC)
From: [identity profile] plumqqz.livejournal.com
То, что в постгресе называют партициями, не партиции, но всего лишь неумелая подделка под оные. (Нет нормального секционирования индексов, не работают параметры). Внимательней овладевайте документацией.

Настоятельно рекомендую прочитать про партиции в Оракле и партиции и MDC в DB2.

Date: 2010-03-25 08:01 pm (UTC)
From: [identity profile] theiced.livejournal.com
ок. в итоге проблема была успешно решена перманентно сонным мной за рабочий день. великие оракель эксперты всё ещё ставили бы оракель.

Date: 2010-03-26 04:16 am (UTC)
From: (Anonymous)
Эксперты по экспертам оракеля такие эксперты

Date: 2010-03-25 07:51 pm (UTC)
From: [identity profile] metaclass.livejournal.com
partitioning как-то умеет: http://www.postgresql.org/docs/8.4/interactive/ddl-partitioning.html

IOT вроде не умеет и читать данные только из индексов, если их хватает для запроса, судя по сегодняшним тестам - тоже.

А компрессия индексов (префиксная что ли?) это видимо тут бы помогло прилично, да.

Date: 2010-03-25 07:55 pm (UTC)
From: [identity profile] plumqqz.livejournal.com
Именно что как-то.

У постгреса довольно ракообразная версионность и он всегда вынужден лазить в таблицу, дабы убедится, жива ли запись или как. Т.е. покрытие индексом в нем не работает. В данном случае это было как серпом по гонадам.


Угу, префиксная. Ну можно и собственно данные пожать.

Date: 2010-03-25 08:00 pm (UTC)
From: [identity profile] plumqqz.livejournal.com
А, еще маленькое "но". У постгреса оверхед в 26 байт на запись, кроме заголовка страницы, который тоже немаленький. У оракла - два байта, что ли.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 25th, 2025 08:27 am
Powered by Dreamwidth Studios