powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF: Как вы делаете пакетные операции?
25 сообщений из 179, страница 5 из 8
EF: Как вы делаете пакетные операции?
    #38889158
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
В MSSQL размер лога транзакций БД тоже можно ограничить. :-)И? :)Может сломаться не хуже чем в Оракле. :-)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889165
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
И? :)Может сломаться не хуже чем в Оракле. :-)Ну да. У меня просто после Оракла, где самому надо делать коммиты (а если их не делать, то по шапке надают за повисшие анонимные транзакции), выработался рефлекс.
И, как следствие, с MS SQL проблем пока не было. :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889168
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУО больших объемах веду речь, выше я писал более конкретно - прочти еще раз. Реальные массивы данных - да. Что тебя пугает?
Я (и не только я) уже несколько раз указали, где ты не просто облажался, а обосрался с ног до головы. Вот тут 17305632

Ок, давай посмотрим, на сколько большие объёмы данных ты имел в виду:

МСУЧем тебе не "штатная ситуация" для обновления сотрудников из 1С / аксапты / сапа? Обновляет отдельная песочница в виде вин сервиса.

МСУВот тебе тот же элементарный кейс, синхронизация информации (фион, табельный номер, подразделение) о сотрудниках из аксапты. 30К сотрудников , представь себе ситуацию, когда ночной джоб перелопатил 29.9К сотрудников и по каким-то причинам упал. Какой смысл отката всей транзакции? Да и зачем мне захватывать объекты в БД с определенным уровнем изоляции? Что за бред?

Т.е. ты хочешь сказать, что 30К сотрудников это проблема для транзакции?

Или ты сказал о 30К сотрудников, но на самом деле имел в виду абстрактные миллионы и миллиарды записей в абстрактных базах данных абстрактных организаций в вакууме?

Я зачем кейс просил? Чтобы обсуждать предметно, вести дискуссию по сути, основываясь на каких-то данных, приближенных к реальности. Ты же растёкся говном по кафелю. И это ты обосрался. Если ты так не считаешь, то задам вопрос ещё раз. 30К — проблема для транзакции? Докажешь?
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889175
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КСогласование должно быть в пределах сущности. В обсуждаемом случае эта сущность "сотрудник".

Ну хорошо. Идёт импорт. И почему-то решено делать его во время рабочего дня. Половина сотрудников успешно импортнулось, половина ещё в процессе. И тут кто-то решил сделать некий сводный отчёт, допустим по КТУ. А как раз вместе с сотрудниками импортятся их обновлённые КТУ. Что получится в отчёте не подскажешь? Просто интересно, кто-то такую ситуацию считает нормально? Если да, то я умываю руки. Видимо мы живём в разных реальностях.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889176
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Может сломаться не хуже чем в Оракле. :-)Ну да. У меня просто после Оракла, где самому надо делать коммиты (а если их не делать, то по шапке надают за повисшие анонимные транзакции), выработался рефлекс.
И, как следствие, с MS SQL проблем пока не было. :) SET IMPLICIT_TRANSACTIONS ON поможет вернуть оракловую романтику.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889180
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КСогласование должно быть в пределах сущности. В обсуждаемом случае эта сущность "сотрудник".

Ну хорошо. Идёт импорт. И почему-то решено делать его во время рабочего дня. Половина сотрудников успешно импортнулось, половина ещё в процессе. И тут кто-то решил сделать некий сводный отчёт, допустим по КТУ. А как раз вместе с сотрудниками импортятся их обновлённые КТУ. Что получится в отчёте не подскажешь? Просто интересно, кто-то такую ситуацию считает нормально? Если да, то я умываю руки. Видимо мы живём в разных реальностях.Но если это так важно, запретить взятие некоторых отчётов во время синхронизации особого труда не составит.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889192
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КСогласование должно быть в пределах сущности. В обсуждаемом случае эта сущность "сотрудник".

Ну хорошо. Идёт импорт. И почему-то решено делать его во время рабочего дня.Вот ведь странное желание импортировать горячие предложения от отелей как можно быстрее :)

hVostt, ну как обычно всё от задачи ведь зависит :) При отгрузке нефти тоже никто ночи не ждёт.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889203
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAВот ведь странное желание импортировать горячие предложения от отелей как можно быстрее :)

hVostt, ну как обычно всё от задачи ведь зависит :) При отгрузке нефти тоже никто ночи не ждёт.

Я всё понимаю, задачи разные, решения тоже разные. Горячие тур. предложения и, скажем, месячный отчёт о зарплате сотрудникам, вещи таки разные, не находишь? Придёт злющий бухгалтер к МСУ и пусть он ему объясняет, что транзакции априори плохие и тычет в лицо ему рекомендациями от майкрософта.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889208
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНо если это так важно, запретить взятие некоторых отчётов во время синхронизации особого труда не составит.

