
Alex
16.01.2018
16:00:00

Yaroslav
16.01.2018
16:00:49

Aw
16.01.2018
16:01:31

Alex
16.01.2018
16:01:51

Google

Александр
16.01.2018
16:02:22

Старый
16.01.2018
16:02:38

Yaroslav
16.01.2018
16:02:38

Aw
16.01.2018
16:03:31
1 ТБ это много?
Не существенно, но придется перебирать всю таблицу чтобы выделить файлы и кудато их потом сложить. Если система не работает, это сделать легко. но при нагруженной системе проблема

Alex
16.01.2018
16:04:14

Yaroslav
16.01.2018
16:04:37

Aw
16.01.2018
16:04:38

Старый
16.01.2018
16:05:27

Aw
16.01.2018
16:06:26

Alex
16.01.2018
16:06:51

Yaroslav
16.01.2018
16:07:39

Aw
16.01.2018
16:09:59

Yaroslav
16.01.2018
16:12:47

Google

Roman
16.01.2018
16:15:16

Aw
16.01.2018
16:15:45

Leonid
16.01.2018
16:16:23
Он клиент
Запрос, как обычно, исполняет сервер
Я о том, что клиент может запрос исполнить и ответ забрать целиком, а может его в курсор обернуть и все 10005000 строчек не забирать (ну или забирать, но хотя бы не падать по OOM от больших ответов). Так-то понятно, что клиент — это клиент :)

Yaroslav
16.01.2018
16:17:30

Aw
16.01.2018
16:19:30

Yaroslav
16.01.2018
16:20:10

Leonid
16.01.2018
16:20:21

Aw
16.01.2018
16:23:32
И заново. :( А ACID Вы как собирались обеспечивать?
Вот с этим как раз проблем не было. Транзакция открывалась только в момент. когда файл либо уже скопировался на ФТП либо он там уже имелся. Записи естественно никто не изменял (только добавление происходило), поэтому были операции только insert. Проверку наличия файла по MD5 делалось в другой транзакции

Yaroslav
16.01.2018
16:30:20

Aw
16.01.2018
16:30:50

Yaroslav
16.01.2018
16:33:22
Это не "были проблемы", а "таким образом задача обеспечения 100% ACID не решается". :(

Aw
16.01.2018
16:34:04

Yaroslav
16.01.2018
16:36:21

Aw
16.01.2018
16:37:53

Аггей
16.01.2018
16:38:55

Yaroslav
16.01.2018
16:39:18

Google

Aw
16.01.2018
16:41:12
А потеря данных - это может быть и закрытие бизнеса
Тут момент связан именно в ценности данных. Самые ценные данные за 1 день (в этой системе). Остальные нужны только для статистики. Естественно за этот 1 день все дублируется и копируется. Система же не только в лог должна все писать?

Yaroslav
16.01.2018
16:44:12

Аггей
16.01.2018
16:44:50
На моей практике было 3 случая потери данных. Самый простой - восстановление с бумажного носителя - 200 человекочасов.. Два других - потеря контракта

Aw
16.01.2018
16:45:55

Yaroslav
16.01.2018
16:46:20

Aw
16.01.2018
16:47:07

Yaroslav
16.01.2018
16:49:00

Aw
16.01.2018
16:50:05

Yaroslav
16.01.2018
16:51:55
Потери данных случаются ....
?
Это не потеря данных, это была попытка работать на READ COMMITTED в случае, когда это было на самом деле недопустимо. :(
И зачастую довольно трудно такие ошибки в коде потом находить, по моему опыту.

Aw
16.01.2018
16:52:57

Александр
16.01.2018
17:05:12

Alex
16.01.2018
17:41:58

Yaroslav
16.01.2018
17:43:58
Acid тут иногда не нужен
Тогда в базе тоже можно хранить, если этих blob-ов будет немного / они небольшие / обращения к ним редки.

Alex
16.01.2018
17:50:46
Поэтому и выбирают фс

Aw
16.01.2018
17:52:41

Yaroslav
16.01.2018
17:52:43

Aw
16.01.2018
17:54:14

Google

Аггей
16.01.2018
17:54:31

Yaroslav
16.01.2018
17:56:54

Aw
16.01.2018
17:58:52

Alex
16.01.2018
17:59:56
Если бы все было гуд со скейлингом по перформансу у rdbms толькоб так и хранили. И еслиб везде мультимастер на вставку/апдей не проседал.

Aw
16.01.2018
18:02:33
Количество около 100к в день
В тестовом режиме

Yaroslav
16.01.2018
18:05:47

Yura
16.01.2018
18:13:54

Dmitry
16.01.2018
18:35:03
на текущей работе храним файлы в базе. потому что в отличие от распределенных fs postgresql предсказуемей
но не используем large objects. потому что оно выделяет одну toast-таблицу если я не ошибаюсь
еще немного тут написано: https://wiki.postgresql.org/wiki/BinaryFilesInDB

Alex
16.01.2018
18:47:12

Dmitry
16.01.2018
18:47:47
у меня жопг. хватает.

Yaroslav
16.01.2018
19:03:42

Evgenii
16.01.2018
19:15:40

Google

Alex
16.01.2018
19:15:43
Баги в том что не выгружаются bytea больше чем 500 мегов черз pg_dump и copy
А залится запросто

Hetag
16.01.2018
21:59:08
Привет всем ,а как на сайте сделать проверку товара по номеру серийному

Аггей
16.01.2018
22:00:14
?

Akim
17.01.2018
05:24:13
EXIST( Select 1 FROM product WHERE serial = 12345) проверка на существование

Ilia
17.01.2018
08:07:13

Aw
17.01.2018
08:27:47

Petr
17.01.2018
08:38:31
господа, насколько извращение делать vacuum и create index на одной таблице одновременно?)

Ilia
17.01.2018
08:39:58

Aw
17.01.2018
08:40:20

Petr
17.01.2018
08:41:13
Зачем???? ?
вопрос теоретического характера ? интересно как себя вакуум поведет в таком случае


Aw
17.01.2018
08:43:12
Простая команда VACUUM (без FULL) только высвобождает пространство и делает его доступным для повторного использования. Эта форма команды может работать параллельно с обычными операциями чтения и записи таблицы, так она не требует исключительной блокировки. Однако освобождённое место не возвращается операционной системе (в большинстве случаев); оно просто остаётся доступным для размещения данных этой же таблицы. VACUUM FULL переписывает всё содержимое таблицы в новый файл на диске, не содержащий ничего лишнего, что позволяет возвратить неиспользованное пространство операционной системе. Эта форма работает намного медленнее и запрашивает исключительную блокировку для каждой обрабатываемой таблицы.
то есть vacuum без full особо не уменьшит размер БД, а vacuum full блочит таблицу, соответственно пока не выполнится никакие операции с ней будут недоступны, включая create index

Petr
17.01.2018
08:47:04
разумеется я это читал, но спасибо)

Aw
17.01.2018
08:48:10
В реале иногда полезней индексы пересобирать, а не вакуум делать. (ИМХО)

Petr
17.01.2018
08:49:56
немного не понял, как это поможет мусор очистить?