
Pavel
02.11.2016
21:03:55
Думаю заметят, потому что может быть 200мс против 50
Да еще под нагрузкой
Вобщем я понял, нужно брать и проводить эксперимент на реальных данных

Fike
02.11.2016
21:04:43
а может быть и пятнадцать

Google

Fike
02.11.2016
21:05:05

Pavel
02.11.2016
21:05:31
Почему?

Fike
02.11.2016
21:05:56
потому что за всем этим не стоит ни реальной задачи, ни потребности, ни метрик
потому что любой движок, хранящий индекс в виде дерева, мгновенно доберется до нужных первых значений, и пока у тебя размер страницы небольшой, никаких проблем с производительностью не будет
потому что если тебя так волнуют 150 мс, то ты должен смотреть не в сторону поисковых движков, а в сторону горизонтального масштабирования, потому что, опять же, поставленная задача тривиальна для любого хранилища, кроме деревянного kv, и если где-то и можно смягчить "под нагрузкой", которой еще и в помине нет, как и миллионных таблиц, то как раз балансировкой на разные узлы

Pavel
02.11.2016
21:10:16
> которой еще и в помине нет, как и миллионных таблиц,
ну так когда она будет, уже поздно будет пить боржоми и переделывать все на лету

Fike
02.11.2016
21:11:16
http://cdn.head-fi.org/b/b1/200x200px-ZC-b19413ed_aw-jeez.jpeg
если с тобой вдруг случится такая неприятность, ты просто докинешь read-only слейвов, переключишь на них экземпляры приложения, и амортизируешь нагрузку, которой, повторюсь, пока нет и на горизонте
я молчу про кэш и про то, что такой индекс ты можешь хранить не то что в бд, а прямо в памяти в приложении, и искать за миллисекунду, вытаскивая дальше все по конкретным ключам
ты пытаешься сэкономить на спичках

Pavel
02.11.2016
21:14:26
Зачем переводить задачу в плоскость "нет и на горизонте"? Моя задача, как инженера, спроектировать решени, рассчитать производительность под нагрузки, и выдать рабочее решение. Чтобы потом заказчик не звонил через год ночью в воскресенье с криками "у нас все упало".
А есть в помине или нет - меня не касается.

Fike
02.11.2016
21:15:17

Google

Pavel
02.11.2016
21:15:50
Это могут быть заранее нагенеренные миллионы магазинчиков для виртуальной игры, и реалтаймовый поиск на лету. Минус решений sphinx и ES в том что это надо целую лишнюю сущность администрировать.

Fike
02.11.2016
21:16:21
меньше 99% что? меньше 99% аптайма приемлемо? как это связано со скоростью?
а вообще выглядит, как будто надо сделать решение под абсолютно любую ситуацию, что, конечно, невозможно

Pavel
02.11.2016
21:19:08
В реальном мире заказчики хотят и шашечки и езду и куртизанок в машину. Чтобы и просто администрировать было, и работало быстро, и не надо было тратить десятки гигабайт оперативы для индексов эластика

Alexey
02.11.2016
21:20:22
и чтобы бесплатно, да.

Fike
02.11.2016
21:20:24
давай все-таки к SLA и требованиям к задаче
момент с тем, как рассказывать заказчику про шашечки и езду осветит кто-нибудь другой

Pavel
02.11.2016
21:20:44
Ну SLA как SLA, есть допустим стартап, в нем есть такая задача как я описал. Миллионы записей в таблице это почти железно, а вот нагрузка пока под вопросом. Может будет маленькая а может большая.
Требования естественно могут поменяться, может эти интервалы буду разбиты еще на 5 каждый, кто ж его знает.
Если будет работать относительно медленно (>200мс) то пользователи будут расстраиваться.
Если надо будет очень мудрить с масштабированием/переиндексацией, то администраторы будут расстраиваться.


Fike
02.11.2016
21:25:36
я никогда не гонял ни один движок на миллионах записей - ну, кроме того раза, когда не поверил этвуду, что у postgresql медленный count даже при indexscan - но с трудом представляю себе хранилище, которое будет давать 200 мс на десяти миллионах записей
с учетом того, что у вас стартап, я бы пока об этом сильно не беспокоился, потому что проблемы такого характера всегда можно закидать железом, выиграв время на поиск нужного решения

Alexey
02.11.2016
21:28:36

Pavel
02.11.2016
21:28:41
Не сказать чтобы я прям сильно беспокоюсь об этом, но вопрос ящитаю абсолютно корректный и законный. И хорошо бы на него знать ответ, чтобы потом не было мучительно больно за потраченные миллионы.
И еще к вопросу "пока бы не беспокоился" - у меня до этого был несколько раз опыт внезапного хайлоада - онлайн мероприятие, на которое заходили одновременно несколько тысяч человек, выполняли там интенсивно бизнес-логику, а потом через час все уходили. В таких условиях конечно невозможно докинуть железа или даже реплику поднять, все надо рассчитывать заблаговременно.

Alexey
02.11.2016
21:31:19
Пару HP Proliant G10 на ссдшках последнего поколения + 256-512гб оперативной памяти. И всё будет ок.

Google

Fike
02.11.2016
21:31:43
потому что реплика должна быть вообще всегда

Pavel
02.11.2016
21:32:16

