|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Добрый день. Вопрос к использующим СУБД FireBird: когда вы используете транзакции с параметрами Snapshot? - в каких случаях? Спасибо. Модератор: Тема перенесена из форума "Delphi". ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 16:54 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Опять трололо. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 16:56 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамОпять трололо.И зачем ты его сюда привел, если трололо? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 17:01 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Тут профильный раздел. И поскольку прошлые топики получились популярными и не были удалены/закрыты. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 17:06 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Сведем очередь c умаВопрос к использующим СУБД FireBird: когда вы используете транзакции с параметрами Snapshot? - в каких случаях? Когда для решения задач требуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 17:10 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Сведем очередь c умакогда вы используете транзакции с параметрами Snapshot? Ну, начнём с того, что у Firebird нет TIL Snapshot. Имеющиеся concurrency и consistency несколько отличаются от стандарта в плане описываемых им артефактов. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 17:36 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, ты попутал с RepeatableRead. Вот его нет, а snapshot как раз есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 17:37 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
YuRockСведем очередь c умаВопрос к использующим СУБД FireBird: когда вы используете транзакции с параметрами Snapshot? - в каких случаях? Когда для решения задач требуется. При решении каких своих задач ты их использовал? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 17:43 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
kdvты попутал с RepeatableRead. Вот его нет, а snapshot как раз есть. [src С++]#define isc_tpb_version1 1 #define isc_tpb_version3 3 #define isc_tpb_consistency 1 #define isc_tpb_concurrency 2 #define isc_tpb_shared 3 #define isc_tpb_protected 4 #define isc_tpb_exclusive 5 #define isc_tpb_wait 6 #define isc_tpb_nowait 7 #define isc_tpb_read 8 #define isc_tpb_write 9 #define isc_tpb_lock_read 10 #define isc_tpb_lock_write 11 #define isc_tpb_verb_time 12 #define isc_tpb_commit_time 13 #define isc_tpb_ignore_limbo 14 #define isc_tpb_read_committed 15 #define isc_tpb_autocommit 16 #define isc_tpb_rec_version 17 #define isc_tpb_no_rec_version 18 #define isc_tpb_restart_requests 19 #define isc_tpb_no_auto_undo 20 #define isc_tpb_no_replication 22[/src] Ткни пальцем, который тут есть snapshot. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 17:43 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovconcurrency тебе ткнуть где это в embedded SQL называется SNAPSHOT ? Чего фигней страдаешь? concurrency = SNAPSHOT, перечитай еще раз "Критику уровней изолированности..." ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 17:44 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
kdvтебе ткнуть где это в embedded SQL называется SNAPSHOT ? Чего фигней страдаешь? concurrency = SNAPSHOT, перечитай еще раз "Критику уровней изолированности..." КритикаВ стандарте ANSI SQL-92 [MS, ANSI] определяются четыре уровня изолированности. 1) Незафиксированное Чтение (READ UN-COMMITED). 2) Зафиксированное Чтение (READ COMMITED). 3) Повторимое Чтение (REPEATABLE READ). 4) Сериализуемость (SERIALIZABLE). Может, есть ссылка поновее, где уже есть этот самый SNAPSHOT?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 17:50 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, вот ты упертый. Ясное дело, что в стандарте снапшота нет. Но про снапшот уже давно говорят в отношении СУБД, и он именно то, что в ИБ и ФБ concurrency = SNAPSHOT. https://en.wikipedia.org/wiki/Snapshot_isolation Snapshot isolation has been adopted by several major database management systems, such as SQL Anywhere, InterBase , Firebird , Oracle, PostgreSQL, MongoDB[1] and Microsoft SQL Server (2005 and later). The main reason for its adoption is that it allows better performance than serializability, yet still avoids most of the concurrency anomalies that serializability avoids (but not always all). In practice snapshot isolation is implemented within multiversion concurrency control (MVCC), where generational values of each data item (versions) are maintained: MVCC is a common way to increase concurrency and performance by generating a new version of a database object each time the object is written, and allowing transactions' read operations of several last relevant versions (of each object). Snapshot isolation has been used[2] to criticize the ANSI SQL-92 standard's definition of isolation levels, as it exhibits none of the "anomalies" that the SQL standard prohibited, yet is not serializable (the anomaly-free isolation level defined by ANSI). ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 17:55 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, И вообще. Человек спрашивает про снапшот, ты отвечаешь что в ФБ "снапшота нет", потом ссылаешься что его "в стандарте нет", и т.д. Вот к чему эти выкрутасы? Уровень изолированности snapshot соответствует своему названию, что в ИБ/ФБ, что в других СУБД. Да, нет в стандарте. И что? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 18:01 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
kdvВот к чему эти выкрутасы? Превентивный удар против "да я вообще снапшотом совершенно другое называл". Я старый флеймер и бодаться без согласования терминов не хочу. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 18:22 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Сведем очередь c умаYuRockпропущено... Когда для решения задач требуется. При решении каких своих задач ты их использовал? Это военная тайна, извини. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 18:44 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
YuRock> Это военная тайна, извини. Хороший ответный троллинг, зачёт. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 18:47 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Сведем очередь c ума, можно я культурно финализирую эту переписку? Ответ на вопрос состоит в понимании уровней изолированности транзакций, вообще. Что в них видно, и когда. Если нам надо читать свежие committed записи, мы используем Read Committed. Если нам не надо видеть ничего нового и изменяемого с момента старта транзакции - используем snapshot. Собственно, всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 20:23 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
kdv, я понимаю (по крайней мер, я так думаю, что я понимаю) разницу между видами изоляции транзакций. Интересовали именно случаи прикладного применения снаршота. Ну, для формирование отчетов. А ещё когда? Потому и Поэтому я и спросил в разделе Дельфи, где в основном прикладники - программисты обитают. А сердитый Рустам везде измену зрит. :( ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 22:00 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Сведём очередь с умаНу, для формирование отчетов. А ещё когда? Практически всегда. Я не вижу практической нужды для других уровней изоляции. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 22:21 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, ты не придерживаешься часто встречающегося (в учебниках, статьях и примерах) шаблона "длинная читающая, короткая пишущая ReadCommited транзакции", похоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 00:00 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Сведем очередь c уматы не придерживаешься часто встречающегося (в учебниках, статьях и примерах) шаблона "длинная читающая, короткая пишущая ReadCommited транзакции", похоже. Разумеется нет. Я придерживаюсь гораздо более классического и надёжного шаблона "транзакции минимально необходимой длины". Упомянутый тобою шаблон целиком на совести архитекторов Борланд, сотворивших убогую DB-aware часть VCL. Эта сова была идеальна для плоских файлов DBase и Paradox, но на транзакции натягивается с большим трудом. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 01:28 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovРазумеется нет. Я придерживаюсь гораздо более классического и надёжного шаблона "транзакции минимально необходимой длины". Человеку свойственно визуально персонифицировать собеседников, с которыми он пересекается достаточно часто, из собственного видеоряда, сложившегося по ходу окультуривания. Твой образ для меня давно уже - гордый римский сенатор в тоге с очень высоко задранным носом. А снапшот нужен в первую очередь для того, чтобы обеспечить конфликт при внесении изменений, если данные были изменены кем-то ещё после того, как ты их прочитал и начал думать. Над ними. Ну и для разглядывания непротиворечивого снимка сложной структуры на момент начала разглядывания, конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 03:17 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovСведём очередь с умаНу, для формирование отчетов. А ещё когда? Практически всегда. Я не вижу практической нужды для других уровней изоляции.Например, такая логика. Какой-то процесс (автоматически или с помощью пользователя) ожидает, не появилась ли определенная запись. И если появилась - запускает какой-то еще процесс. Как бы получено подтверждение, что можно. Обычная задача. Ну, так вот. Проверяет он наличие этой записи. Раз в 5 секунд, или 30, или пол часа - не важно, зависит от задачи. Ну так вот, в данном случае имхо целесообразнее использовать RC, чем RR. Потому, что запись может появиться в промежутке между стартом транзакции и SELECT, и снапшот её в таком случае уже не увидит. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 04:58 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Сведём очередь с умаИнтересовали именно случаи прикладного применения снаршота. Ну, для формирование отчетов. А ещё когда? Как-раз для отчетов он, имхо, не обязателен. Отчет - это когда 1-2-3-го числа берутся данные для прошлого месяца от 1-го до 30-го. Там давно уже все закоммичено и не должно меняться, уж тем более в процессе отчета. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 09:28 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
S.G.Как-раз для отчетов он, имхо, не обязателен. Отчет - это когда 1-2-3-го числа берутся данные для прошлого месяца от 1-го до 30-го. Там давно уже все закоммичено и не должно меняться, уж тем более в процессе отчета.Спасибо, поржал. "Не должно" Сведем очередь c умаПри решении каких своих задач ты их использовал?Практически все задачи, где следует прочитать какие-то данные, каким-то образом их агрегировать (или нет), и принять решение исходя из результата. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 09:42 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
YuRockDimitry Sibiryakovпропущено... Практически всегда. Я не вижу практической нужды для других уровней изоляции.Например, такая логика. Какой-то процесс (автоматически или с помощью пользователя) ожидает, не появилась ли определенная запись. И если появилась - запускает какой-то еще процесс. Как бы получено подтверждение, что можно. Обычная задача. Ну, так вот. Проверяет он наличие этой записи. Раз в 5 секунд, или 30, или пол часа - не важно, зависит от задачи. Ну так вот, в данном случае имхо целесообразнее использовать RC, чем RR. Потому, что запись может появиться в промежутке между стартом транзакции и SELECT, и снапшот её в таком случае уже не увидит. Получасовой снапшот? В наше время за это били канделябром. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 10:31 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Старый плюшевый мишкаDimitry SibiryakovРазумеется нет. Я придерживаюсь гораздо более классического и надёжного шаблона "транзакции минимально необходимой длины". Человеку свойственно визуально персонифицировать собеседников, с которыми он пересекается достаточно часто, из собственного видеоряда, сложившегося по ходу окультуривания. Твой образ для меня давно уже - гордый римский сенатор в тоге с очень высоко задранным носом. А снапшот нужен в первую очередь для того, чтобы обеспечить конфликт при внесении изменений, если данные были изменены кем-то ещё после того, как ты их прочитал и начал думать. Над ними. Ну и для разглядывания непротиворечивого снимка сложной структуры на момент начала разглядывания, конечно. Скажите, пжалста, дату, начиная с которой можно менять одни и те же данные в разных транзакциях. PS На "думать" уровень изоляции не влияет. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 10:34 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
pastorСкажите, пжалста, дату, начиная с которой можно менять одни и те же данные в разных транзакциях.Можно с любой, меняй, мы не возражаем. ПыСы. Если ты "менять" понял как update+commit, а не update, то ССЗБ. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 11:35 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
29.11.2017 10:31, pastor пишет: > Получасовой снапшот? > В наше время за это били канделябром. у Оракела тоже бьют. причем, сам сервер. ORA-01555: snapshot too old архитектурная особенность связанная с ограниченным размером "сегмента отката". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 12:16 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
YuRockНапример, такая логика. Какой-то процесс (автоматически или с помощью пользователя) ожидает, не появилась ли определенная запись. И если появилась - запускает какой-то еще процесс. Как бы получено подтверждение, что можно. Обычная задача. И решается она обычным методом: подпиской на событие, по получению которого стартует транзакция (любой необходимой изоляции) и вычитывает/проверяет всё что хочет. А мозолить сервер запросами оставим студентам-ПлоХоПлюшникам. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 13:14 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
S.G.Сведём очередь с умаИнтересовали именно случаи прикладного применения снаршота. Ну, для формирование отчетов. А ещё когда? Как-раз для отчетов он, имхо, не обязателен. Отчет - это когда 1-2-3-го числа берутся данные для прошлого месяца от 1-го до 30-го. Там давно уже все закоммичено и не должно меняться, уж тем более в процессе отчета. Непонятно, почему не использовать снапшот, гарантирующий незыблемость данных в процессе формирования отчетов. Пусть даже отчета прошлого месяца позапозапрошлого года. В чем видите профит от не-использования снапшота? Конкретно в данном случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 15:18 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
pastor...Получасовой снапшот ? В наше время за это били канделябром. Вообще-то, YuRock указал на обратное: YuRock...в данном случае имхо целесообразнее использовать RC, чем RR... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 15:25 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
pastorYuRockпропущено... Например, такая логика. Какой-то процесс (автоматически или с помощью пользователя) ожидает, не появилась ли определенная запись. И если появилась - запускает какой-то еще процесс. Как бы получено подтверждение, что можно. Обычная задача. Ну, так вот. Проверяет он наличие этой записи. Раз в 5 секунд, или 30, или пол часа - не важно, зависит от задачи. Ну так вот, в данном случае имхо целесообразнее использовать RC, чем RR. Потому, что запись может появиться в промежутке между стартом транзакции и SELECT, и снапшот её в таком случае уже не увидит. Получасовой снапшот? В наше время за это били канделябром.Где ты вычитал про "получасовой"? Именно наоборот - открыл, дернул селект, закрыл. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 15:56 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovYuRockНапример, такая логика. Какой-то процесс (автоматически или с помощью пользователя) ожидает, не появилась ли определенная запись. И если появилась - запускает какой-то еще процесс. Как бы получено подтверждение, что можно. Обычная задача. И решается она обычным методом: подпиской на событие, по получению которого стартует транзакция (любой необходимой изоляции) и вычитывает/проверяет всё что хочет. А мозолить сервер запросами оставим студентам-ПлоХоПлюшникам.Если бы были параметризованные параметры - еще куда ни шло. А так, когда в таблицу(ы), из которой(ых) надо получить это подтверждение селектом по нескольким условиям, постоянно добавляются записи... Да и, о чем я говорю, а если клиент был закрыт, то при запуске он опять же как студент должен произвести описанную мною процедуру. И опять же RC для этого будет лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 16:01 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
YuRockпараметризованные параметрысобытия ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 16:02 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
YuRockИ опять же RC для этого будет лучше. Чем лучше, если он тут же закрывается? Ну, получит приложение свой сигнал не сейчас, а на следующем цикле, так это ничем не отличается от ситуации, когда он (сигнал) пришёл через миллисекунду после запроса. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 16:11 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
YuRockDimitry Sibiryakovпропущено... И решается она обычным методом: подпиской на событие, по получению которого стартует транзакция (любой необходимой изоляции) и вычитывает/проверяет всё что хочет. А мозолить сервер запросами оставим студентам-ПлоХоПлюшникам.Если бы были параметризованные параметры - еще куда ни шло. А так, когда в таблицу(ы), из которой(ых) надо получить это подтверждение селектом по нескольким условиям, постоянно добавляются записи... Да и, о чем я говорю, а если клиент был закрыт, то при запуске он опять же как студент должен произвести описанную мною процедуру. И опять же RC для этого будет лучше. Если у тебя каждая модификация идет в отдельной транзакции, и ты всякий раз генерируешь событие - да, событий получишь много. Но ничто не мешает не лезть по событию каждый раз в базу, а просто взводить флаг - "что-то случилось", и только при наличии взведенного флага делать: YuRock...Раз в 5 секунд, или 30, или пол часа... ... Более того, это "особенное событие" можно генерировать именно при появлении такой вот "особенной" записи. Один раз. :) А если "особенность" меняется (или их много), описывать их ("особенности") в отдельной табличке. ... А ты не мог быА ты не мог бы не нести пургу, а поделиться своими "военными тайнами" - когда используешь именно снапшот транзакции? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 16:15 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovYuRockИ опять же RC для этого будет лучше. Чем лучше, если он тут же закрывается? Ну, получит приложение свой сигнал не сейчас, а на следующем цикле, так это ничем не отличается от ситуации, когда он (сигнал) пришёл через миллисекунду после запроса.Лучше тем, что сейчас - это раньше, чем "на следующем цикле". ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 16:33 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Сведем очередь с умаНо ничто не мешает не лезть по событию каждый раз в базу, а просто взводить флаг - "что-то случилось", и только при наличии взведенного флага делать: YuRock...Раз в 5 секунд, или 30, или пол часа...Зачем же тогда события, если и так по таймеру можно проверять? Чтоб логику просто усложнить? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 16:36 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
YuRockРаз в 5 секунд, или 30, или пол часа - не важно , зависит от задачиpastorпропущено... Получасовой снапшот? В наше время за это били канделябром.Где ты вычитал про "получасовой"? Именно наоборот - открыл, дернул селект, закрыл. ПОЛЧАСА слитно. за попытку допущения получасового снапшота, во времена всеобщей грамотности, вполне можно было получить несоответствие в связи с неграмотностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 16:39 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
YuRockСведем очередь с умаНо ничто не мешает не лезть по событию каждый раз в базу, а просто взводить флаг - "что-то случилось", и только при наличии взведенного флага делать: пропущено... Зачем же тогда события, если и так по таймеру можно проверять? Чтоб логику просто усложнить? :) Тем, что вообще не нужно проверять, если флаг не "взвелся". А таймер нужен для случая, когда поток событий слишком велик. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 16:41 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Сведем очередь c умаА таймер нужен для случая, когда поток событий слишком велик.Ну так не вызывай isc_que_events сразу после получения события, если поток ТАК велик... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 17:08 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
hvlad, мало ли. Ситуации разные бывают. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 17:12 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
pastorYuRockРаз в 5 секунд, или 30, или пол часа - не важно , зависит от задачипропущено... Где ты вычитал про "получасовой"? Именно наоборот - открыл, дернул селект, закрыл. ПОЛЧАСА слитно. за попытку допущения получасового снапшота, во времена всеобщей грамотности, вполне можно было получить несоответствие в связи с неграмотностью.У, как всё сложно. Раз написал, два написал - не понимать, не грамотные мы. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 17:26 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
pastorСкажите, пжалста, дату, начиная с которой можно менять одни и те же данные в разных транзакциях. PS На "думать" уровень изоляции не влияет. От рождества Дейтова. Стартовал транзакцию, вытащил клубок данных на экран, задумался - а может быть, вот такой колор? Отредактировал, сохраняешь изменения. Если это RC, и за время раздумий другая транзакция поменяла прочитанные нами данные и закоммитила изменения, то наши спокойненько лягут поверх её изменений, патамушта те уже commited. Если меняем приращением, то и фиг то с ним, оно даже и к лучшему, а если присваиванием, то фигня получается практицки, истребили мы результат деятельности соседа. Когда-то писал я здесь весёленькое эссе на грани пошлятины в качестве примера на эту тему. А вот если мы в снапшоте, то получим мы отлуп со своими изменениями, закоммитимся/отроллбачимся, перечитаем и прикинем кто из нас прав. PS И что в этот раз повлияло на "думать"? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2017, 19:23 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Старый плюшевый мишкаpastorСкажите, пжалста, дату, начиная с которой можно менять одни и те же данные в разных транзакциях. PS На "думать" уровень изоляции не влияет. От рождества Дейтова. Стартовал транзакцию, вытащил клубок данных на экран, задумался - а может быть, вот такой колор? Отредактировал, сохраняешь изменения. Если это RC, и за время раздумий другая транзакция поменяла прочитанные нами данные и закоммитила изменения, то наши спокойненько лягут поверх её изменений, патамушта те уже commited. Если меняем приращением, то и фиг то с ним, оно даже и к лучшему, а если присваиванием, то фигня получается практицки, истребили мы результат деятельности соседа. Когда-то писал я здесь весёленькое эссе на грани пошлятины в качестве примера на эту тему. А вот если мы в снапшоте, то получим мы отлуп со своими изменениями, закоммитимся/отроллбачимся, перечитаем и прикинем кто из нас прав. PS И что в этот раз повлияло на "думать"? если сохраняешь изменения, это уже разные данные. речь про одни и те же. а про Если это RC, и за время раздумий другая транзакция поменяла прочитанные нами данные и закоммитила изменения, то наши спокойненько лягут поверх её изменений, патамушта те уже commited перечитай еще раз Дейта. ну, или эксперимент поставь. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 07:54 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Сведем очередь c умаS.G.Как-раз для отчетов он, имхо, не обязателен. Отчет - это когда 1-2-3-го числа берутся данные для прошлого месяца от 1-го до 30-го. Там давно уже все закоммичено и не должно меняться, уж тем более в процессе отчета. Непонятно, почему не использовать снапшот, гарантирующий незыблемость данных в процессе формирования отчетов. Пусть даже отчета прошлого месяца позапозапрошлого года. В чем видите профит от не-использования снапшота? Конкретно в данном случае. snapshot больше нагружает сервер. насколько? хз, но во всяком случае 20990840 тут: http://www.ibase.ru/ibtrans/ Физическое отличие READ_COMMITTED от SNAPSHOT Если не влезать в дебри исходных текстов, то все достаточно просто. Транзакции имеют 4 состояния – active, committed, rolled back, in limbo (подробнее см. документ). Это состояние (2 бита) для всех существующих или завершенных транзакций (начиная с Oldest transaction) хранится на так называемых Transaction Inventory Pages (TIP) в базе данных. При старте транзакций read_committed все они определяют "видимость" версий записей обращаясь к "глобальному" TIP – если версия записи committed, то ее можно читать. Если нет – нельзя. При старте snapshot для транзакции делается "снимок" TIP. Т. е. он копируется локально для этой транзакции, и таким образом состояния транзакций "замораживаются" на момент старта этого snapshot. Именно поэтому snapshot "не видит" никаких, даже committed изменений, сделанных в БД после своего старта. Понятно, что чем больше стартует транзакций в режиме snapshot, тем больше делается "локальных копий" TIP. С одной стороны, даже 200 тысяч транзакций займут примерно 50 килобайт (в одном байте помещается четыре двухбитовых "состояния" транзакции), то это не так страшно для современных серверов. Однако, на практике встречаются базы данных с гораздо большим числом транзакций в TIP (по разным причинам, в основном просто потому что не делается backup или не запускается sweep). В результате количество памяти, отводимое под локальный TIP для snapshot может оказаться большим. Кроме того, совершенно естественно, что время старта snapshot будет все дольше и дольше, чем больше состояний транзакций хранится в TIP (затраты времени на копирование страниц TIP в локальную копию TIP). ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 09:34 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
S.G.snapshot больше нагружает сервер.Меньше всего нагружает сервер транзакция, которой не было. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 10:07 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
S.G.snapshot больше нагружает сервер.Чем? Тем, что удаленные в других - параллельных транзакциях записи, с идентификатором изменившей эти записи транзакции младше транзакции снапшота, не позволяет отправить в мусор? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 10:19 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
WildSeryS.G.Как-раз для отчетов он, имхо, не обязателен. Отчет - это когда 1-2-3-го числа берутся данные для прошлого месяца от 1-го до 30-го. Там давно уже все закоммичено и не должно меняться, уж тем более в процессе отчета.Спасибо, поржал. "Не должно" Если у вас 30-31 заканчивают месяц, потом 1-2 делают отчет, а 5-6 спохватываются и меняют данные задним числом, то тут не повод для ржаки, а для грусти. Только непонятно, как при этом поможет snapshot? WildSeryS.G.snapshot больше нагружает сервер.Меньше всего нагружает сервер транзакция, которой не было. прекрасные комменты, WildSery :) а по теме ничего не будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 10:37 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
S.G.Если у вас 30-31 заканчивают месяц, потом 1-2 делают отчет, а 5-6 спохватываются и меняют данные задним числом, то тут не повод для ржаки, а для грусти. Только непонятно, как при этом поможет snapshot?Поэтому, практически во всех бухгалтерских системах существует процессы "разноски" итогов и закрытия периодов, которые могут быть запущены только если от начала закрываемого периода не существует иных закрытых периодов. Только какое отношение особенности реализации логики работы БД имеют к серверу FirebirdSQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 11:09 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
rdb_devS.G.Если у вас 30-31 заканчивают месяц, потом 1-2 делают отчет, а 5-6 спохватываются и меняют данные задним числом, то тут не повод для ржаки, а для грусти. Только непонятно, как при этом поможет snapshot?Поэтому, практически во всех бухгалтерских системах существует процессы "разноски" итогов и закрытия периодов, которые могут быть запущены только если от начала закрываемого периода не существует иных закрытых периодов. Только какое отношение особенности реализации логики работы БД имеют к серверу FirebirdSQL?Трудно вернуться назад по теме и почитать, откуда пошла эта часть обсуждения? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 11:29 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
S.G.Трудно вернуться назад по теме и почитать, откуда пошла эта часть обсуждения?И что я там должен увидеть? Что мешает одному бухгалтеру в снапшот-транзакции получать отчет по закрытому периоду, а главному бухгалтеру, в этот же момент, в параллельной транзакции "откатить" закрытие месяца и начать изменение данных? Причем, это вполне нормальный жизненный цикл работы, если необходимо срочно сдать отчет в налоговую "как есть", а затем донести "уточнёнку". ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 11:43 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
S.G.Если у вас 30-31 заканчивают месяц, потом 1-2 делают отчет, а 5-6 спохватываются и меняют данные задним числом, то тут не повод для ржаки, а для грусти. Только непонятно, как при этом поможет snapshot?Я работаю не в компании-интеграторе, где всё закрывается и работает как часы, прямо как ты описал. Только нифига потом не внедряется. Документы откуда-нибудь из Сибири для регистрации факта реализации наёмная транспортная компания может и через месяц привезти. А клиент ещё через месяц заявит, что вот он тут у себя сверялся, и мы у него стырили копейку лишнюю в НДС, так что переделайте срочно. S.G.прекрасные комменты, WildSery :) а по теме ничего не будет?Твоё легкомысленное заявление об особой тяжести снэпшота, ничем не подтверждённое, и являющееся по большому счёту просто метанием какахи, видимо, по теме? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 15:28 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
WildSeryS.G.прекрасные комменты, WildSery :) а по теме ничего не будет?Твоё легкомысленное заявление об особой тяжести снэпшота, ничем не подтверждённое, и являющееся по большому счёту просто метанием какахи, видимо, по теме? здесь: 20994324 я написал, почему я так считаю, и привел текст из http://www.ibase.ru/ibtrans/ возможно, я неправильно интерпретировал этот текст. Как ты ответил? Может быть, указал на ошибочность моих выводов, или на ошибочность статьи? нет, ты ответил: 20994408 WildSeryМеньше всего нагружает сервер транзакция, которой не было. ну и еще немного: WildSeryСпасибо, поржал. WildSery... и являющееся по большому счёту просто метанием какахи ну.. спасибо, уважаемый модератор форума firebird, за прекрасное ведение дискуссии. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 19:34 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Да хватит уже пикироваться. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 19:36 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
S.G.я написал, почему я так считаюнет, не написал, почему. S.G.и привел текст из http://www.ibase.ru/ibtrans/ ... где написано, что если открыть миллион транзакций, то маломощной железке станет тяжко. Почему вывод "снэпшот - большая нагрузка", я не понял. S.G.Может быть, указал на ошибочность моих выводов, или на ошибочность статьи?Мне показалось, что это не вывод, поскольку никаких путей для его получения не озвучено и не придумалось за тебя, а потому похоже на вброс. Кроме того, сыграло свою роль твоё наивное высказывание о том, что прошлый месяц можно спокойно читать в RC. Статья же пишет об особенностях использования конкретного инструмента, и вообще, сравнивать снэпшот и рид коммит - это как "армяне лучше чем грузины". Разные инструменты, разное применение. Если нужен снэпшот, то даже если бы он вдруг был, как ты подумал, "тяжёлым", всё равно следует использовать его. S.G.спасибо, уважаемый модератор форума firebird, за прекрасное ведение дискуссии.Всегда пожалуйста. А будешь вырывать фразы из контекста - вот тогда надуюсь и перестану разговаривать. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 12:10 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
pastorа про Если это RC, и за время раздумий другая транзакция поменяла прочитанные нами данные и закоммитила изменения, то наши спокойненько лягут поверх её изменений, патамушта те уже commited перечитай еще раз Дейта. ну, или эксперимент поставь. Таки ты прав, пардон муа. Акела промахнулся, сказался уровень полугодовой само изоляции от общественно-полезного труда. В RC будет прав первый закоммитивший, а не последний, этот получит отлуп. А в снапшоте будет прав первый и проапдейтивший и закоммитивший, а второй в nowait при попытке апдейта получит отлуп независимо от закоммиченности изменений первого, в wait подождёт - а не отроллбачится ли первый. Какое поведение предпочтительно - диктуется логикой задачи. Перечитывать не стал, с лупой это напряжно, эксперименты ставить тоже, просто ум наморщил. Непривычно это стало. Накладываю на себя епитимью - неделю дальше Пятницы не высовываться. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 17:50 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
СПМ> В RC будет прав первый закоммитивший, а не последний, этот получит отлуп. Зависит от. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 18:21 |
|
Вы используете FireBird (про Snapshot - транзакции)?
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамСПМ> В RC будет прав первый закоммитивший, а не последний, этот получит отлуп. Зависит от. того, закоммичена ли запись, измененная первым, на сколько я понимаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2017, 19:15 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1561319]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
77ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 168ms |
0 / 0 |