LINUX.ORG.RU

The Buffer Tree (Lars Arge).

 


0

1

Кто в теме буферизованных Б-деревьев? Кто читал эту доку?

http://www.cc.gatech.edu/~bader/COURSES/GATECH/CSE-Algs-Fall2013/papers/Arg03...

Ютубный презентец: http://www.youtube.com/watch?v=KZua1GbIGr8

1) Нафига там такой принципиальный момент постоянно оговаривается, что количество фанаутов у внутренних нод очень дофига, сильно больше «обычного Б-дерева»? И типа высота дерева от этого небольшая. А зачем?

2) Почему оценка сложности (в единицах IO) флаша буфера на 1 уровень вниз равна O(M/B)? Ну M - размер буфера, да, это количество данных мы флашим, пробегаясь по ним (они отсортированы). А при чём тут вообще B? Мы же флашим тоже в буфера дочерних нод, нахрен нам вообще какой-то IO? Чё это вообще за B? Размер внутренней ноды? А зачем оно нам?

У меня закрадывается смутное догадко, что буферы M поделены на блоки B и могут лежать во внешней памяти. Поэтому, собственно, раскидывание M элементов по буферам дочерей - это положить на диск M/B блоков. Так? Пипец. Какие же это тогда буферы, если они на диске? Или я дебил?

В скайп приходите кто сильно в теме, обсудим: http://www.heypasteit.com/clip/27NJ



Последнее исправление: hlamotron (всего исправлений: 5)

Почему оценка сложности (в единицах IO)

IO

закрадывается смутное догадко ... могут лежать во внешней памяти

хороший догадко

B-деревья только тем и прекрасны, что снижают число операций за счет малой глубины. В RAM дешевле двоичными деревьями балансировать

MyTrooName ★★★★★
()
Последнее исправление: MyTrooName (всего исправлений: 1)

Нафига там такой принципиальный момент постоянно оговаривается, что количество фанаутов у внутренних нод очень дофига, сильно больше «обычного Б-дерева»?

Всю статью не читал, но вроде у них получаются некие вариации b+ дерева. Жирные узлы ему нужны чтобы а) за одну IO операцию больше данных читать/писать, б) при изменении контента дерева меньше трогать блоков, в) меньше съедать памяти на технические данные (в большом блоке выше доля полезной информации по отношению к размеру блока).

Чё это вообще за B?

Это размер IO блока в элементах. Понимаешь ли, нельзя прочитать с HDD произвольное кол-во байт, можно только определённое кол-во блоков (секторов) и тоже самое с записью. Потому все операции ввода вывода на такие носители стараются делать блоками размером кратным сектору и вних же (random IO + seq IO) измерают время (сложность) операций.

У меня закрадывается смутное догадко, что буферы M поделены на блоки B и могут лежать во внешней памяти.

Все данные дерева должны размещаться в энергонезависимой памяти и некоторые из них могут подгружаться в RAM, потому все буфера в RAM и «диск» состоят из одинаковых блоков для простоты их считывания, записи и адресации из других блоков. В частности все данные M/B блоков есть и в оперативной, и во внешней памяти.

mashina ★★★★★
()
Ответ на: комментарий от MyTrooName

B-деревья только тем и прекрасны, что снижают число операций за счет малой глубины. В RAM дешевле двоичными деревьями балансировать

Вопрос не про B-деревья, а про блоки размера M из статьи. Нечетал, но осуждаешь, видимо...

В RAM не дешевле двоичными деревьями, в RAM дешевле B-tree тоже, потому что память иерархична и у проца есть кеш. Обращаясь в RAM к указателю размером 8 байт ты загружаешь из неё 64 байта, всё как с диском.

hlamotron
() автор топика
Ответ на: комментарий от mashina

Жирные узлы ему нужны чтобы а) за одну IO операцию больше данных читать/писать

Ну взял бы обычное Б-дерево, увеличил бы размер блока тупо в настройках и радовался.

Вопрос зачем именно в этой структуре с буферами нужны сильно большие фанауты.

Это размер IO блока в элементах.

Вопрос не в этом. Вопрос в том, что «а при чём тут вообще B? Мы же флашим тоже в буфера дочерних нод, нахрен нам вообще какой-то IO?»

Все данные дерева должны размещаться в энергонезависимой памяти и некоторые из них могут подгружаться в RAM, потому все буфера в RAM и «диск» состоят из одинаковых блоков для простоты их считывания

Ну вот вопрос не про Б-дерево вообще, а про эти вот буферы размера M.

hlamotron
() автор топика
Ответ на: комментарий от anonymous

Слушал, не нашёл там ответов на свои конкретные вопросы.

hlamotron
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.