170 похожих чатов

Приветствую. Есть конфиг приложения, который находится в configs/configs.go Но там есть

значения, которые мне нужно засунуть в бд, вместо файла, потому что я хочу менять его во время работы приложения без перезапуска.
И так вопрос:
Как в sqlite3 завести конфиг. Просто создать новую таблицу и туда одну строку записать ? Или это как-то по другому делают ?

12 ответов

19 просмотров

Могут ли быть 2 одновременно работающие процесса, которые будут считывать значение этого конфига? Если нет, то все, что требуется, - сохранить последнее значение при завершении процесса. Если возможен конкурентный доступ, значит есть вероятность гонки данных, и просто базой/файлом не обойтись. Как верно сказали - нужен мьютекс или Лок на уровне базы. Если sql, то select for update. В Гугле самый популярный совет - юзать файл, на втором месте использовать viper.

Elmanov Anton
Могут ли быть 2 одновременно работающие процесса, ...

а что произойдет в случае конкурентного доступа в базе без select for update?

Можно и конфиг перечитывать, зачем бд

В кейсе, который мы обсуждаем, изначально оговорена необходимость базы для сохранения некоторых данных конфигурации, которые могут меняться. Я не пересказывал всю историю процесса из переписки.

Elmanov Anton
В кейсе, который мы обсуждаем, изначально оговорен...

да, я прочитал. но гонка то в какой момент возможна и как она будет выглядеть? судя по "select for update", это, допустим, какой-нить постгрес )

🦄
да, я прочитал. но гонка то в какой момент возможн...

1 процесс пишет, второй читает. Все примерно одновременно = гонка

Elmanov Anton
1 процесс пишет, второй читает. Все примерно одно...

куда он пишет и куда он читает? в постгрес? и будет "гонка"?

🦄
куда он пишет и куда он читает? в постгрес? и буде...

Да неважно куда. Гонка данных и на постгресе и на любом хранилище может быть.

Elmanov Anton
Да неважно куда. Гонка данных и на постгресе и на ...

интересно :) а каким симптомы будут у гонки данных в постгрессе, в таком случае?

🦄
интересно :) а каким симптомы будут у гонки данных...

Чтобы закрыть разговор, приведу следующий пример: В конфиге лежит счётчик. Каждый запуск программы считывает его текущее значение, делает работу и записывает новое значение, прибавив 1 к предыдущему вычитанному.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта