Kernel Transaction Manager
От: Акопов Роман Рубенович Грузия http://adontz.wordpress.com/
Дата: 06.02.11 06:57
Оценка: 2075 (26)
Статья:
Kernel Transaction Manager
Автор(ы): Акопов Роман Рубенович
Дата: 06.02.2011
Kernel Transaction Manager в Windows 2008, 2008 R2, Vista, Seven и их использования из C#


Авторы:
Акопов Роман Рубенович

Аннотация:
Kernel Transaction Manager в Windows 2008, 2008 R2, Vista, Seven и их использования из C#

Статья прислана на конкурс статей 2010 — Windows 7 и .NET

06.02.11 13:00: Перенесено из 'WIN API'
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: Kernel Transaction Manager
От: Pavel Dvorkin Россия  
Дата: 06.02.11 09:45
Оценка:
Здравствуйте, Акопов Роман Рубенович, Вы писали:

АРР>Аннотация:

АРР>Kernel Transaction Manager в Windows 2008, 2008 R2, Vista, Seven и их использования из C#

Роман, а в Win API зачем ?
With best regards
Pavel Dvorkin
Re[2]: Kernel Transaction Manager
От: adontz Грузия http://adontz.wordpress.com/
Дата: 06.02.11 09:46
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Роман, а в Win API зачем ?


Думаешь, я выбирал

Это даже не самая последняя версия статьи
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[3]: Kernel Transaction Manager
От: Pavel Dvorkin Россия  
Дата: 06.02.11 09:48
Оценка:
Здравствуйте, adontz, Вы писали:

A>Думаешь, я выбирал


Я проголосовал за перенос, если еще двое проголосуют — автоматически перенесется в .NET.
With best regards
Pavel Dvorkin
Re: Код к статье (потерялся чего-то)
От: adontz Грузия http://adontz.wordpress.com/
Дата: 06.02.11 10:38
Оценка:
http://files.rsdn.ru/2053/KTM.zip
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: Код к статье (потерялся чего-то)
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 06.02.11 16:31
Оценка: 54 (1)
Здравствуйте, adontz, Вы писали:

A>http://files.rsdn.ru/2053/KTM.zip


добавил ссылку
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[3]: Kernel Transaction Manager
От: VladD2 Российская Империя www.nemerle.org
Дата: 07.02.11 16:34
Оценка:
Здравствуйте, adontz, Вы писали:

A>Это даже не самая последняя версия статьи


Можно с этого места по поподробнее?

Только что проверивший с Михаилом Купаевым, все правки внесены. В том числе те, что ты присылал отдельным письмом.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Kernel Transaction Manager
От: adontz Грузия http://adontz.wordpress.com/
Дата: 07.02.11 16:47
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Только что проверивший с Михаилом Купаевым, все правки внесены. В том числе те, что ты присылал отдельным письмом.


Ну вот сразу бросилось в глаза.

Правка в письме от "2011-01-28 21:37" и в документе высланом Одиссею.

Последние четыре свойства принято называть требованиями ACID (Atomicity, Consistency, Isolation, Durability).

должно быть

Эти четыре свойства принято называть требованиями ACID (Atomicity, Consistency, Isolation, Durability).




Правка в письме от "2011-02-03 05:08"
Ещё при конвертации потрялись якоря ссылок. В разделе Windows API
Автор(ы): Акопов Роман Рубенович
Дата: 06.02.2011
Kernel Transaction Manager в Windows 2008, 2008 R2, Vista, Seven и их использования из C#
в документе фразы "зашифрованными файлами", "сжатые файлы" и "альтернативные потоки" ссылки на соответствующие разделы статьи википедии. В XML/HTML это ссылки просто на статью.


Не то чтобы очень приниципиально, но всё же непорядок.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[5]: Kernel Transaction Manager
От: VladD2 Российская Империя www.nemerle.org
Дата: 07.02.11 16:53
Оценка:
Здравствуйте, adontz, Вы писали:

A>Правка в письме от "2011-01-28 21:37" и в документе высланом Одиссею.

A>

Последние четыре свойства принято называть требованиями ACID (Atomicity, Consistency, Isolation, Durability).

должно быть

Эти четыре свойства принято называть требованиями ACID (Atomicity, Consistency, Isolation, Durability).

A>Правка в письме от "2011-02-03 05:08"

Ну, ты нашел до чего докопаться. Редактор просто проигнорировал ничего не значащее исправление. Лично я с ним согласен. Что в лоб, что по лбу.

A>Ещё при конвертации потрялись якоря ссылок. В разделе Windows API
Автор(ы): Акопов Роман Рубенович
Дата: 06.02.2011
Kernel Transaction Manager в Windows 2008, 2008 R2, Vista, Seven и их использования из C#
в документе фразы "зашифрованными файлами", "сжатые файлы" и "альтернативные потоки" ссылки на соответствующие разделы статьи википедии. В XML/HTML это ссылки просто на статью.


Ну, это технические не доработки. Надо править баги.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Kernel Transaction Manager
От: adontz Грузия http://adontz.wordpress.com/
Дата: 07.02.11 17:16
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Ну, ты нашел до чего докопаться. Редактор просто проигнорировал ничего не значащее исправление. Лично я с ним согласен. Что в лоб, что по лбу.


Просто раньше условий было не четыре и фраза "последние четыре" имела смысл, а сейчас как-то странно получается.

A>>Ещё при конвертации потрялись якоря ссылок. В разделе Windows API
Автор(ы): Акопов Роман Рубенович
Дата: 06.02.2011
Kernel Transaction Manager в Windows 2008, 2008 R2, Vista, Seven и их использования из C#
в документе фразы "зашифрованными файлами", "сжатые файлы" и "альтернативные потоки" ссылки на соответствующие разделы статьи википедии. В XML/HTML это ссылки просто на статью.

VD>Ну, это технические не доработки. Надо править баги.

Ну ты спросил, я ответил. Претензий каких-либо у меня нет.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: Kernel Transaction Manager
От: Andy77 Ниоткуда  
Дата: 07.02.11 18:17
Оценка:
Какой вообще смысл этого примечания?

ПРИМЕЧАНИЕ
Как я ни старался, мне не удалось удовлетворительно сформулировать понятие разных компьютеров. Я остановился на “элементы системы следует считать раздельными компьютерами, если у них нет доступа к когерентной общей памяти”. Хотя противоречий с наблюдаемой реальностью найдено не было, гарантировать безупречность формулировки всё же не возьмусь.

Re[2]: Kernel Transaction Manager
От: adontz Грузия http://adontz.wordpress.com/
Дата: 07.02.11 18:27
Оценка:
Здравствуйте, Andy77, Вы писали:

A>

A>ПРИМЕЧАНИЕ
A>Как я ни старался, мне не удалось удовлетворительно сформулировать понятие разных компьютеров. Я остановился на “элементы системы следует считать раздельными компьютерами, если у них нет доступа к когерентной общей памяти”. Хотя противоречий с наблюдаемой реальностью найдено не было, гарантировать безупречность формулировки всё же не возьмусь.


Ну, например, shared-disk кластер (при отключении кеширования) согласно этому определению можно считать одним компьютером.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: Kernel Transaction Manager
От: adontz Грузия http://adontz.wordpress.com/
Дата: 09.02.11 12:05
Оценка: +1 :)))
Здравствуйте, Акопов Роман Рубенович, Вы писали:

Почему в обсуждении моей статьи нет срача, а у Smarty есть? Вы не понимаете, что мне скучно?! Изверги!
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: Kernel Transaction Manager
От: _FRED_ Черногория
Дата: 08.03.11 09:32
Оценка: +1
Здравствуйте, adontz, Вы писали:

A>Почему в обсуждении моей статьи нет срача, а у Smarty есть? Вы не понимаете, что мне скучно?! Изверги!