Ну может где-то вообще не важно. Если не важно, то и фиг с ним
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889216
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНо если это так важно, запретить взятие некоторых отчётов во время синхронизации особого труда не составит.

Решение сделать _ночной_ импорт каких-то данных / реализовать _запрет_ каких-то отчетов во время импорта - ведет к стремительной деградации ИС в целом. Обеспечивайте ACID вне зависимости от времени суток.

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

И чо вы тут усираетесь - непонятно.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889234
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAМСУskyANA, опять ты со своими NoSQL инкарнациями :)Да при чём тут NoSQL.
Я просто намекнул, что не плохо бы уточнять о каком уровне операции идёт речь. :)
NoSQL рассматриваем как eventual consistenc, почему нет. Что ты имеешь ввиду под "уровнем" операции? )

skyANAМСУТут речь немного не о том. Речь о массовых операциях, интеграциях, синхронизациях. Обеспечить ACID на уровне операции (пакет в виде классов) - да, обеспечить ACID на уровне всего импорта - нет. Вот о чем речь.Реализовать импорт милииона чего-то там как атомарную операцию - это конечно глупо :)
Теперь объясни это утырку хвосту :)

hVosttМСУО больших объемах веду речь, выше я писал более конкретно - прочти еще раз. Реальные массивы данных - да. Что тебя пугает?
Я (и не только я) уже несколько раз указали, где ты не просто облажался, а обосрался с ног до головы. Вот тут 17305632
Ок, давай посмотрим, на сколько большие объёмы данных ты имел в виду:
Ты читаешь жопой? 17310432

МСУЧем тебе не "штатная ситуация" для обновления сотрудников из 1С / аксапты / сапа? Обновляет отдельная песочница в виде вин сервиса.

hVosttТ.е. ты хочешь сказать, что 30К сотрудников это проблема для транзакции?
А почему это не может быть проблемой? "Сотрудник" - может быть не линейной записью, а составной (подклассы Должность, Штатное расписание, Организация и так далее). Процессинг "сотрудника" может длиться не быстро. К примеру, если "сотрудник" процессится секунду, то вся синхронизация из 30К сотрудников займет уже 8 часов. Суть улавливаешь?

hVosttЯ зачем кейс просил? Чтобы обсуждать предметно, вести дискуссию по сути, основываясь на каких-то данных, приближенных к реальности. Ты же растёкся говном по кафелю. И это ты обосрался. Если ты так не считаешь, то задам вопрос ещё раз. 30К — проблема для транзакции? Докажешь?
Я тебе кейс и привёл. Да какой тут кейс, возьми любую жизненную ситуацию по организации импорта и синхронизации из внешних систем. Куда не плюнь, всё тоже самое. Просто ты днище и ничерта не понимаешь суть :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889357
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУА почему это не может быть проблемой? "Сотрудник" - может быть не линейной записью, а составной (подклассы Должность, Штатное расписание, Организация и так далее). Процессинг "сотрудника" может длиться не быстро. К примеру, если "сотрудник" процессится секунду, то вся синхронизация из 30К сотрудников займет уже 8 часов. Суть улавливаешь?

Пусть. Только при чём тут транзакция? В чём здесь проблема конкретно транзакции? Ты так и не ответил.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889359
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЯ тебе кейс и привёл. Да какой тут кейс, возьми любую жизненную ситуацию по организации импорта и синхронизации из внешних систем. Куда не плюнь, всё тоже самое. Просто ты днище и ничерта не понимаешь суть :)

Ни о чём. Какая ещё любая ситуация, ты больной?
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889490
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

тут все просто
Скайана в принципе сказал что надо
тут многие работают с "необязательной информацией" (ну с трех сайтов скачал инфу, а с четвертой неполностью - за это с работы не выгонят, пофиг что там твой клиент не обеспечен полной инфой с 4ех сайтов, убытков не будет скорее всего, в следующий раз все будет ок, мало кокой клиент из такого инцидента уйдет из сайта и т.д.)
с синхронизацией "сотрудников" в принципе то же самое, если на основе этой инфы принимаются какие то решения, которые могут привести к убыткам, то это плохо, а если это инфа нужна для выписки праздничных конвертов по случаю 12 июня, то и пофиг
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889492
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttПусть. Только при чём тут транзакция?
Ну вроде взрослый мальчик, пора уже знать, что батчи выполняются в транзакции.

hVosttВ чём здесь проблема конкретно транзакции? Ты так и не ответил.
Я уже 100 раз ответил (и не только я), в чем проблема "конкретно" транзакции. Повышая уровень изоляции и заключая импорт в транзакцию, ты понижаешь вероятность непоследовательности данных, но при этом появляется такой недостаток, как сокращение параллелизма. Вероятность блокировок возрастает и весь этот процесс кардинально влияет на многопользовательский доступ. О этом тоже тебе всё разжевали. Для решения возможных проблем параллелизма в виде зависимости от незафиксированных данных, непоследовательного анализа и чтения фантомов нужно оборачивать ACID объект или группу объектов - у меня в примере EF это группа объектов, которая определяется как пакет из сотни экземпляров классов (с подклассами), определяемые по формуле i % 100 == 0. Это сделано для оптимизации скорости импорта. Если есть желание еще более уменьшить фантомную зависимость, оборачивай в ACID один экземпляр, а не группу. Но тогда приготовься просесть по времени отработки всего импорта. Что не понятно?

