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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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