• НЕСТАНДАРТНЫЙ. ProgrammingError at / relation "MODEL" does not exist как решить?

    Melkij
    @Melkij
    Я как раз и спрашиваю не ваше мнение, как называется ваша база, а мнение базы, в базе к каким именем был выполнен запрос. Потому что это запросто могут быть совершенно разные, сходу объясняющие суть ошибки.
    В ubuntu логи базы обычно в /var/log/postgresql/postgresql-(major версия базы)-main.log можно поискать.
  • НЕСТАНДАРТНЫЙ. ProgrammingError at / relation "MODEL" does not exist как решить?

    Melkij
    @Melkij
    И чего нестандартного вы нашли в этом вопросе? Покажите с лога базы полный текст ошибки, запроса и имя базы в которой этот запрос выполнялся.
    И обратите внимание на п.3.8. правил.
  • Как по вашему мнению рациональнее собрать дисковую систему на сервере?

    Melkij
    @Melkij
    Saboteur, не, не понимаю весь драматизм. Ни hot standby, ни бекапов нет, зато позаботились как бы так поудобнее восстановить ОС? А не лучше ли было бы позаботиться о данных? Когда файловая система в состоянии невозможно загрузить ОС, то и от самих данных с большой вероятностью лишь бинарный мусор остался. В нормальной ситуации: разобрали сервер, продиагностировали, заменили то что вызывает сомнения, собрали, поставили чистую ОС, накатили ansible, налили реплику hot standby, всё.
  • Как по вашему мнению рациональнее собрать дисковую систему на сервере?

    Melkij
    @Melkij
    Saboteur, ммм, это к чему? raid10 и допускает выпадение одного любого диска. Или до половины дисков при огромном везении.
  • Как по вашему мнению рациональнее собрать дисковую систему на сервере?

    Melkij
    @Melkij
    Dimonchik, так именно потому и один общий массив. С общим объёмом места и общим делением IOPS на все доступные 6 чтения и 3 на запись конкурентных потока.
    Ведь если вы заведомо знаете свой workload - то этот вопрос вы бы просто не задавали. А собрали массивы так, как это нужно под задачу.
  • Как по вашему мнению рациональнее собрать дисковую систему на сервере?

    Melkij
    @Melkij
    я старый разработчик-dba и просто не понимаю этого чисто админского прикола, зачем под ОС занимающую 5-10 гигабайт и дающую примерно 0 IOPS активности выделять отдельные физические диски. Но если нравится - делайте так, кто же запретит.
  • Openwrt не могу войти что делать?

    Melkij
    @Melkij
    так микротик или openwrt? factory reset конфига в общем. Кто ж знает, что там накрутили в конфигурации.
  • Как подключить жесткий диск к док станции?

    Melkij
    @Melkij
    а зачем док-станции это определять?
  • Что происходит в момент добавления нового столбца в БД?

    Melkij
    @Melkij
    Смотря как этот тип series объявлен. Среди штатных сотен типов данных типа с таким именем нет, но ведь любой новый тип может быть произвольным образом создан, postgresql штука очень расширяемая. Ваш собственный ли это тип данных или это из какого-то расширения, может быть domain, композитный, или полностью базовый тип.

    В общем случае можно создать табличку аналогичной структуры на аналогичной версии базы и посмотреть в
    set client_min_messages = 'DEBUG';
    alter table ... add ...

    Если от alter table будет сразу строка
    DEBUG: rewriting table "..."
    то проблема, этому add column нужно переписать всю таблицу целиком.
  • Что происходит в момент добавления нового столбца в БД?

    Melkij
    @Melkij
    если колонка создаётся без указания default-значения, то перезаписи строк в таблице не происходит, меняется лишь заголовочная часть (в которую добавляется информация о новой колонке) и битовая карта null'ов (относительно дешёвая операция)

    bitmap не обновляется, т.к. это опять же перезапись таблицы делать придётся. Новую bitmap и дефолтные значения потом проставляет update или другие table rewrite

    происходит пересоздание (удаление и новая вставка) всех строк

    строки не удаляются, пересоздаются напрямую файлы relfilenode. Старые файлы потом удаляем.

    индексы при этом также перезаписываются в моменты проходов автовакуума (при вычищении мёртвых версий строк указатели в индексах меняются на актуальные версии строк).

    автовакуум таким не занимается. В индексы при записи данных вставляются ссылки на все версии строк. вакуум только удаляет ссылки на те строки, которые затем удаляет.
    При перезаписи таблицы в alter table, делается вполне обычный аналог create index на новом файле данных.
  • Какой Линукс подойдет для этого компьютера?

    Melkij
    @Melkij
    у меня есть opera presto под рукой - и идея сейчас его использовать будет кошмарная. Его вешают даже современные рекламные сети, приходится держать выключенный javascript. Разумеется, без js не работает уже вообще ничего, такой режим взаимодействия с сайтом никто не делает.
    подойдёт, если нужно только полтора инвалида, которыми сможете пользоваться из presto - или даже не пытайтесь.
    Да и поставить его будет нетривиально, deb требует libgstreamer0.10-0, который давно уж похоронили.
  • Что за магия с PostgreSQL?

    Melkij
    @Melkij
    Я специально процитировал часть запроса, формулирующую структуру record, которую и будем пытаться привести к композитному типу.
    jsonb_populate_recordset по именам заполняет по образцу t_best_asin_ranking_2, потом вы переформатируете в произвольный record, упаковываете в массив и пытаетесь этот массив record привести к массиву t_best_asin_ranking_2.
  • Что за магия с PostgreSQL?

    Melkij
    @Melkij
    с точки зрения позиции ASIN совпадает с полем rating

    где?
    SELECT asin, rating, price, reviews
    ну а то что 1 можно привести к целочисленному значению - логично.
  • Как работает индекс при составном UniqueConstraint?

    Melkij
    @Melkij
    или переделать этот уникальный индекс на btree (b,c,a). Всё ведь от запросов зависит, что и как нужно будет искать. Если нужны
    where a = ?
    where b = ?
    where c = ?
    то да, это будут нужны 3 индекса
  • Какие скорости должны быть у RAM DDR4?

    Melkij
    @Melkij
    shaesnow, ну, несколько странное применение, но если для вашей задачи в этом есть профит - то почему нет?
  • Какие скорости должны быть у RAM DDR4?

    Melkij
    @Melkij
    shaesnow,
    Не видел еще ситуаций когда проблема в ram

    а я видел. Например, как пропускная способность памяти влияет на производительность nvme? Для вдумчивого чтения: https://forum.level1techs.com/t/fixing-slow-nvme-r...

    Маленький вопрос с очень большим подвохом: prefetch ошибся и процессору нужно подождать пока необходимые байтики доберутся из RAM в регистр для продолжения вычисления. Это время CPU отрапортует как "занят" или "свободен"?

    ну и особый сорт удовольствия от памяти - искать причину нестабильного времени ответа и высокой утилизации CPU, заключающуюся в том, что данные у нас оказались преимущественно в одной NUMA, а процессы выполняются в другой NUMA. (знаете ли вы, что односокетный сервер может содержать 4 NUMA ноды с разными задержками обращения к памяти?)

    у меня есть мысли, где nvme optane был бы полезен уже сейчас. nvram же - это про машинки и проблемы ещё побольше. Там где железка с моей работы о пару сотен ядер на полтора террабайта RAM с десятками террабайт nvme такая же мелочь, как и для меня мелочь сервер на полсотни гигабайт RAM с десятком ядер CPU.
  • Какие скорости должны быть у RAM DDR4?

    Melkij
    @Melkij
    да, optane как первый и по сути всё ещё единственный серийный. Есть в виде вполне привычного nvme m.2 накопителя, есть в виде nvram модуля.

    доступ к ячейкам памяти низкий по сравнению с nvme m2.0

    nvme - это протокол
    m.2 - физический формат девайса
    все SSD независимо от протокола и физического исполнения сейчас NAND - кроме optane, который PCM (phase-change memory).
  • Какие скорости должны быть у RAM DDR4?

    Melkij
    @Melkij
    linux как ядро, на сколько я понял, готов к этому, но вот софт нет

    nvram
    речь совсем не о том, что это быстрее DRAM. Напротив, это вопрос как сделать что-то несильно (не на несколько порядков, как NAND) медленнее чем DRAM, но дешевле за гигабайт, можно поставить сильно больше и это будет более эффективно по потреблению энергии. DRAM дохрена энергии тратит впустую.
    То есть сделать не 3 уровня памяти: очень медленный NAND постоянной памяти, быстрый DRAM энергозависимой памяти, более быстрый SRAM энергозависимой памяти, а добавить между NAND и DRAM промежуточный уровень NVRAM - несколько медленнее DRAM, но быстрее NAND и энергонезависимой памяти.
    И формат модулей памяти у них потому, что m.2 не даёт столько линий PCI-E по сравнению с тем сколько можно прокачать один слот памяти.

    И как раз потому что это отдельный уровень производительности, нужно чтобы софт об этом знал. Эвристики традиционно не могут нормально угадывать, к каким фрагментам нужен интенсивный доступ, а что может подождать.

    А NAND медленные. Не по полосе, а по латентности. С точки зрения CPU даже DRAM дико медленная. Потому на CPU и и становится всё больше и больше очень дорогой SRAM.