hVosttМСУЯ тебе кейс и привёл. Да какой тут кейс, возьми любую жизненную ситуацию по организации импорта и синхронизации из внешних систем. Куда не плюнь, всё тоже самое. Просто ты днище и ничерта не понимаешь суть :)
Ни о чём. Какая ещё любая ситуация, ты больной?
Обычная любая ситуация с импортом данных, что непонятно говорю? Купи себе уже голову, клоун
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889510
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRoshVostt,

тут все просто
Скайана в принципе сказал что надо
тут многие работают с "необязательной информацией" (ну с трех сайтов скачал инфу, а с четвертой неполностью - за это с работы не выгонят, пофиг что там твой клиент не обеспечен полной инфой с 4ех сайтов, убытков не будет скорее всего, в следующий раз все будет ок, мало кокой клиент из такого инцидента уйдет из сайта и т.д.)
с синхронизацией "сотрудников" в принципе то же самое, если на основе этой инфы принимаются какие то решения, которые могут привести к убыткам, то это плохо, а если это инфа нужна для выписки праздничных конвертов по случаю 12 июня, то и пофигЕсли в случае ошибки отменятся все результаты сеанса репликации - да, это намного улучшит качество принятия решения.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889520
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЕсли в случае ошибки отменятся все результаты сеанса репликации - да, это намного улучшит качество принятия решения.
Всё или ничего

...
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889530
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosтут многие работают с "необязательной информацией"
Ещё один сцуко теоретик нарисовался Информация у нас всех более чем "обязательная". И эта обязательность, в том числе и информация по сотрудникам, обеспечивается определенной степенью изоляции. Один объект (накладная, банковская операция, сотрудник) не может быть разорван, он либо отпроцессится либо нет. И то и другое - нормальные штатные ситуации. Изолировать нужно объект или группу объектов, но никак не сам процессинг. Когда вы с хвостом убъете уже себя об стену? :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889555
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

не ляля
отчет о численности требует всех
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889556
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как же я буду распределять работы по сотрудникам, если их нет? кто блин ПЛАН будет выполнять? на кого наряды выписывать?
делайте свои сайты и не вымахивайтесь :)
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889562
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
давай расстрельный список полностью, а не то дядя берия идет к тебе!
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889568
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosотчет о численности требует всех
Отчет с нулевой численностью укротит твою потенцию? )

ViPRosкак же я буду распределять работы по сотрудникам, если их нет? кто блин ПЛАН будет выполнять? на кого наряды выписывать?
Так о том же и речь. Зачем рубить весь процессинг из-за одной пакетной ошибки? Так хоть 95% сотрудников распределишь.

ViPRosдавай расстрельный список полностью, а не то дядя берия идет к тебе!
А нету его, процессинг же упал.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889570
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

ну жди киллера, тогда
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889599
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЯ уже 100 раз ответил (и не только я), в чем проблема "конкретно" транзакции. Повышая уровень изоляции и заключая импорт в транзакцию, ты понижаешь вероятность непоследовательности данных, но при этом появляется такой недостаток, как сокращение параллелизма. Вероятность блокировок возрастает и весь этот процесс кардинально влияет на многопользовательский доступ. О этом тоже тебе всё разжевали. Для решения возможных проблем параллелизма в виде зависимости от незафиксированных данных, непоследовательного анализа и чтения фантомов нужно оборачивать ACID объект или группу объектов - у меня в примере EF это группа объектов, которая определяется как пакет из сотни экземпляров классов (с подклассами), определяемые по формуле i % 100 == 0. Это сделано для оптимизации скорости импорта. Если есть желание еще более уменьшить фантомную зависимость, оборачивай в ACID один экземпляр, а не группу. Но тогда приготовься просесть по времени отработки всего импорта. Что не понятно?

Давай так, вот ты привёл пример на EF с группами объектов. Импорт таким способом сколько выполняется по времени? Примерно, ну хотя бы приблизительно? И второй вопрос, работает ли кто-то ещё с БД в то время, когда запускается этот джоб? Скажешь? Я тогда отвечу, почему такое решение плохое.
...
Рейтинг: 0 / 0
EF: Как вы делаете пакетные операции?
    #38889607
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

А за подробно описанный процесс конечно спасибо, слегка неожиданно, вот можешь же!
...
Рейтинг: 0 / 0
25 сообщений из 179, страница 5 из 8
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF: Как вы делаете пакетные операции?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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