The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Для Linux представлена файловая система TxFS с поддержкой AC..., opennews (??), 18-Июл-18, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


7. "Для Linux представлена файловая система TxFS с поддержкой AC..."  +8 +/
Сообщение от x3who (?), 18-Июл-18, 02:52 
Базам данных-то это зачем? У них транзакции свои, нормальные, из коробки.
Ответить | Правка | Наверх | Cообщить модератору

10. "Для Linux представлена файловая система TxFS с поддержкой AC..."  +5 +/
Сообщение от angra (ok), 18-Июл-18, 05:42 
С одной стороны конечно это так, но с другой:
To demonstrate the power and ease of use of TxFS transactions, we modify SQLite and Git to incorporate TxFS transactions. We show that when using TxFS transactions, SQLite performance on the TPC-C benchmark improves by 1.6x
Ответить | Правка | Наверх | Cообщить модератору

30. "Для Linux представлена файловая система TxFS с поддержкой AC..."  +1 +/
Сообщение от x3who (?), 18-Июл-18, 10:21 
Эффективно они вроде как подменили журнал наката SQLite журналом ФС. Возможно это даёт какие-то преимущества по скорости. Мне вот что только непонятно: БД оперирует записями, а TxFS - объектами ядра, т.е. страницами. Одна страница может содержать много записей. Вот что происходит в TxFS, если мы интенсивно апдейтим/добавляем/читаем записи из множества транзакций, обращаясь к одной и той же странице? Инсерты будут создавать разреженные страницы, содержащие одну или несколько записей, созданные одной транзакцией? Конфликты при доступе на чтение и апдейт к уже закоммиченным данным? Это же вполне реальный юзкейс: приходят данные и как-то обрабатываются, при этом новые данные обычно ложатся рядом и при этом они наиболее востребованы другими приложениями.
Ответить | Правка | Наверх | Cообщить модератору

46. "Для Linux представлена файловая система TxFS с поддержкой AC..."  +/
Сообщение от anonymous (??), 18-Июл-18, 12:54 
Базы точно так же оперируют страницами с данными, записями было б слишком дорого.
Ответить | Правка | Наверх | Cообщить модератору

52. "Для Linux представлена файловая система TxFS с поддержкой AC..."  +/
Сообщение от x3who (?), 18-Июл-18, 13:23 
>  Базы точно так же оперируют страницами с данными, записями было б слишком дорого

В БД ты спокойно можешь апдейтить разные записи, сидящие в одном блоке, из разных транзакций. ФС же ничего не знает про твои структуры данных.

Ответить | Правка | Наверх | Cообщить модератору

101. "Для Linux представлена файловая система TxFS с поддержкой AC..."  +/
Сообщение от funny.falcon (?), 19-Июл-18, 09:33 
Зависит от БД.
В sqlite (стоковом) одновременно может быть только один писатель, т.е. ситуации "ты можешь спокойно апдейтить разные записи из разных транзакций" в принципе нет.
И в классическом режиме (с undo) писатель блокирует читателей тоже, копирует страницы в undo, а меняет их прям на месте.
Этому режиму транзакционная фс очень поможети вместо того, чтобы выгонять читателей и использовать собственный undo, sqlite может использовать транзакции файловой системы.
Ответить | Правка | Наверх | Cообщить модератору

105. "Для Linux представлена файловая система TxFS с поддержкой AC..."  +/
Сообщение от x3who (?), 20-Июл-18, 11:54 
> И в классическом режиме (с undo) писатель блокирует читателей тоже, копирует страницы в undo, а меняет их прям на месте.

Не совсем так, в классическом "Read committed", в худшем случае "пишущая транзакция блокирует изменяемые данные для читающих транзакций" [1], в лучшем - вообще не блокирует. Но, что важно, эти самые "изменяемые данные" - это конкретные строки, которые изменил писатель. А не какие-то единицы хранения данных

> Этому режиму транзакционная фс очень поможети вместо того, чтобы выгонять читателей и использовать собственный undo, sqlite может использовать транзакции файловой системы.

