metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-03-25 07:18 pm

Распределенный Postgresql срач

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

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

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

[identity profile] vp.livejournal.com 2010-03-26 08:01 am (UTC)(link)
Нельзя идти на поводу у заказчика. И в предметную область надо глубоко залазить, чтоб потом их фейсом об тейбл бить. Это как бы заправка хотела чтоб мы им считали расход топлива в километрах. Вот хотят и все тут, ну что ты будешь делать? Или вопросы недостижимой точности. Всегда есть возможность переубедить заказчика на ранней стадии.
Потому что априори ЗАКАЗЧИК - НЕ СПЕЦИАЛИСТ в области автоматизации, которую он затевает. Это мы специалисты, а он что-то по вершкам схватил и кричит об этом.

[identity profile] dmzlj.livejournal.com 2010-03-26 08:11 am (UTC)(link)
Это верно когда со стороны заказчика выступает не разработчик. А это именно они, с собственной ГИС РЖД.

[identity profile] dmzlj.livejournal.com 2010-03-26 08:12 am (UTC)(link)
И ваще. Я не вижу, почему бы с кластера из двух достаточно мощных серверов не получать 4000 RPS и не держать данные для 10K за полгода.

[identity profile] metaclass.livejournal.com 2010-03-26 08:22 am (UTC)(link)
Потому что оракл не вписывается в бюджет, очевидно :)
Кстати, насчет партиционирования pg - я бы входные очереди по id сделал бы не в RDBMS. Хоть плоские файлы, хоть мнезия. А вот архивы за прошлые периоды(или по мере надобности) - в RDBMS, так анализировать проще, ад хок запросами.

[identity profile] dmzlj.livejournal.com 2010-03-26 08:32 am (UTC)(link)
Оно на PG сейчас жрет 30K/в секунду с партиционированием на ноутбуке.
С селектами смотрим, 8.6M мгновенно, сейчас посмотрим как на 86M будет

[identity profile] vp.livejournal.com 2010-03-26 08:23 am (UTC)(link)
Потому что кластер из двух серверов - это достаточно дорогое, слабо тиражируемое решение. Если ты придешь в совхоз имени Фаины Каплан, и скажешь, что в качестве бекграунда тебе надо к системе мониторинга купить за 30 штук 2 сервера, тебя пошлют. То есть решение получается в силу заложенной архитектуры нетиражируемое в массы.
Плюс расход трафика.
Простая арифметика. У тебя парк из 300 единиц техники. Одно дело, когда за 300 SIM карт ты заплатишь по 1 баксу в месяц за трафик при низкой плотности, или по 10 баксов. Для предприятия 300 уе и 3000 уе в месяц - это огромная разница.
Короче, тут чистый маркетинг.

[identity profile] dmzlj.livejournal.com 2010-03-26 08:34 am (UTC)(link)
Это ви мине будете рассказывать, что failover кластер из двух нод --- дорогое и сложноые решение?!

300 единиц мы с одной головы легко потянем. В общем, во всем этом пока не прослеживается место для оракла, даже на тупо постгресе сегодня уже обнадеживающие результаты. ПО итогам вчерашнего дня.