|
|
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
Пьяный Лох почему-же ... не говориться о необходимости вызывать методы типа SQLExecute(), SQLEndTran() и т.д. из одного потока? Да на клиенте вызывайте Вы что хотите и как хотите, хоть в одном потоке, хоть в пяти, хоть последовательно, хоть параллельно. Если клиента не обрушите своими действиями, то и хорошо. На сервере то обёрнутые в транзакцию действия все равно будут выполняться последовательно (а иначе это не транзакция). Опа! Ну слава богу, дошло наконец, что транзакции не связаны с потоками ни на клиенте, ни на сервере, а последовательное исполнение операций - единственное требование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 10:56 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
Пьяный ЛохMFC-шная реализация библиотеки доступа к данным не обладает св-вом thread safety, однако же обязательно найдется очумелая башка, По вам видно, что вы не читали. В той-же статье, буквально в предыдущем абзаце: "Beginning with MFC 4.2, there is multithreading support for the MFC ODBC classes.". Лох , если хотите, что-то еще сказать - подкрепляйте ссылками на источники, где подтверждается то, о чем вы говорите, ну или хотя-бы читайте документацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 11:05 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
2 teras Опа! Ну слава богу, дошло наконец, что транзакции не связаны с потоками ни на клиенте, ни на сервере, а последовательное исполнение операций - единственное требование. Да мне-то на эти потоки пофигу. Это именно Вы потоки зачем-то приплели в попытке оправдать непоследовательное исполнение операций: teras Пьяный ЛохЕсли две транзакции вложены в третью, но не вложены друг в друга - то они исполняются последовательно... Как транзакции могут между собой конкурировать, если они по времени не пересекаются? Очень просто - не все СУБД используют неявное задание транзакции - это когда транзакция связана с потоком, соединением и приложение не может выбирать с какой транзакцией работать в данный момент. terasВ общем случае возможна ситуация, когда один поток работает с несколькими транзакциями попеременно. Например: - Родительская транзакция (P) -- Запуск вложенной транзакции (T1) -- Запуск вложенной транзакции (T2) -- Действие в транзакции (T1) -- Действие в транзакции (T2) -- Действие в транзакции (T1) -- Конец вложенной транзакции (T2) -- Действие в транзакции (T1) -- Конец вложенной транзакции (T1) - Конец родительской транзакции(P) Это ведь Ваши слова? Если не понимаете того, что "приложение может выбирать" не имеет отношения к последовательному исполнению операций на сервере, и того, что "работать попеременно" применительно к двум единицам работы в принципе не может быть последовательным исполнением - то это Ваши проблемы с головой. Не пытайтесь свои проблемы с головой на других валить :) По вам видно, что вы не читали. Чего я не читал? В той-же статье, буквально в предыдущем абзаце: "Beginning with MFC 4.2, there is multithreading support for the MFC ODBC classes Офигительный multithreading support. Настолько офигительный, что прямо так и сказано (буквально в следующем абзаце, если верить Вам), что "might cause problems", и "you should be sure that these operations will not be called concurrently from separate threads". Если это называется multithreading support, то я - солнце на небе, а горы состоят из пластилина. Не читайте таких статей :) подкрепляйте ссылками на источники Надо заметить, что Вы себя этим не утруждаете :) А мне откровенно лениво лопатить msdn в поисках "предыдущего абзаца" непонятно какой статьи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 12:13 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
ЛПНу и закончим, пожалуй, на этой радостной ноте :)Ага :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 15:25 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
В качестве дополнительной идеи к обсуждению тынц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 23:22 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
ЛПДа мне-то на эти потоки пофигу. Это именно Вы потоки зачем-то приплели в попытке оправдать непоследовательное исполнение операций: <...> terasВ общем случае возможна ситуация, когда один поток работает с несколькими транзакциями попеременно. Например: - Родительская транзакция (P) -- Запуск вложенной транзакции (T1) -- Запуск вложенной транзакции (T2) -- Действие в транзакции (T1) -- Действие в транзакции (T2) -- Действие в транзакции (T1) -- Конец вложенной транзакции (T2) -- Действие в транзакции (T1) -- Конец вложенной транзакции (T1) - Конец родительской транзакции(P) Солнце мое, тут разговор шел о совсем других вещах - я с самого начала написал о том, что это МОЙ взгляд на то, что такое вложенные транзакции, зачем они нужны, и как их можно применять на практике. И совсем в этом вопросе не претендую на истину - потому, что, как не раз уже было отмечено, НЕТ устоявшейся концепции вложенных транзакций. В приведенном вами примере речь идет об ОДНОПОТОЧНОМ исполнении в БД наподобие BDB, или любой дргуой, реализующий в API подход в отношении мультипоточности в стиле BDB/ODBC/OCI (как описано выше) и вложенные транзакции, как предложил я. Ответвление темы о мультипоточности возникло от моего вопроса, по сути, никак не связанного с основной темой: teras SergSuperТ.е. в одном транзакции может паралельно работать несколько потоков? Тогда это не будет транзакцией Ну вообще-то речь шла о другой крайности ;-) Хотя у меня тоже вопрос: а почему собственно, это не является транзакцией? Теперь понятнее? ЛППо вам видно, что вы не читали.Чего я не читал? Того, о чем говорите - описания MFC. ЛПВ той-же статье, буквально в предыдущем абзаце: "Beginning with MFC 4.2, there is multithreading support for the MFC ODBC classes Офигительный multithreading support. Настолько офигительный, что прямо так и сказано (буквально в следующем абзаце, если верить Вам), что "might cause problems", и "you should be sure that these operations will not be called concurrently from separate threads". Если это называется multithreading support, то я - солнце на небе, а горы состоят из пластилина. Не читайте таких статей :) Солнце небесное, только для вас - в этом абзаце, речь идет о совершенно типичных вопросах, возникающих при использовании потоков, совершенно ничего нового. И я никак не пойму, что вы так заботитесь о моем свободном времени? ;-) ЛПподкрепляйте ссылками на источники Надо заметить, что Вы себя этим не утруждаете :) А мне откровенно лениво лопатить msdn в поисках "предыдущего абзаца" непонятно какой статьи. Я по меньшей мере указываю, откуда беру информацию, что дает возможность ее найти и проверить, а вы все приводите из головы. И насчет лопатить - это громко сказано. Отмечаем крыжик Technology: "C++ libraries (Native)", затем ищем фразу "Beginning with MFC 4.2, there is multithreading support for the MFC ODBC classes" и видим эту статью первой в списке статей. Назывется "ODBC Classes and Threads (MFC)". Искать с применением фраз из прошлых постов - ни разу не сложнее, ну разве, что она будет второй в списке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 23:45 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
mir ЛПНу и закончим, пожалуй, на этой радостной ноте :)Ага :) Зато цирк какой. Я все время вспоминаю фразу, недавно попавшуяся мне на глаза: "если вы спорите с идиотом, не забудьте, что он в этот момент делает то же самое". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 23:49 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
shuklinВ качестве дополнительной идеи к обсуждению тынц Ммм... Не совсем понял... Предлагаете эту идею в качестве концепции nested transactions? Или у вас что-то другое на уме? mir , у меня еще к вам вопрос есть - вы сказали, что я не прав, но так и не сказали в чем. Любопытно, все таки - о чем речь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 00:09 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
teras shuklinВ качестве дополнительной идеи к обсуждению тынц Ммм... Не совсем понял... Предлагаете эту идею в качестве концепции nested transactions? Да, если поддерживать в каждой транзакции не более одной вложенной одновременно . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 00:26 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
teras shuklinВ качестве дополнительной идеи к обсуждению тынц Ммм... Не совсем понял... Предлагаете эту идею в качестве концепции nested transactions? Или у вас что-то другое на уме? mir , у меня еще к вам вопрос есть - вы сказали, что я не прав, но так и не сказали в чем. Любопытно, все таки - о чем речь?Какой смысл вам обращаться к человеку, которого вы только что публично назвали идиотом? А что до того, почему вы не правы -- я об этом писал сразу же: "teras не прав, потому что фраза про принципиально последовательные операции параллелизм сразу из рассмотрения устраняет, а значит и рассуждения о синхронности/асинхронности становятся неприменимы." Вы читать не умеете? Еще раз, вы писали: "Как видите, речи о синхронности/асинхронности в определении не идет, значит, явно потоки не исключаются." Может, я и идиот, но здесь именно вы продемонстрировали вполне идиотские рассуждения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 08:53 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
mirА что до того, почему вы не правы -- я об этом писал сразу же: "teras не прав, потому что фраза про принципиально последовательные операции параллелизм сразу из рассмотрения устраняет, а значит и рассуждения о синхронности/асинхронности становятся неприменимы." Вы читать не умеете? Видимо - нет. Точнее, не могу понять, в чем это расходится с моими утверждениями? Что вы понимаете говоря "последовательные операции"? Транзакции целиком или их составные операции? Я изначально утверждал, что элементарные операции в транзакции НЕ выполняются параллельно, но из этого не следует, что их нельзя инициировать ассинхронно. В чем я не прав? mirМожет, я и идиот, но здесь именно вы продемонстрировали вполне идиотские рассуждения. Что-же вы так испугались? Все же просто: вы не спорьте - просто объясните, в чем я ошибаюсь. Без хамства и переходов на личности. Потому что ни, то ни другое - ничего не доказывает. И если вам какие-то рассуждения показались неверными - может лучше обсудить почему, чем так, а? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 09:50 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
shuklinВ качестве дополнительной идеи к обсуждению тынц О !!! У Шуклина появились ТРАНЗАКЦИИ ? В однопользовательской системе !!! или Инвестора нашел ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 09:54 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
2 teras Родной, вы сначала начинаете зверски хамить, а потом объектов своего хамства призываете не переходить на личности. Этакая двойная мораль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 10:47 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
mir2 teras Родной, вы сначала начинаете зверски хамить, а потом объектов своего хамства призываете не переходить на личности. Этакая двойная мораль. Значит вы считате, что я вам нахамил? Уж извините, не помню такого. Кроме того, вы считаете, что я и дальше должен был терпеть хамство и придирки ЛП ? Или вы знаете другой способ остановить подобное? Предложите, буду крайне признателен. Серьезно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 11:05 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
2 teras Ответвление темы о мультипоточности возникло от моего вопроса, по сути, никак не связанного с основной темой: Чего Вы врёте? Было Ваше утверждение о том, что две транзакции, вложенные в третью, могут конкурировать между собой. Здесь. Был мой вопрос о том, каким же это образом они могут конкурировать, если они исполняются последовательно и не пересекаются во времени. Здесь. Был Ваш ответ, что дескать очень просто, не все СУБД связывают транзакцию с потоком, и некоторые позволяют что-то там выбирать. Здесь. В ответ на это Ваше высказывание был вопрос SergSuper: "Т.е. в одном транзакции может паралельно работать несколько потоков? Тогда это не будет транзакцией". Здесь. Нафига Вы теперь утверждаете, что это не связано с основной темой? Именно что связано. Всё "ответвление темы о мультипоточности" возникло именно из-за Ваших высказываний о том, что откуда-то может возникнуть конкуренция между последовательно исполняющимися транзакциями, приплетанию (Вами же) сюда потоков, а в последствии еще и бредовому упоминанию (опять таки Вами) синхронности/асинхронности. Теперь Вы пытаетесь сделать вид, что никакие потоки не при чем, никакая синхронность не при чём, всё у Вас однопоточно? Да пожалуйста. Только нафига ж Вы по прежнему игнорируете высказывание о том, что хоть скольки поточное у Вас исполнение - в Вашем примере транзакции по прежнему исполняются не последовательно (а "попопеременно")? Транзакции вполне могут исполняться не последовательно, но только не внутри другой транзакции, ибо там не может быть никакого непоследовательного исполнения ничего вообще, и вложенных транзакций в частности. в этом абзаце, речь идет о совершенно типичных вопросах, возникающих при использовании потоков Вопросы - да, соверешенно обычные. Необычно лишь то, что утверждается, что сделан mutlithreading support, при том, что весь multithreading support придется делать самому программисту, использующему MFC. Я по меньшей мере указываю, откуда беру информацию Вам известно значение слова "ссылка"? Если нет, то зачем Вы его употребляете в своей речи, и тем более требуете от других? Кроме того, вы считаете, что я и дальше должен был терпеть хамство и придирки ЛП? Или вы знаете другой способ остановить подобное? А Вы ограничьте своё рвение в высказывании чуши. Тем самым избавите других от необходимости объяснять Вам, почему сказанное Вами является чушью, а самого себя избавите от необходимости трактовки этих объяснений в качестве "придирок и хамства". Не хотите ограничивать своё рвение в деле высказывания чуши? Ваше право, продолжайте высказывать чушь. Только не обижайтесь тогда, если Вас как обоссавшегося щенка в эту чушь носом тыкать будут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 12:32 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
2 Gluk (Kazan) О !!! У Шуклина появились ТРАНЗАКЦИИ ? В однопользовательской системе !!! А почему в однопользовательской системе не может (или не должно) быть транзакций? Атомарность, консистентность и дюрабильность ведь как-то надо обеспечивать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 12:36 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
ЛП2 Gluk (Kazan) О !!! У Шуклина появились ТРАНЗАКЦИИ ? В однопользовательской системе !!! А почему в однопользовательской системе не может (или не должно) быть транзакций? Атомарность, консистентность и дюрабильность ведь как-то надо обеспечивать :) Лох прав. Транзакция не зависит от количества пользователей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 12:54 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
ЛП2 Gluk (Kazan) О !!! У Шуклина появились ТРАНЗАКЦИИ ? В однопользовательской системе !!! А почему в однопользовательской системе не может (или не должно) быть транзакций? Атомарность, консистентность и дюрабильность ведь как-то надо обеспечивать :) Ага, только здесь ботва все больше про изолированность в последнее время ;) Да и на счет дюрабельности в его поделии тоже вопросы были ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 13:01 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
Сахават Юсифов ЛП2 Gluk (Kazan) О !!! У Шуклина появились ТРАНЗАКЦИИ ? В однопользовательской системе !!! А почему в однопользовательской системе не может (или не должно) быть транзакций? Атомарность, консистентность и дюрабильность ведь как-то надо обеспечивать :) Лох прав. Транзакция не зависит от количества пользователей. Вы на продвигаемый ПРОДУКТ смотрели ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 13:02 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) Вы на продвигаемый ПРОДУКТ смотрели ? Качаю. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 13:04 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Ага, только здесь ботва все больше про изолированность в последнее время ;) Изолированность я не упомянул просто потому, что в однопользовательской системе она совершенно точно есть, её не надо обеспечивать, ни транзациями, ни чем другим :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 13:10 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
teras mir2 teras Родной, вы сначала начинаете зверски хамить, а потом объектов своего хамства призываете не переходить на личности. Этакая двойная мораль. Значит вы считате, что я вам нахамил? Уж извините, не помню такого. Освежу вашу память. Теперь еще раз по теме. Попытайтесь понять, что если последовательность операций по определению должна выполняться последовательно (Op 1 -> Op 2 -> ... -> Op n ), то ни о каких параллельных потоках или процессах и речи быть не может. В начальный момент времени может выполниться только операция Op 1 . Op 2 начать выполнение не может, пока не завершилась Op 1 (см определение последовательного выполнения). И так далее. Ни в один момент времени ни одна операция не может начать выполнение, пока не завершилась предыдущая. А значит, в любой момент времени только одна операция из последовательности может выполняться. О каком же синхронном или асинхронном выполнении каких вообще потоков можно говорить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 13:30 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
ЛП2 teras Ответвление темы о мультипоточности возникло от моего вопроса, по сути, никак не связанного с основной темой: Чего Вы врёте? Было Ваше утверждение о том, что две транзакции, вложенные в третью, могут конкурировать между собой. Здесь. Был мой вопрос о том, каким же это образом они могут конкурировать, если они исполняются последовательно и не пересекаются во времени. Здесь. Был Ваш ответ, что дескать очень просто, не все СУБД связывают транзакцию с потоком, и некоторые позволяют что-то там выбирать. Здесь. В ответ на это Ваше высказывание был вопрос SergSuper: "Т.е. в одном транзакции может паралельно работать несколько потоков? Тогда это не будет транзакцией". Здесь. А что-ж вы не процитировали мой ответ ? О том, что до того момента "речь шла о другой крайности"? Очевидно, что другая крайность к "несколько потоков в одной транзакции" это - несколько транзакций в одном потоке. Если хотите простой пример такого - пожалуйста. Берем ODBC или OCI, в ОДНОМ потоке открываем ДВА соединения (оба ассоциируют транзакцию БД с соединением) и затем, в том-же самом потоке используем поочередно то первое, то второе соединение. Хотя такой подход требует особой осторожности в программировании, ни ODBC, ни OCI НЕ ограничивают в таком использовании. Где здесь потоки и причем здесь потоки? И именно в том-же посте я и спросил о том, а почему, собственно, нельзя работать с одной транзакцией из РАЗНЫХ потоков. Это и стало веткой про потоки, ассинхронность и т.д. ЛПТолько нафига ж Вы по прежнему игнорируете высказывание о том, что хоть скольки поточное у Вас исполнение - в Вашем примере транзакции по прежнему исполняются не последовательно (а "попопеременно")? Хотелось бы знать, что вы имеете в виду, говоря транзакции исполняются попеременно? То, что одна транзакция обязательно завершается, прежде, чем начнется другая (про это мы уже выяснили)? Или то, что элементарные операции, составляющие одну транзакцию выполняется последовательно? О чем я написал в первом-же посте на эту тему? ЛПТранзакции вполне могут исполняться не последовательно, но только не внутри другой транзакции, ибо там не может быть никакого непоследовательного исполнения ничего вообще, и вложенных транзакций в частности. Вернулись на начало. Еще раз повторяю, что такая модель вложенных транзакций далеко не единственная, но она существует, причем не только в теории, но и на практике. Ссылку на BDB я уже приводил. Если она вам не нравится или не нужна - ваше дело, но это не значит, что это - чушь. В любом случае, мнению ребят из Беркли я доверяю больше, чем вашему, уж извините. ЛП Я по меньшей мере указываю, откуда беру информацию Вам известно значение слова "ссылка"? Если нет, то зачем Вы его употребляете в своей речи, и тем более требуете от других? Известно. Толковый словарь Orfo: Ссылка (сущ): 1) Пребывание ссыльного на поселении. 2) Выдержка из текста или указание источника, на который ссылаются. Я использую слово во втором значении. Кроме того, я знаю, что в компьютерном жаргоне есть ещё одно значение, в достаточной мере совпадающее со вторым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 13:41 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
mir teras mir2 teras Родной, вы сначала начинаете зверски хамить, а потом объектов своего хамства призываете не переходить на личности. Этакая двойная мораль. Значит вы считате, что я вам нахамил? Уж извините, не помню такого. Освежу вашу память. Спасибо за подсказку. Вы уж простите великодушно, если вы приняли это на свой счет. Да я и не заметил, где мы с вами спорили, да еще и настолько бурно, и не понял, каким боком эта фраза может относиться к вам? А написал я о моем споре с ЛП . Собственно, весь спор был моей ошибкой - не учел специфику пользователей . mirТеперь еще раз по теме. Попытайтесь понять, что если последовательность операций по определению должна выполняться последовательно (Op 1 -> Op 2 -> ... -> Op n ), то ни о каких параллельных потоках или процессах и речи быть не может. В начальный момент времени может выполниться только операция Op 1 . Op 2 начать выполнение не может, пока не завершилась Op 1 (см определение последовательного выполнения). И так далее. Ни в один момент времени ни одна операция не может начать выполнение, пока не завершилась предыдущая. А значит, в любой момент времени только одна операция из последовательности может выполняться. О каком же синхронном или асинхронном выполнении каких вообще потоков можно говорить? Безусловно вы правы. Но вы напрасно проводите параллель между этой моделью и моделью транзакции в БД. О том, приведенное мной что определение последовательности в БД, данное Ульманом, а не мной, не подразумевает упорядоченности, я уже упомянул . А значит, мы уже не укладываемся в ваше определение из за использованной вами зависимости между окончанием одной операции и началом другой (я правильно интерпретирую стрелочки?). Нетрудно представить, что это вполне применимо на практике - например, в ОДНОЙ транзакции мы обновляем данные в БД для РАЗНЫХ датчиков, каждый из которых идентифицируется первичным ключем, или вообще находятся в разных таблицах, время ожидания готовности датчика может изменяться, но не превышает некоторой известной величины. Пусть одна транзакция - требование архитектора приложения, и мы можем на него повлиять. Можно заметить, что в этом сценарии нам все равно в каком порядке пройдут эти операции, единственное, что нас интересует, это чтобы они выполнились все. Согласны? Кроме того, взаимодействие с внешним миром делает неэффективным синхронное исполнение операции опроса и обновления данных. Одно из возможных решений (конечно, есть и другие) - использовать нескольких потоков (по количеству датчиков) для выполнения опросов и писать данные раздельно в каждом потоке. Таким образом, часть укрупненной операции (считывание+запись) будет выполняться ассинхронно (считывание), часть - синхронно(запись). При таком решении можно говорить о потоках? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 14:57 |
|
||
|
nested transaction vs savepoint
|
|||
|---|---|---|---|
|
#18+
terasСпасибо за подсказку. Вы уж простите великодушно, если вы приняли это на свой счет. Да я и не заметил, где мы с вами спорили, да еще и настолько бурно, и не понял, каким боком эта фраза может относиться к вам? А написал я о моем споре с ЛП . Ваш комментарий был ответом именно на моё сообщение, адресованное ЛП. Вы назвали нашу с ним мини-дискуссию цирком, и сравнили нас с идиотами. Как ещё это было понимать? terasБезусловно вы правы. Но вы напрасно проводите параллель между этой моделью и моделью транзакции в БД. О том, приведенное мной что определение последовательности в БД, данное Ульманом, а не мной, не подразумевает упорядоченности, я уже упомянул . Процитирую вновь то определение: "Транза́кция (англ. transaction) — в информатике, группа последовательных операций, которая представляет из себя логическую единицу работы с данными." Приведенное определение содержит явно ошибку (перевода?). Дело в том, что "группа последовательных операций" -- фраза бессмысленная, поскольку понятие "последовательная операция" -- бессмыслица. Одна, отдельно взятая операция не может быть ни последовательной, ни непоследовательной. Поэтому правильным вариантом будет либо "группа последовательно выполняющихся операций", либо просто "последовательность операций". Но в таком случае, никакого внтреннего параллелизма быть не может, о чём я и говорил. Ваши рассуждения о возможности распараллеливания операция транзакции я понимаю, но в этом случае надо менять определение транзакции. В последовательности операций всё просто, никакой внутренней синхронизации не надо. А если транзакция перестаёт быть последовательностью, она становится "обычной" параллельной программой, в которой должны использоваться те или иные примитивы (мьютексы, семафоры, рандеву...) для синхронизации параллельных частей. Мне с этакой кашей работать бы не хотелось. И так проблем много, а еще заниматься параллельным программированием? Я знаю, что это такое, и сколько ошибок это несёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 17:03 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=34845278&tid=1553230]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 265ms |
| total: | 396ms |

| 0 / 0 |
