
Roman
24.08.2016
19:34:12

ptchol
24.08.2016
19:35:16
вы мне одни и теже тезисы приводите.
хотя я попросил уточнить что имелось ввиду. Если не хотите отвечать, давайте не будем захломлять тут.

Alex
24.08.2016
19:54:29
Я не думаю, что под "вляпаться" имелось в виду навсегда. Навсегда вообще ничего не бывает =) Но если у нас высоконагруженная система, где нужно отдавать ответ за адекватное время, то залипнуть на минуту в D - это ~ навсегда.

Google

Alex
24.08.2016
19:55:21
А залипнуть на минуту в D на ext4 - да как 2 байта переслать. Берем каталог в котором есть или было файлов тысяч несколько сотен, и читаем его =)
И ничего тут io scheduler не сделает

Alex
24.08.2016
19:56:44
Ребзя, что читать про производительность баз данных? как мерить нагрузку, как тюнить, что измерять и так далее?

ptchol
24.08.2016
19:56:45
да не будет такой проблемы если в dentry cache все ))

Alex
24.08.2016
19:56:52
я полный нуб в базах данных.

Alex
24.08.2016
19:57:12

ptchol
24.08.2016
19:57:14
Но я согласен с вами, кейсы когда задумать процесс на долго по дисковому ио можно легко и где угодно почти.
и что на ext4 и linux это легче чем в других местах может быть )

Alex
24.08.2016
19:58:57
Да в общем такое и на xfs можно поймать. Xfs тоже шутковать умеет. Но Рома просто еще и не любит ext4 =)
Вот, кстати, на той же xfs мы ловили забавный баг, когда inod'ам стали назначаться 64битные значения . И всё работало... Вот только 32-биттные процессы очень обижались =)
Кстати, Рома же это и чинил :D

Roman
24.08.2016
20:02:12

Alex
24.08.2016
20:03:39
Хз. Дико распухшие каталоги я почему-то чаще видел на ext. Но чудес не бывает, да. Просто весело, когда каталог читается 5 минут, а в нем - пусто

Google

Alex
24.08.2016
20:05:21
А чего вы вообще про aio стали в контексте БД говрить? :)
Вот вы мне лучше расскажите, где и какие кэши надо вырубить, чтобы не потерять постгресные транзакции ?

Roman
24.08.2016
21:16:20

ptchol
24.08.2016
21:18:54
он не требует o_direct если вы про него

Roman
24.08.2016
21:22:21

Alex
24.08.2016
21:29:28
кеш на рейдконтроллере

Roman
24.08.2016
21:36:23
если на контроллере батарейка, то можно смонтироваться с nobarrier

Nikita
24.08.2016
21:52:27

Roman
24.08.2016
21:54:32
Можно еще bcache в режиме writeback :)

Alex
24.08.2016
21:57:30
А зачем батарейки, если есть упсы?

Alexey
24.08.2016
22:08:43
Эм, чтобы не собирать файловую систему и данные, а штатно завершиться / пережить блеуат, может быть?

Roman
24.08.2016
22:35:59
A BBU on a RAID card and a UPS have different purposes.
The BBU is designed to keep the cache memory active when power is lost so that the data can be flushed to disk when the disks are active.
http://serverfault.com/questions/511443/raid-battery-and-ups

Pavel
25.08.2016
06:33:41

Google

Alex
25.08.2016
07:14:57
?

Mike Chuguniy
25.08.2016
07:26:48

Alex
25.08.2016
07:45:12
Спасибо.

Александр
25.08.2016
07:49:11
Посоны, а кроме дичайшей ынтырпрайзности что есть в оракле, чего нет в том же постгресе?

Сергей
25.08.2016
07:50:03
автономные транзакции
пакеты

Айтуар
25.08.2016
07:50:19
параллельные запросы (пока)
кластера

Сергей
25.08.2016
07:50:56
нормального управления транзакциями мне не хватает. если исключение - откатывается все действия внутри ХП
хинт +parallel
кстати, я так понимаю, что нет в ПГ и %ROWTYPE

Kirill
25.08.2016
07:55:58

Сергей
25.08.2016
07:57:13
Kirill Shvakov, [25.08.16 10:55]
[В ответ на Сергей Кудрявцев]
кхм, это и есть нормальное поведение транзакции или нет ?
это философский скорее вопрос... мне ближе подход Oracle к транзакциям...
Если мне нужно - я сделаю посередине ХП commit, а потом exception если и возникнет - нужные данные уже зафиксированы
Kirill Shvakov, [25.08.16 10:57]
[В ответ на Сергей Кудрявцев]
не то https://postgrespro.ru/docs/postgresql/9.5/plpgsql-declarations.html ?
Точно, спасибо, оно

