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

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

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

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

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

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

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

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

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

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

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


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