Fike
02.11.2016
21:32:52
если не хотим тратить миллионы, вытряхиваем из заказчика sla, делаем тесты, берем с запасом
если упираемся в железо и не можем расти вертикально, берем горизонтальное решение
до этого момента люди продолжают работать с привычными технологиями и не тратят время и ресурсы на то, что проекту не нужно
если вы считаете, что ваши потери от простоя будут больше того, что вы потратите на рзрабов, то держите индекс прямо в приложении

Pavel
02.11.2016
21:34:24
Ну да я конечно против того чтобы тащить отдельные поисковые движки в проект где можно и gist индексом обойтись

Dmitrii
02.11.2016
22:35:24
Прочитал всю вашу дисскуссию
Надеялся увидеть конкретику и какой то опыт, но ниасилил.

Pavel
02.11.2016
22:41:24
Я вынес только "вы экономите на спичках", "у вас нет таких задач", "вы спрашиваете не нужно"

Fike
02.11.2016
22:42:00
ой закритиковали

Pavel
02.11.2016
22:42:13
А вот и нет :)
Но жаль что в гугле не нашлось статей про это

Александр
03.11.2016
04:55:52
Фига кто-то денди любит

Petr
03.11.2016
04:57:00

Roman
03.11.2016
04:59:20
Почитал и увидел себя 10 лет назад :-) надо быть готовым ко всему, нужно выбрать правильное решение, а вдруг нагрузка, да-да, такое уже было... И с другой стороны терпеливо поясняют, что для случая "а вдруг нагрузка" нужна оценка предела, под который считаются деньги: стоимость разработки, железа, сопровождения, простоя

Anton [Mgn, az09@osm]
03.11.2016
05:01:22

Александр
03.11.2016
05:02:14
Внезапно

Anton [Mgn, az09@osm]
03.11.2016
05:05:32
кстати так ведь и не закончил https://www.coursera.org/learn/python-databases/home/welcome
спасибо за напоминание )

Google

Александр
03.11.2016
05:20:53
Всё для тебя

[Anonymous]
03.11.2016
07:49:01
День добрый! Недавно начал работать с postgresql 9.5. Помогите разобраться с настройками и оптимизации в postgresql.
При Выполнение запроса:
select * from "Documents"
Total query runtime: 12.2 secs
57146 строк получено.
В sql server ре он работает довольно шустро.. Может надо оптимизация в postgresql сделать или индексы создать. Заране спасибо всем.

Nikolay
03.11.2016
07:54:56
https://github.com/postgrespro/mamonsu

Vadim
03.11.2016
09:08:59
сколько метрик оказывается в постгресе

[Anonymous]
03.11.2016
09:25:27
Я установил mamonsu но всё равно результат тотже..

Admin
ERROR: S client not available

Dmitry
03.11.2016
09:26:28
его надо не просто установить, а установить и запустить mamonsu tune, а после этого перезагрузиться

[Anonymous]
03.11.2016
09:27:40
monitoring agent: mamonsu служба включена

Dmitry
03.11.2016
09:28:09
monitoring agent.
это не tune. tune - это generic оптимизации навроде pgtune
его надо запускать отдельно
потому основное предназначение mamonsu - это сбор метрик. mamonsu tune - побочный продукт, mamonsu - как перочинный ножик для PostgreSQL
как knife для chef :)

Evgeniy
03.11.2016
09:31:42
https://wiki.postgresql.org/wiki/Slow_Query_Questions

[Anonymous]
03.11.2016
09:31:46
его надо запускать отдельно
я новичок в этом деле только начал учить postgresql )) можете более подробно написать путь файла и как запустить его. Спасибо

Dmitry
03.11.2016
09:32:58

Pavel
03.11.2016
09:33:22

Darafei
03.11.2016
09:34:04
плохой бизнес - да, с потолка

Google

Vadim
03.11.2016
09:35:31

Roman
03.11.2016
09:40:36
это и есть пока ещё плохой бизнес

Dmitry
03.11.2016
09:40:45

Roman
03.11.2016
09:40:46
я был плохим исполнителем

Fike
03.11.2016
09:45:31
Эти оценки предела ничего не значат. Бизнес их берет с потолка.
Вы, кажется, даже не пытались уточнить их с заказчиком. Я уж молчу про то, что если один участник проекта не знает какую-то важную сторону, которая для него в тени, любой другой участник проекта обязан это поднять на поверхность и показать что к чему. Поэтому можно все спихивать на плохой бизнес, а можно поставить необходимость выработки SLA, примерно обрисовать что в какие ресурсы выйдет и получить обратную связь. Потому что я практически уверен, что если собрать консилиум в вашем проекте по этому вопросу, финальным решением будет "делаем на чем умеем и смотрим возможности оптимизации".
А не "хотим все, 100% аптайм и бесплатно"

Pavel
03.11.2016
10:08:44
> "делаем на чем умеем и смотрим возможности оптимизации".
Так я этим и занимаюсь. Умеем в Pg/Mysql/Sphinx/ES. Надо найти лучшую комбинацию.

Fike
03.11.2016
10:15:07
да я вчера заметил

Александр
03.11.2016
10:19:28

Dmitry
03.11.2016
10:19:51
не еще вроде
лень было :)

[Anonymous]
03.11.2016
10:20:56
А для windows как быть ))
блин как быть всё равно такая хрень.. Люди добрые помогите аа..))

Александр
03.11.2016
10:22:47

Dmitry
03.11.2016
10:23:33
заведи issue в github
:)

[Anonymous]
03.11.2016
10:23:56
Оперативка: 4gb, Cpu: i3, винт: hdd. как ускорить этот процесс.. OC: windows 10 x64.