powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Разрешение коллизий
21 сообщений из 21, страница 1 из 1
Разрешение коллизий
    #39122981
simonov21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Есть сл. задача, необходимо ваше мнение.

Дано:
Веб-приложение. Серверная часть на Java. Клиенты подключаются с помощью стандартного браузера и производят операции над данными. Число клиентов – до 5000. Операции – просмотр (поиск, сортировка, фильтрация), создание, удаление, изменение записей. Данные находятся в реляционной БД.
Возможны ситуации, когда более чем один пользователь вносит изменения в один объект модели данных. Эти изменения могут быть не конфликтующими (пользователи изменяют разные поля и это не нарушает целостность данных) и конфликтующими (пользователи изменяют одно и то же поле(поля) или же разные поля с нарушением целостности данных или связанные поля разных объектов так же с нарушением целостности).

Задача:
Реализовать подсистему обнаружения и разрешения коллизий в веб-приложении с высокой эффективностью, минимальными затратами на передачу данных между клиентом и сервером и минимальным эффектом на производительности клиентской и серверной части.

Вопросы:
1. Стандартные / распространённые / общепринятые способы разрешения таких коллизий в веб-приложениях

2. Существующие реализации этих способов в продуктах / фреймворках / библиотеках и т.п.
...
Рейтинг: 0 / 0
Разрешение коллизий
    #39122985
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это вопрос не по Java. Ищи по ключевым словам SQL, DBMS, Optimistic/Pessimistic locking.
...
Рейтинг: 0 / 0
Разрешение коллизий
    #39122995
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
simonov21,

Перенести разруливание коллизий и апдейт вообще в память Java. Там на много проще и быстрее разрулить многопоточность. В БД сбрасывать изменения синхронно, например, через очередь чтобы устранить коллизии вообще. Опять же, надо понять какого типа блокировки требует бизнес-логика. Число клиентов до 5000 это не о чем. Важно количество запросов в пиковый период времени.
В идеале, избавиться от коллизий вообще.
...
Рейтинг: 0 / 0
Разрешение коллизий
    #39123009
simonov21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, спасибо.
Скажите, а есть готовые примеры, которые необходимо допилить?

и какие есть методы самые распространенные или все очень индивидуально?
...
Рейтинг: 0 / 0
Разрешение коллизий
    #39123018
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
simonov21,

Да в любых приложениях.
Либо пессимистическая блокировка - либо оптимистическая.

Пессимистическая - переход в редактирование чего-то, только через блокировку на сервере.

Оптимистическая - вместе с объектом (в вашем случае полем или набором согласованный полей) хранится его номер версии и выдается на клиента (но не показывается). При обновлении на сервере блокировка, проверяете совпадение номеров - если да меняете и новый номер, если нет - тут в зависимости от задачи.

Можно еще и очереди рассылки отгородить, чтоб оповещать клиента, что данные изменились и надо перечитать (подсветить, что кто-то правит).
...
Рейтинг: 0 / 0
Разрешение коллизий
    #39123023
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
simonov21,

Да, так сложно сказать, потому что постановка задачи на пальцах. Есть ведь разные системы. Например игры - там все дружно вносят изменения в одну и ту же модель. Или ERP - там отдельные документы и оптимистичным локом разруливаются почти все проблемы. Мы писали ERP, где около сотни серверов сливали апдейты на центральный сервер. Всё тоже на очередях, но нужно было писать отдельную логику резолва конфликтов, так как апдейты уже зафиксированы на локальных серверах и откатывать их нельзя.
...
Рейтинг: 0 / 0
Разрешение коллизий
    #39123027
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Арсеньев,

Совершенно верно. Автору стоит разобраться с тем блокировками и очередями, где и для чего применять. И тогда, скорее всего, решение станет более понятным.
...
Рейтинг: 0 / 0
Разрешение коллизий
    #39123086
simonov21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Система реализует поддержку большого количества бизнес-процессов. В ходе этих процессов создаются/удаляются/изменяются объекты, представленные в виде записей в БД. Данные и их целостность критичны для бизнеса.

Вообще если говорить просто, то меня интересуют методы которые обычно используют, но на этот вопрос видимо ответил Сергей Арсеньев, а вот какие готовые библиотеки или фреймворки есть, я так и не понял.
...
Рейтинг: 0 / 0
Разрешение коллизий
    #39123088
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
simonov21,
странный у вас вопрос.
То у вас записи, то вдруг объекты появляются
simonov21в один объект модели данных
Вы про ОРМ слышали?
Он решает все ваши вопросы. Не на 5-ку конечно, но вам хватит.
...
Рейтинг: 0 / 0
Разрешение коллизий
    #39123090
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
simonov21,
вы интервью берёте? Похоже вы не программист.
Или флейм?
...
Рейтинг: 0 / 0
Разрешение коллизий
    #39123093
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
simonov21готовые библиотекихибер
...
Рейтинг: 0 / 0
Разрешение коллизий
    #39123112
simonov21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
нет, я интервью не беру, а хочу узнать какой метод решения оптимальный и какие библиотеки или фреймы, лучше использовать для данной задачи.
...
Рейтинг: 0 / 0
Разрешение коллизий
    #39123115
simonov21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Код: plaintext
1.
странный у вас вопрос.
То у вас записи, то вдруг объекты появляются

Бизнес-объект может быть представлен несколькими записями в разных таблицах БД.
...
Рейтинг: 0 / 0
Разрешение коллизий
    #39123119
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
simonov21, ты конечно мой пост проигнорировал. Продолжай дальше.
...
Рейтинг: 0 / 0
Разрешение коллизий
    #39123121
simonov21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, спасибо, я видел твой пост
...
Рейтинг: 0 / 0
Разрешение коллизий
    #39123135
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
simonov21Бизнес-объект может быть представлен несколькими записями в разных таблицах БД.
глубокая мысль.
Ты свои мысли высказывай) раз не интервью.
...
Рейтинг: 0 / 0
Разрешение коллизий
    #39123138
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
simonov21нет, я интервью не беру, а хочу узнать какой метод решения оптимальный и какие библиотеки или фреймы, лучше использовать для данной задачи.
а у журналиста разве не такая задача?
...
Рейтинг: 0 / 0
Разрешение коллизий
    #39123148
simonov21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Мы будем разводить полемику по задачам журналиста?

Код: plaintext
Ты свои мысли высказывай) раз не интервью.

Мысли были четко сформированы в начале топика.

Если есть, что сказать по делу, то говори, если нет то........и сам понимаешь.
...
Рейтинг: 0 / 0
Разрешение коллизий
    #39123153
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
simonov21,
а может ты svenom)))) LOL
- у тебя конкр.вопросы - Программист? Хибер?
...
Рейтинг: 0 / 0
Разрешение коллизий
    #39123180
simonov21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
Библиотеку уже смотрю, спасибо.
да программист.
...
Рейтинг: 0 / 0
Разрешение коллизий
    #39124361
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
simonov21,
тут библиотеки дело вторичное, это вопрос скорее относится к административной области. чьё исправление (от какого клиента) должно быть сохранено не решит ни одна библиотека, должно быть административное решение - что важнее, статус клиента или время внесения изменения (это как пример). только при таких уточнениях правил можно что-то программное использовать. как вариант технического решения сейчас можно при редактировании выбранной записи несколькими клиентами индицировать у каждого кто ещё редактирует данную запись(до внесения/отправки данных на сервер) - тут ни каких библиотек не требуется.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Разрешение коллизий
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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