Может на нём и можно реализовать такой эрзац нормальных транзакций, но тогда будет невозможно проектировать приложения без дидлоков, да и работать это всё будет медленнее по сравнению с нормальными СУБД за счёт лишних, не нужных, абортов при изменении разных данных, случайно оказавшихся на одной странице.


[1]: https://ru.wikipedia.org/wiki/%D0%A3%D1%...

Ответить | Правка | Наверх | Cообщить модератору

106. "Для Linux представлена файловая система TxFS с поддержкой AC..."  +/
Сообщение от x3who (?), 21-Июл-18, 03:18 
> В sqlite

Почитал немного про SQLite и до меня дошло, что весь ваш пост был про SQLite.. Заодно дошло, что он там как раз страницами и оперирует с его serializable транзакциями, за ненадобностью блокировок на уровне строк в этом режиме. Так что как минимум сабжевая ФС с ним смотрится естественно. Хотя вот по этому вс равно не понятно что TxFS тут может дать: "вместо того, чтобы выгонять читателей и использовать собственный undo, sqlite может использовать транзакции файловой системы". Чтобы  читатели могли сосуществовать с писателями есть WAL - ведь при параллельном чтении может потребоваться множество версий одной и той же страницы. В режиме UNDO - какая разница кто осуществит копирование при записи SQLite или ФС? Ну разве что может за счет того, что происходит в ядре и используются, насколько я понял, аппаратные средства.. Но чтобы ажно в полтора-два раза только из-за этого - сомнительно оно как-то.

Ответить | Правка | К родителю #101 | Наверх | Cообщить модератору

107. "Для Linux представлена файловая система TxFS с поддержкой AC..."  +/
Сообщение от Очередной аноним (?), 21-Июл-18, 12:03 
> Базы точно так же оперируют страницами с данными, записями было б слишком дорого.

Базы оперируют блоками ("страницами с данными") только для чтения/записи на носители (читают/пишут один блок за раз, а не построчно). Но внутри блоков они оперируют записями. Транзакции и блокировки в обычных нормальных реляционных БД имеют своей минимальной единицей манипулирования как раз строку (а не блок). Причем некоторые (опять же, нормальные) БД еще являются и версионными (а не строгими чистыми блокировочными) - одна строка может иметь несколько версий для разных транзакций, в зависимости от уровней изоляции этих транзакций. К примеру (для Оракла и его дефолтного уровня изоляции транзакций) - написАл ты очень сложный запрос связав несколько огромных таблиц. Выполняется этот запрос долго, к примеру, 3 минуты. С момента начала выполнения запроса все данные в таблицах должны быть (для запроса) согласованными, иначе ты получишь неверный результат, ибо в течение этих трех минут еще куча других транзакций может закоммитить кучу изменений (и ты бы в начале выполнения запроса читал старые данные, а во второй-третьей минуте - новые свежие данные). Т.е. читать нужно только данные, зафиксированные на момент начала выполнения оператора SELECT (повторюсь, при дефолтном уровне изоляции транзакций в Оракле). В древних БД-блокировочниках для такой согласованности требовалось бы блокировать целиком все таблицы, входящие в запрос (т.е. 3 минуты никто ничего не пишет в эти таблицы). В БД-версионниках никто ничего не блокирует, SELECT выполняется (в случае необходимости) над старыми версиями строки, если она успела измениться и закоммититься другой транзакцией после начала работы селекта. Правда Оракл немного неполноценный, можно получить исключение snapshot too old, но все же. Делать подобные механизмы БД опираясь на представленный в статье функционал файловой системы - как-то по-детски, от непонимания внутренних алгоритмов работы БД и уровней изоляции транзакций. Вам там ссылку оставили, про эти сами уровни, читайте.

Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

47. "Для Linux представлена файловая система TxFS с поддержкой AC..."  +/
Сообщение от mickvav (?), 18-Июл-18, 12:56 
Ну соберите стендик, если интересно. Тут ведь как - новая заявленная функциональность требует и новых методов тестирования - стандартно же ФС - это про файлы и неструктурированные данные, а БД - это про структурированные данные и транзакции.
Ответить | Правка | К родителю #30 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру