@pgsql

Страница 74 из 1062
Roman
24.08.2016
19:34:12
расскажи мне про чтение страничек анонимных, или mmap которые к этому приводят, и как это вся завязано на open / sendfile
Ну ок, хочется про mmap - будет про него. Если mmap'нуть файл на 64гб, то это произойдет мгновенно. Если же эту память ну просто потрогать - ваш процесс тоже попадет в d-state

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
да не будет такой проблемы если в dentry cache все ))
Дайте мне все ресурсы сети и 10 лет? :) ну тогда да.

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

и что на ext4 и linux это легче чем в других местах может быть )

Alex
24.08.2016
19:58:57
Да в общем такое и на xfs можно поймать. Xfs тоже шутковать умеет. Но Рома просто еще и не любит ext4 =)

Вот, кстати, на той же xfs мы ловили забавный баг, когда inod'ам стали назначаться 64битные значения . И всё работало... Вот только 32-биттные процессы очень обижались =)

Кстати, Рома же это и чинил :D

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
Но я согласен с вами, кейсы когда задумать процесс на долго по дисковому ио можно легко и где угодно почти.
ну так проблема с задумать в синхронном блокирующем api: вы сделали сисколл пока оно в ядре вы ничего с этим сделать не можете. если где-то что-то сломалось - это больно(например, отсох nfs, а вы там файлик читаете).

А чего вы вообще про aio стали в контексте БД говрить? :)
да тут люди чего-то про фс заговорили. я лишь заметил, что рабочий aio есть на xfs.

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

Roman
24.08.2016
21:22:21
на ext3 помоему такое же поведение ? ) разве нет ?
нет. поддержка aio сильно зависит от фс.

Alex
24.08.2016
21:29:28
сильно от железа зависит.
Ну серверное, понятно. А чего зависит - кэш диска, поди, на всех есть. Отключать надо...

кеш на рейдконтроллере

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

Nikita
24.08.2016
21:52:27
если на контроллере батарейка, то можно смонтироваться с nobarrier
и не забыть включить мониторинг батарейки

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

Google
Alex
25.08.2016
07:14:57
?

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
кстати, я так понимаю, что нет в ПГ и %ROWTYPE
не то https://postgrespro.ru/docs/postgresql/9.5/plpgsql-declarations.html ?

Сергей
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 перестроение индексов

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. Поэтому мы формировали вектор не в БД, и в запрос вкидывали не то, что ввел пользователь, а прогнав через свой алгоритм. Такой подход дает больше гибкости.

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
отличный наброс

Страница 74 из 1062