powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Процедура вставки в системе с высокой степенью параллелизма
13 сообщений из 13, страница 1 из 1
Процедура вставки в системе с высокой степенью параллелизма
    #39808626
Darkness1282
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проходил собеседование недавно и там был такой вопрос:

In a highly concurrent system, why is it so hard to write a fool proof procedure that inserts a row into a table that wouldn’t violate any unique constraints?

Я если честно не нашёлся что ответить. Может у кого есть идеи?
...
Рейтинг: 0 / 0
Процедура вставки в системе с высокой степенью параллелизма
    #39808628
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начните с гугл-транслейта, если не смогли перевести.
...
Рейтинг: 0 / 0
Процедура вставки в системе с высокой степенью параллелизма
    #39808636
Darkness1282
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я понял вопрос. Но не знаю ответа. Потому и спрашиваю.
...
Рейтинг: 0 / 0
Процедура вставки в системе с высокой степенью параллелизма
    #39808642
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по названию темы -- нет, не поняли.
...
Рейтинг: 0 / 0
Процедура вставки в системе с высокой степенью параллелизма
    #39808647
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Darkness1282Проходил собеседование недавно и там был такой вопрос:

In a highly concurrent system, why is it so hard to write a fool proof procedure that inserts a row into a table that wouldn’t violate any unique constraints?

Я если честно не нашёлся что ответить. Может у кого есть идеи?А какие тут идеи? Наверное на уровни изоляций намекали. Пока не закомитишь, то и не прочитаешь.
...
Рейтинг: 0 / 0
Процедура вставки в системе с высокой степенью параллелизма
    #39808648
Darkness1282
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хм. Получается, что надо использовать Serializable или UPDLOCK?

Но мне кажется всё равно невозможно полностью избавиться от взаимоблокировок. Я вижу только один способ. Это изменять всегда изменять объекты в одном и том же порядке. Что нереально.
...
Рейтинг: 0 / 0
Процедура вставки в системе с высокой степенью параллелизма
    #39808649
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Darkness1282Хм. Получается, что надо использовать Serializable или UPDLOCK?

Но мне кажется всё равно невозможно полностью избавиться от взаимоблокировок.Каша в голове у вас. Взаимоблокировки -- это побочный эффект обеспечения конкурентного доступа к данным через блокировочный механизм. А вас не про побочные эффекты спрашивают, а про основной механизм, так сказать.

Darkness1282Я вижу только один способ. Это изменять всегда изменять объекты в одном и том же порядке. Что нереально.Почти любой порядок доступа к данным легко обсепечивается через очереди в любой их реализации. Но отклик будет страдать, да.
...
Рейтинг: 0 / 0
Процедура вставки в системе с высокой степенью параллелизма
    #39808652
Darkness1282
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что то я совсем запутался...Как звучал бы правильный ответ?
...
Рейтинг: 0 / 0
Процедура вставки в системе с высокой степенью параллелизма
    #39808653
Darkness1282
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Перед чтением или изменением объект блокируется. То есть другим транзакциям запрещается изменять или даже читать этот объект до тех пор, пока первая транзакция не закончит с ним работать. Нужно было просто рассказать про уровни изоляции?
...
Рейтинг: 0 / 0
Процедура вставки в системе с высокой степенью параллелизма
    #39808654
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Darkness1282Что то я совсем запутался...Как звучал бы правильный ответ?

Ну, блин, я помню такой вопрос из практики. Констрейны-то не транзакционно проверяются сервером. У вас такого уровня доступа, чтобы програмно проверить их, как у сервера - нет.
...
Рейтинг: 0 / 0
Процедура вставки в системе с высокой степенью параллелизма
    #39808656
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Darkness1282Перед чтением или изменением объект блокируется. То есть другим транзакциям запрещается изменять или даже читать этот объект до тех пор, пока первая транзакция не закончит с ним работать. Нужно было просто рассказать про уровни изоляции?У вас вопрос про "procedure that inserts a row", т.е. никакого объекта перед вставкой еще нет.
...
Рейтинг: 0 / 0
Процедура вставки в системе с высокой степенью параллелизма
    #39808657
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Darkness1282Что то я совсем запутался...Как звучал бы правильный ответ?На это вопрос правильным ответом была бы демонстрация вашего опыта или хотя бы теоретических знаний в вопросах обеспечения конкурентного доступа к данным. Критерии уж уточняйте у того, кто его вам задал.
...
Рейтинг: 0 / 0
Процедура вставки в системе с высокой степенью параллелизма
    #39808841
Glebanski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Darkness1282,

[q]hard to write a fool proof procedure that inserts a row into a table that wouldn’t violate any unique constraints?[/q]

Наверно потому, что никто не проверяет наличие (идентичной) записи перед вставкой, а ловят это дело постфактум - через исключение?
Автор вопроса предполагал, что в не "highly concurrent system" кто-то проверяет заранее вставляемую запись на неуникальность? Типа, в НЕнагруженной системе мы проверяем, а в нагруженной - времени нет. Странный паттерн.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Процедура вставки в системе с высокой степенью параллелизма
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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