Очень здорово изложено: сначала освежили знания, потом рассказали, о чём же речь, а потом и показали
Но мне только показалось, что в "Основах" материал взят из вики (давно где-то читал почти в тех же самых терминах)?

Повеселило предупреждение о трёхфазной фиксации

Очень разочаровало отсутствие самоого интересного — были ли какие сложности в реализации, как их решали, как и что обходили. На что следует обратить внимание при написании собственной обёртки. Или же просто обошлось добавлением параметров да новых импортов без каких либо тонкостей?
Help will always be given at Hogwarts to those who ask for it.
Re[3]: Kernel Transaction Manager
От: adontz Грузия http://adontz.wordpress.com/
Дата: 08.03.11 18:44
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Но мне только показалось, что в "Основах" материал взят из вики (давно где-то читал почти в тех же самых терминах)?


Да, немножечно оттуда взяли. Ну в теории особо не пооригинальничаешь.

_FR>Повеселило предупреждение о трёхфазной фиксации




_FR>Очень разочаровало отсутствие самоого интересного — были ли какие сложности в реализации, как их решали, как и что обходили. На что следует обратить внимание при написании собственной обёртки. Или же просто обошлось добавлением параметров да новых импортов без каких либо тонкостей?


Я сперва читал документацию (достаточно долго) чтобы понять как это работает. Когда пришло понимание, написать обёртку было не сложно. У меня опыт интеропа после HTMLayout достаточно большой, так что каких-либо проблем не было. Лицензия BSD, зачем писать ещё одну обёртку?
Тонкость, наверное, в том что часть операций выполняется вызовом функций WinAPI, а другая часть — командами DeviceIoControl. Это может быть весьма непривычно.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[4]: Kernel Transaction Manager
От: _FRED_ Черногория
Дата: 08.03.11 19:31
Оценка:
Здравствуйте, adontz, Вы писали:

_FR>>Но мне только показалось, что в "Основах" материал взят из вики (давно где-то читал почти в тех же самых терминах)?

A>Да, немножечно оттуда взяли. Ну в теории особо не пооригинальничаешь.

Конечно, причём там весьма ёмко всё объяснено, но удивило отсутствие сносок на первоисточник :о)

_FR>>Очень разочаровало отсутствие самоого интересного — были ли какие сложности в реализации, как их решали, как и что обходили.


A>Я сперва читал документацию (достаточно долго) чтобы понять как это работает. Когда пришло понимание, написать обёртку было не сложно.


Спасибо, так на много понятнее. Просто такая информация даёт хорошее представление о сложности и запутанности.
Help will always be given at Hogwarts to those who ask for it.
Re[5]: Kernel Transaction Manager
От: adontz Грузия http://adontz.wordpress.com/
Дата: 08.03.11 20:47
Оценка:
Здравствуйте, _FRED_, Вы писали:

A>>Да, немножечно оттуда взяли. Ну в теории особо не пооригинальничаешь.

_FR>Конечно, причём там весьма ёмко всё объяснено, но удивило отсутствие сносок на первоисточник :о)

Определения "своими словами" на определния википедии заменил редактор.

A>>Я сперва читал документацию (достаточно долго) чтобы понять как это работает. Когда пришло понимание, написать обёртку было не сложно.

_FR>Спасибо, так на много понятнее. Просто такая информация даёт хорошее представление о сложности и запутанности.

Надо довольно хорошо понимать и WinAPI, и транзакции, и то как последние два выглядят в .Net. Я бы сказал, что такую обёртку стоит писать синьору или под присмотром синьора.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[6]: Kernel Transaction Manager
От: GlebZ Россия  
Дата: 09.03.11 10:20
Оценка:
Здравствуйте, adontz, Вы писали:

A>>>Да, немножечно оттуда взяли. Ну в теории особо не пооригинальничаешь.

