1 тысяча запросов в секунду к одному сервису, ... 99.9% запись в базу делать не нужно
При использовании беззнаковых и выполнении --0, в итоге получим Access Violation
unsigned int x = 0;
--x;
А нет ли в постгресе какой-то команды или скрипта для проверки консистентности и автоматического исправления конфликтов между файлами и таблицами?
И в какую сторону копать, дабы разобраться с крашами?
Как я понял каждый relfilenode пересоздается после полного вакуума
Могли ли обращения сторонних программ к залоченным таблицам во время вакуума привести к этому?
И как теперь можно намекнуть постгресу, что часть файлов уже не нужна, чтобы ничего не сломать?
select name, relkind from pg_class where relfilenode = ...
SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40');
даже одиночные запросы оборачиваются в автотранзакции, поэтому этот сценарий потери апдейта в ms sql - чисто теоретический?
но при этом я почему-то хочу, чтобы при выполнении моих запросов существовало «грязное» чтение
Я понимаю, что он невозможен при уровне изоляции READ UNCOMMITED. Вопрос был в том, что тогда когда он возможен? Когда транзакции вообще нет?
Понимаете, в чем дело, у вас тут все спрашивают конкретные цифры rps, потому что это определяющая информация для выбора решения. И, похоже вы сами их не очень представляете. Но видно, что нагрузка небольшая и если вы ради сервиса с 1000 rps построите кластер на 15-ти машинах с кафкой, кассандрой и хадупом - это будет печальный исход. Postgres + redis, нормальная система, почему бы нет. Так что на вашем месте я бы:
- померил реальную нагрузку на сервис, на redis, на postgres и уяснил бы, где реально узкое место
- починил код, работающий с redis. Вы с ним что-то принципиально не так делаете, если он у вас "не успевает сохранить строку"
- настроил существующие системы по-нормальному
Если бы у вас было 100х от текущей нагрузки, то было бы разумно сначала быстро в некую очередь сообщений, а на другом конце разгребать ее уже не задерживая прием/передачу, но пока у вас 1000 rps и, насколько я понимаю, в пределах полугигабайта данных в день, повторюсь, нужно настроить существующие системы.