powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Сложная система логических блокировок
10 сообщений из 10, страница 1 из 1
Сложная система логических блокировок
    #33409420
coldshadow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотел спросить о такой вот задаче. Есть куча объектов(собственно под классом - таблица), находящихся в иерархии зависимости определённой. То есть фактически - дерево. Далее есть куча разнообразных форм, на которых объекты могут группироватся. Теперь собственно задача: нужно настроить блокировку объектов таким образом, чтобы юзеры не могли одновременно редактировать объекты.
Также чтобы нельзя было бы редактировать объекты которые другой юзер может удалить.
Как лучше организовать блокировку такую, кто-то сталкивался с такой ситуацией?
...
Рейтинг: 0 / 0
Сложная система логических блокировок
    #33409455
Фотография Calm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не очень понял сути вопроса.
Если хотим поредактировать узел дерева A, то смотрим, не юзается ли он или его любой предок другим юзером.
Как это реализовать?
...
Рейтинг: 0 / 0
Сложная система логических блокировок
    #33409471
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что тут сложного? Тема блокировок уже дважды поднималась в этом форуме, здесь и здесь
...
Рейтинг: 0 / 0
Сложная система логических блокировок
    #33409742
coldshadow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CalmНе очень понял сути вопроса.
Если хотим поредактировать узел дерева A, то смотрим, не юзается ли он или его любой предок другим юзером.
Как это реализовать?

На каждой форме может быть много объектов, причём не обязательно одного типа.

Пример:
Есть форумы, у каждого форума - подразбиение на темы. У каджой темы - на подтемы(и т.д. по подтемам), у каждой подтемы - много дискуссий. В каждой дискуссии - много постов. Автором поста - тоже объект (человек).

Количества: форумов - 100. В каждом форуме - 100 тем, уровень подтем к примеру - 10, на каждом уровне - 10 подтем.
Итого всего тем в сумме - 100*100*10*10 == 1.000.000
В каждой теме - 100 дискуссий. В каждой дискуссии 100 постов

Теперь делаем форму, на которой юзер видит все свои посты скажем за последнюю неделю. Их к примеру 50штук. Таких юзеров 100.

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

Вот и хотел узнать, может кто знает схему блокировки без кучи инсертов в базу, а оптимизированную..
...
Рейтинг: 0 / 0
Сложная система логических блокировок
    #33409745
coldshadow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Александр ГoлдунА что тут сложного? Тема блокировок уже дважды поднималась в этом форуме, здесь и здесь

К сожалению тут ситуация более специфична, потому и создал новую тему
...
Рейтинг: 0 / 0
Сложная система логических блокировок
    #33409793
coldshadow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как вариант решения было бы хорошо найти возможность 1-й записью (и 1-м инсертом) однозначно определять большое кол-во записей по таблице.
Тогда можно было бы ставить лок на несколько записей таблицы, но вот хорошо бы узнать как это возможно (без развернутых возможностей баз данных, учёт на MySQL 3-й)
...
Рейтинг: 0 / 0
Сложная система логических блокировок
    #33409799
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
coldshadow
К сожалению тут ситуация более специфична, потому и создал новую тему

Ничего там специфичного нет. Невнимательно читал или плохо вдумывался.
coldshadowКак вариант решения было бы хорошо найти возможность 1-й записью (и 1-м инсертом) однозначно определять большое кол-во записей по таблице. Тогда можно было бы ставить лок на несколько записей таблицы,

Блокировать надо не записи в таблице, а объекты логики. Объектом может быть, например, пост, дискуссия, форум. У объектов может быть иерархия. Определись с этим. А так же нужно определиться с состояниями объектов и с тем, в каком состоянии приемлемо блокирование. Например, непонятно, зачем блокировать объект в состоянии просмотра. Но этой уже детали специфики.
coldshadow
но вот хорошо бы узнать как это возможно (без развернутых возможностей баз данных, учёт на MySQL 3-й)
Про MySQL лучше в соответствующий раздел. Хотя форумы, гостевые книги и прочее и можно отнести к информационным системам предприятий, но все-таки тут больше обсуждаются задачи других классов, в рамках которых MySQL значительно менее популярен.
...
Рейтинг: 0 / 0
Сложная система логических блокировок
    #33410409
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В MySQL есть такая конструкция for update в селекте, именно для твоего случая.
Но нужно обязательно установить меньше времени для сброса блокировок убитых сессий.
Вообще полезно начинать с мануала сервера БД в котором работаешь...
...
Рейтинг: 0 / 0
Сложная система логических блокировок
    #33411114
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
coldshadowХотел спросить о такой вот задаче. Есть куча объектов(собственно под классом - таблица), находящихся в иерархии зависимости определённой. То есть фактически - дерево. Далее есть куча разнообразных форм, на которых объекты могут группироватся. Теперь собственно задача: нужно настроить блокировку объектов таким образом, чтобы юзеры не могли одновременно редактировать объекты.
Также чтобы нельзя было бы редактировать объекты которые другой юзер может удалить.
Как лучше организовать блокировку такую, кто-то сталкивался с такой ситуацией?

Есть такой подход - optimistic locking ( http://www.ajlopez.net/ArticuloVe.php?Id=284 ). Идея его в том, что коллизии (накладывающиеся операции нескольких пользователей, подобные описанным выше) не исключаются перманентно путем блокировок, а выявляются при обновлениях в общей БД. Подход исходит из того, что подобные коллизии - не правило, а исключение. Это правильно, потому что в нормальной системе несколько пользователей НЕ ДОЛЖНЫ одновременно обновлять один и тот же объект (иначе это не система, а бардак). При этом подходе снимается всякая головная боль с блокировками.
...
Рейтинг: 0 / 0
Сложная система логических блокировок
    #33411256
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Александр Голдун:
Как всегда народ ничего не прочитал/не читал,на Оракловом форуме недавно такая же тема поднималась, я даже исходники кинул свои:
Главное выбрать правильный алгоритм хэширования для формирования кода блокировки:
Логические блокировки
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Сложная система логических блокировок
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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