_FR>>Конечно, причём там весьма ёмко всё объяснено, но удивило отсутствие сносок на первоисточник :о)
A>Определения "своими словами" на определния википедии заменил редактор.
Здря без первоисточников. Потому как вот это определение:

Упорядочиваемость (Serializable)
Транзакции полностью изолированы друг от друга. Запрещено чтение всех данных, изменённых с начала транзакции, в том числе и своей транзакцией. Фактически, этот уровень изоляции приводит к последовательному выполнению транзакций.

неверное. Фантомы бывают очень разные. Так бы мог бы спихнуть ответсвенность на сцылку, а в нонешнем положении ты ВИНОВЕН!

зы. Правильней — нужна также блокировка по чтению.
Re[7]: Kernel Transaction Manager
От: adontz Грузия http://adontz.wordpress.com/
Дата: 09.03.11 11:10
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Так бы мог бы спихнуть ответсвенность на сцылку, а в нонешнем положении ты ВИНОВЕН!


Ладно.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: Kernel Transaction Manager
От: adontz Грузия http://adontz.wordpress.com/
Дата: 08.04.11 09:04
Оценка:
Здравствуйте, Акопов Роман Рубенович, Вы писали:

Небольшое обновление
1) В коде к статье, в классе Registry ошибка проявляющаяся на 32битных платформах. В репозитории исправлена.
2) Оказыватся (я и не знал) функции из Nabu, в отличие от стандартных, нормально работают с альтернативными потоками NTFS, даже когда транзакции не нужны.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: Kernel Transaction Manager
От: _FRED_ Черногория
Дата: 08.04.11 09:12
Оценка:
Здравствуйте, adontz, Вы писали:

A>2) Оказыватся (я и не знал) функции из Nabu, в отличие от стандартных, нормально работают с альтернативными потоками NTFS, даже когда транзакции не нужны.


"Стандартные" — это какие и что значит "нормально"? Вроде как они совсем не работают и это явно в них запрещается:

https://connect.microsoft.com/VisualStudio/feedback/details/98312/filestream-should-support-ntfs-alternate-data-streams
Help will always be given at Hogwarts to those who ask for it.
Re[3]: Kernel Transaction Manager
От: adontz Грузия http://adontz.wordpress.com/
Дата: 08.04.11 09:13
Оценка:
Здравствуйте, _FRED_, Вы писали:

A>>2) Оказыватся (я и не знал) функции из Nabu, в отличие от стандартных, нормально работают с альтернативными потоками NTFS, даже когда транзакции не нужны.

_FR>"Стандартные" — это какие

FileStream. Я тоже возвращаю FileStream, но инициализирую его деискриптором ОС, так что проблем не возникает.

_FR>и что значит "нормально"? Вроде как они совсем не работают и это явно в них запрещается:

_FR>https://connect.microsoft.com/VisualStudio/feedback/details/98312/filestream-should-support-ntfs-alternate-data-streams

угу, это и имел ввиду.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[7]: Kernel Transaction Manager
От: IB Австрия http://rsdn.ru
Дата: 08.04.11 11:31
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Здря без первоисточников. Потому как вот это определение:

...
GZ>зы. Правильней — нужна также блокировка по чтению.
Определение действительно очень странное. Формальное звучит примерно так:
"Конечный эффект от выполнения транзакций должен быть таким как буд-то бы они выполнялись последовательно, в любом произвольном порядке".
И ни слова про блокировки, строго говоря блокировки — это деталь реализации, которая не должна фигурировать в формальном определении.
... << RSDN@Home 1.2.0 alpha 4 rev. 1082>>
Мы уже победили, просто это еще не так заметно...
Re[8]: Kernel Transaction Manager
От: adontz Грузия http://adontz.wordpress.com/
Дата: 08.04.11 12:31
Оценка:
Здравствуйте, IB, Вы писали:

IB>Определение действительно очень странное.


Я согласен что получилась бредятина. Давайте поменяем
A journey of a thousand miles must begin with a single step © Lau Tsu
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.