Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Консистентность данных в Postgre / 4 сообщений из 4, страница 1 из 1
06.03.2018, 18:35
    #39611435
Dmitry100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Консистентность данных в Postgre
Господа, добрый день!

Устраиваюсь на новую работу Java-разработчиком. И мне выслали тестовое задание (как мне кажется несколько странное).
Сначала даю коротенькую постановку задачи, а чуть ниже объясню почему я так думаю.

авторРазработать приложение, предоставляющее простой интерфейс для загрузки файлов xls. При этом в БД(желательно использовать Postgres) должны сохраняться все числовые значения из первого столбца(номера телефонов).

Реализовать поток или другое приложение, для постоянного мониторинга таблицы и проставления статуса каждому номеру, мобильный или нет. Признак мобильности определять по алгоритму: номер начинается с 7, +7 или 8 и кроме этого содержит 10 цифр.

Реализовать возможность параллельной(одновременной работы) нескольких экземпляров приложений без помехи друг другу.

Предполагаемая структура таблицы:

Phones:

id

phone (int)

is_mobile (boolean)

is_locked (boolean)

Ну допустим написал я приложение для мониторинга в несколько потоков. Единственное предназначение потоков прочитать таблицу и если не установлен признак is_mobile (как я понял он должен быть nullable), я смотрю на номер, проставляю правильный is_mobile. Таблица или записи в ней будет правильно блокироваться самой СУБД при UPDATE-ах и SELECT-ах. Я не нашел для себя ни одного кейса, когда потоки (или разные экземпляры приложений) могут как-то помешать друг-другу. Отсюда вопрос: нафига нам вообще поле is_locked ? Разве реляционных СУБД вообще такие поля заводятся? Я в своей практике ни разу такого не встречал.
...
Рейтинг: 0 / 0
07.03.2018, 06:04
    #39611600
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Консистентность данных в Postgre
Dmitry100,

Единственный кейс который приходит в голову, когда обрабатываются данные кусками.
Т.е. в начале лочим несколько номеров.
Проверяем-изменяем.
Потом анлочим.
Ну а так да.
Задание странное.
...
Рейтинг: 0 / 0
07.03.2018, 07:25
    #39611605
fte
fte
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Консистентность данных в Postgre
Dmitry100 Отсюда вопрос: нафига нам вообще поле is_locked ?

Может это - Блокировка за неуплату абон. платы? а не то, что Вы думаете...
...
Рейтинг: 0 / 0
07.03.2018, 08:14
    #39611620
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Консистентность данных в Postgre
Dmitry100,

безотносительно задачи (т.к. согласен с предыдущим оратором).


допустим "клиентская транзакция," будь она реализована как транзакция , несколько длинновата.
даже допустим блокируемый ресурс несколько великоват.

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

ну и по другим причинам удержание (блокирующего ресурсы) соединения на все время транзакции может быть нежелательно и на более коротких време нах
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Консистентность данных в Postgre / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]