Аггей
25.08.2016
08:16:42
Партиционирование в oracle чуть лучше. + online перестроение индексов

Alex
25.08.2016
08:17:18

Vadim
25.08.2016
08:21:25
в постгресе тоже есть)

Аггей
25.08.2016
08:24:48
в смысле, не блокирующее?
Не триггером - а свой механизм с различными вариантам партиций, субпартиций (и всякие вкусности типа enable row movement)

Сергей
25.08.2016
08:25:17
+

Google

Аггей
25.08.2016
08:25:52
Онлайн перестроение индексов в постгрес по сравнению с оракл на порядок трудрзатратнее

Vadim
25.08.2016
08:27:01
какое онлайн, там оно одно, не написано, как оно блокирует, у reindex вроде нет опции online, или какие это оффлайн и онлайн?

Аггей
25.08.2016
08:28:21
Ещё есть такой пакет dbms_redifinition - позволяющий изменять структуру хранения данных (например из не партиционорованной таблицы сделать партиц-ю) без остановки сервиса

Vadim
25.08.2016
08:36:24
какой это?
да щас понял, rebuild online в оракле не блокирует запись в таблицу, в постгресе нет аналога

Айтуар
25.08.2016
08:39:01
concurently не оно?

Darafei
25.08.2016
08:42:54
это create
reindex concurrently нет

Vadim
25.08.2016
08:43:11
в reindex нет concurently почему-то

Darafei
25.08.2016
08:43:48
его костылят танцами с create concurrently - rename - drop

Аггей
25.08.2016
08:44:11
Команду REINDEX можно безопасно и просто применять во всех случаях. Но так как она требует
исключительной блокировки таблицы, часто предпочтительнее перестраивать индекс в несколько
этапов, включающих создание и замену индекса. Типы индексов, которые поддерживает CREATE
INDEX с указанием CONCURRENTLY, можно построить именно так. Если это удаётся и получен рабо-
чий индекс, изначальный индекс можно заменить им, выполнив ALTER INDEX и DROP INDEX. Ко-
гда индекс используется для обеспечения уникальности или других ограничений, может потребо-
ваться команда ALTER TABLE, чтобы поменять существующее ограничение на то, что обеспечива-
ет новый индекс. Обстоятельно продумайте эту многоходовую процедуру, прежде чем выполнять
её, так как не все индексы можно перестроить таким образом, и предусмотрите обработку ошибок
Из книжки
Условный аналог, но как я и написал - на порядок сложнее

Vadim
25.08.2016
08:44:57
что за книжка?

Айтуар
25.08.2016
08:45:04
ну да с уникальными может не прокатить

Аггей
25.08.2016
08:45:27
Перевод документации постгрес
Тут кидали

Vadim
25.08.2016
08:46:19
че т нету в документации этого, в каком разделе

Аггей
25.08.2016
08:46:44
23.2 вроде

Google

Vadim
25.08.2016
08:46:49
нашел хотя, да, спасибо

Аггей
25.08.2016
08:48:19
Для систем 24*7 oracle Enterprise удобнее (standart не поддерживает redifinition, rebuild online)...
Но все равно архитектура приложения - основа всего

Макс
25.08.2016
10:03:17
Приветы! Не могу разобраться с полнотекстовым поиском. Можете помочь?
На текущий момент у меня есть поле fts, конфигурация ru, словарь
Я нашел такой запрос:
SELECT * FROM record WHERE fts @@ to_tsquery('кабина:ab');
Но он не находит нужную строку
Например, у меня есть строка где содержимое fts такое:
'triton':1B 'б':7 'блок':10 'вентилятор':14 'динамик':12 'душевой':4 'кабина':5 'п':8 'подсветка':13 'пульт':2,9 'тритон':6 'управление':3,11
Там точно видно слово "кабина". Почему его не находит?
SELECT to_tsquery('кабина');
Выводит:
'кабин'
может поэтому?
а... понял, ок... как так получилось, что в индексе другая форма слова, не понятно...

Dmitry
25.08.2016
11:02:52
Если я правильно помню так работает построение вектора в PG. Поэтому мы формировали вектор не в БД, и в запрос вкидывали не то, что ввел пользователь, а прогнав через свой алгоритм. Такой подход дает больше гибкости.

Макс
25.08.2016
11:21:56

Dmitry
25.08.2016
13:48:19
https://scontent.xx.fbcdn.net/t31.0-8/p720x720/14114940_673576899460952_7891428346989714795_o.jpg
сравнение фич

Alex
25.08.2016
13:48:53
отличный наброс