I really like how the little guys turn their heads to look at the thing you're talking about :)
@sid98geek7 ай бұрын
They are very cute and innocent.
@Scrolte61747 ай бұрын
He does this in every video, Sherlock.
@Slitherman967 ай бұрын
@@Scrolte6174not everyone watches what you watch, Sherlock
@thezipcreator7 ай бұрын
@@Scrolte6174 what does that have to do with anything? even if they do it in every video you can be appreciative of it?
@theowallace23107 ай бұрын
Having completed data structures and algorithms at an ABET accredited institution, I nod my head knowingly at this video.
@mooseyard7 ай бұрын
Beautiful explanation. I love the animations. As someone who's implemented a few persistent B-trees, allow me to point out a few more details: * This is the classic original B-tree. However, most databases use a B+tree, which is different in that the values are stored only in the leaves; keys in upper nodes just point to lower nodes. When a node splits, you don’t move the middle value up, it stays in one leaf or the other. * B-trees I’ve looked at, like SQLite, don’t have a fixed number of keys in a node. In real usage, keys and/or values are variable size, like strings, and the nodes are fixed-size disk pages (often 4kb.) The number of keys or values that fit in a node is highly variable. So instead you keep adding to a node until its size in *bytes* overflows a page, and then split. Some nodes might have a hundred keys, some might have only four. It doesn’t matter; the algorithms still work.
@yad-thaddag7 ай бұрын
Thank you! Very interesting!
@tylerpetrov80947 ай бұрын
Learning something new everyday! Thanks for the info
@TheJamesM7 ай бұрын
Yes, I was thinking about the latter point while I watched: "How do you decide on the number of keys per node? I guess you size it to just about fit into available memory, in order to minimize the number of expensive database queries." If the keys were of consistent size, you could just divide the memory you want to allocate by that size, but in most contexts I can see how it would be more practical to divide keys by size rather than by count. Do you get problems if e.g. you have adjacent large keys? Would that result in "wasted" space in a node?
@ZenoDovahkiin7 ай бұрын
That makes sense, thanks!
@RomanShchekin6 ай бұрын
Quite useful comment to be honest. Real life scenarios are super useful in pair with the academic explanation!
@MaxPicAxe8 ай бұрын
Lol that's actually my first time hearing about a b tree, looks awesome and elegant and simple
@thacium7 ай бұрын
Elegant indeed but far more complex than a binary tree. In this case you're trading simplicity for faster search time.
@paulstelian977 ай бұрын
@@thacium Some say that a special case of b-tree is equivalent to the red-black tree, another strategy which is, however, a binary search tree as well.
@TheWizardGamez7 ай бұрын
Knock on wood before your up at 2 AM on a Red Bull and adderall fueled binge trying to figure out how to shave off 1 ms of process time.
@ronak2127 ай бұрын
Ain't nowhere near simple but magnificent for sure
@seductivewalrus558721 күн бұрын
Thank you for doing the service of posting this publicly and free. This cleared up for me in 12 minutes at absolutely no cost. Meanwhile, the 75 minute lecture I paid thousands of dollars for left me more confused than inspired to apply this very important data structure to my side project.
@asishreddy77297 ай бұрын
Such a simple but beautiful animation! So many channels do such complex animations but they do not realise simple animations can be so beautiful.
@davidbatista11837 ай бұрын
Has a Wall-E kind of feeling 😊
@SantiagoArizti7 ай бұрын
I found it confusing that the nodes left undimmed were the ones we were supposed to pay attention to. Didnt you?
@nikilragav4 ай бұрын
@@SantiagoArizti no, but I found it confusing that he would undim parts of the tree as he said the sentence rather than just undimming the whole section together
@amongusztav6557 ай бұрын
I didn't understand B-trees from university classes but now I do. 3 days before exam. Thank you!
@vastabyss64966 ай бұрын
how did it go?
@amongusztav6556 ай бұрын
@@vastabyss6496 I passed it but I only got a kettes/elégséges so I'm going to attend the repair exam
@Lemetrriss5 күн бұрын
how did it go?
@0tobsam05 ай бұрын
I have an exam on algorithms and data structures in 3 days and this video manages to break down hours of lectures into 12 minutes... Incredibly helpful
@TheSilentknight.18 ай бұрын
Just saying thank you from behalf of the community for those amazing visualization teaching vids and for the quality you put in them
@chriscsld727810 күн бұрын
one of my philosophy of learning is visualization, thank you Mr for guiding those who came here for understanding
@LordHonkInc7 ай бұрын
Man, I remember having balancing B-Trees as assignments in my CS exams and failing to get the right answers. This video does a much better job of explaining it than any class I took in university in a fraction of the time we spent learning it. Thanks for finally getting me to understand👍
@mrinalde7 ай бұрын
Thanks!
@PeterKluth10 күн бұрын
It's Brian from cs50! Hahaha! Spent so many hours listening to his walkthroughs of the problem sets, did not expect to stumble upon his YT channel
@MichaelChin19948 ай бұрын
Fed up with my living room being a mess, I decided to watch this. Oddly think it's going to help
@KaiHenningsen7 ай бұрын
Keep the mess in a b-tree?
@Y2Kvids7 ай бұрын
use c trees
@azizayari2527 ай бұрын
Well you're gonna need to sort it in an ascended or descended order first
@KaiHenningsen7 ай бұрын
@@azizayari252 What for? That happens automatically when putting it in the tree.
@Shake_Well_Before_Use7 ай бұрын
Christmas?a@@Y2Kvids
@Eckster7 ай бұрын
So good, the easiest explanation for such a common data structure I've seen. It's crazy how we teach all these other trees in computer science classes but leave out the most used one. I especially appreciated the performance advantages against binary trees being explained.
@neilcarrier16207 ай бұрын
I agree; it's a good example of how different measures of efficiency lead to different solutions.
@FutureAIDev20157 ай бұрын
This channel has been a massive help for me in understanding the concepts in my algorithms class well enough to actually pass the assignments.
@isbestlizard7 ай бұрын
MIT opencourseware also do a great series on algorithms plus the professor is SUPER CUTE he's the dude into origami
@esra_erimez7 ай бұрын
This is a great video. Normally, databases do not store data in internal nodes, only leaf nodes and function as intermediate pointers. Leaf nodes on the other hand contain the actual data entries or pointers to those data entries. Additionally, most databases have pointers to neighboring leaf nodes. By the way, these pointers to neighboring leaf nodes help lot with solving concurrent operations on the B-Tree.
@sohampatel51667 ай бұрын
yeah those are known as B+ Trees
@mooseyard7 ай бұрын
A different approach to concurrency is copy-on-write, where instead of changing a node in place you make a copy of it with the changes. This means changes don’t affect any concurrent readers since nodes are immutable. However, any nodes that point to the modified node also have to be updated to point to the new one, which means a change spreads up to the root node. (This may sound wasteful, but in practice you can modify new nodes in place because no one else can see them. So a node only has to be copied once during any transaction.) In this type of tree you can’t have links between siblings because you’d end up having to copy all the siblings too. Instead, when you’re going down the tree you keep a breadcrumb trail, your path, and to get to a sibling you look up, move one child, and go back down. This type of tree is used by CouchDB and LMDB, among others.
@nikilragav4 ай бұрын
when do you get concurrent operations on the same DB? How is it not queued?
@esra_erimez4 ай бұрын
@@nikilragav There is a paper titled "Efficient locking for concurrent operations on B-trees" by Bing Yao & Philip Lehman that was the break through
@nikilragav4 ай бұрын
@@esra_erimez Thanks. Is the idea that you have multiple threads accessing the same db? No queue?
@offtheball877 ай бұрын
I've just started the CS50 AI course as background learning at work, and imagine my surprise to hear this voice again. I really enjoy your teaching style, and I'm so glad to have found more content from you!
@The_Pariah5 ай бұрын
This is a REALLY good series and I wish Spanning Tree would post more content. They have a fantastic layout, information is conveyed well, and it's thorough but not so technical that people don't understand it. Please make more content. It's hard to find solid video series like this that explain important programming concepts. 10/10
@vibhavkadavakollu4669Ай бұрын
You're awesome bro, I couldn't understand this concept from 1 week of lectures, but you just explained it in 10 minutes.
@caleblandis36947 ай бұрын
This is literally the best data structure explanation video I’ve ever seen
@yoyoyo-hw2lc3 ай бұрын
Absolutely Brilliant Explanation and Animation. I had never encountered B-Trees and became interested in them because they are not in A-level Computer Science Exam Boards. This video taught me B-trees in just 12 minutes and encouraged me to build my own in C++.Thanks!
@peterpesch7 ай бұрын
Wow! Great explanation! Basically the same as how we learned it 45 years ago, but with these animations it takes much less time. Back than, the professor was running around with chalk to change the diagrams on the chalkboard ...
@codermomo17925 ай бұрын
OG programmer All respect
@Browsinghard7 ай бұрын
Very elegant explanation and animation, you cleared up my misunderstandings from when I just read about b-trees. Your little blob dudes are great communicators!!
@GH-oi2jf5 ай бұрын
"B-trees" please. Capitalized.
@mskiptr7 ай бұрын
I more or less knew how B-trees work already, but this was just such a neat refresher that I now want to implement it (maybe together with a couple of formal verification proofs, to show that all these properties are always maintained)
@69k_gold7 ай бұрын
This is the best visual learning channel for CS on KZbin
@kamalzubairov23447 ай бұрын
Awesome explanation. I always had the feeling that I almost understand how B-trees work, but I wasn't quite there yet. This video showed me the things that I was missing. Thank you!
@srivarsha9574Ай бұрын
The best video out in the internet for B Tree!! Thank you so much!!
@willowtreeangel4 ай бұрын
Ah, I always struggled with B-trees during my Database Design class. If I had this video, I wouldn't have struggled at all! Fantastic work, very informative.
@paulstelian977 ай бұрын
There's an additional bonus -- nodes tend to be able to fill in some special size, like a disk block or a cache line, which allows further efficiency when doing comparisons for a search. That's why for some applications it's objectively better than even the red-black tree.
@SpadeZ7772 сағат бұрын
What an amazing way to explain B-Trees I really like it!!
@professorpoke8 ай бұрын
Proud to say that I am following this channel since when it has less than 100K subscribers.
@MichaelDeHaven8 ай бұрын
Dude, I just found it yesterday! It's a great channel and deserves the growth.
@spliterator19817 ай бұрын
I'm listening to "designing data intensive applications", and wasn't quite able to visualize a b-tree through audiobook only. This really cleared everything up. Thanks!
@kamgarostand434324 күн бұрын
Great Video! The animations were more than welcome!
@HudsonGTVАй бұрын
Important timestamps. **Insertion Scenarios:** 5:08 - Basic Insertion 6:20 - Another Basic Insertion with Root partially full 6:50 - Insertion with full root **Deletion Scenarios:** 7:48 - Basic Deletion 8:15 - Deletion of Key in Node w/Min Count (take sibling key - it becomes new separator - old separator is moved to original node where deletion occurred) 9:42 - Deletion of Key when Sibling Nodes are also at Minimum Count (merge sibling and separator together into single full node) 10:10 - Same as above, but causing Parent node to fall below Minimum Count as well 10:28 - Deletion of key from middle of tree (new separator needed - either take largest val in left subtree, or smallest val in right subtree - may need to take key from sibling or merge 2 nodes together if it causes child node to fall below min key count)
@bokistotelАй бұрын
I have no words, just amazing!
@keobkeig2 ай бұрын
Best explanation of btrees I’ve ever seen
@leo_bonifacio7 ай бұрын
Thank you a lot for the beautiful explanation of this topic! I always encounter the question about indexing algorithms and used data structures in databases for a data engineer position. So this video helps a lot in understanding b-trees. Thanks again!
@reza.kargar2 ай бұрын
Best B-Tree explanation ever!
@mooldar9 күн бұрын
Outstanding explanation, thanks for the animations 🌟
@Crafterchen22 ай бұрын
This helped me a lot! The Animations are really well done and help explaining the thing you're talking about. This is how explanatory videos should be done!
@IvanToshkov8 ай бұрын
I love your videos. You somehow always manage to hit the right amount of details. Great job!
@trocchiettoski7 ай бұрын
is the first time i subscribe to a channel after i saw 5 seconds and skipped a couple of minutes after other 3 seconds. All your effort needs to be encouraged
@freebirdyaoyao2 ай бұрын
Fantastic illustration for one of the most complex topic in computer science education. I wish I get to learn this video when I was at university .
@pesetskypsАй бұрын
Bravo for traversing the complexity into simplicity 🎉
@richardwilliamsmusic6 ай бұрын
Phenomenal teaching! please do more computer programming related concepts, love this!
@docjoesweeney7 ай бұрын
Ha! Thanks for this. I remember coding b trees waaaay back in the early 80s. Gawd I'm old.
@crosswalker457 ай бұрын
Which language do you used to code in 80s?
@poopytowncat7 ай бұрын
_"early 80s"_ OK boomer! I'm approaching my "early 80's" and I remember coding stuff waaaay waaaay back in the "early 70's" on IBM punch cards.
@docjoesweeney7 ай бұрын
@@crosswalker45 vb, ada , assembler (for 6809), vulcan then dbase and clipper, kman, pascal... likely a few others i am too to recall.
@crosswalker457 ай бұрын
@@docjoesweeney I always wonder how people in 80s, used to write the code. I'm assuming there won't be any proper documentation or persistent internet connection for that matter.
@docjoesweeney7 ай бұрын
@@crosswalker45 dig up old editions of Dr Dobbs magazine. I am sure someone would have scanned them for prosperity.
@ivanthomas85038 ай бұрын
you published this at the exact right time I have a final exam today and this will be on it and I needed to study up on it.
@Lidonnn5 ай бұрын
With your explanation, it looks really simple and elegant. Thanks a lot!
@achyutkayastha4248Ай бұрын
This is how real learning should be done! Great content! I don't remember if I learned it full when I did in college.
@sripriyansvbsbtskanchibhat91525 ай бұрын
It's really an awesome way of explanation ruling out drawing the trees and explaining...no words to appreciate...thank you for making such wonderful videos...great work
@s1mo7 ай бұрын
Mark Zuckerberg teaching me B-Trees, impressive
@nithssh7 ай бұрын
I was looking to implement btrees a while back and all the literature on it were conflicting and varying. I like how you handled all the variances subtely. This is a great video, the definitive one on btrees for sure. Cheers.
@GH-oi2jf5 ай бұрын
The term is "B-tree."
@jiwan888 ай бұрын
Amazing video and explanation.
@angkhoi57407 ай бұрын
awesome, never understood this tree until now. Thanks a lot :)
@yagamilight1208 ай бұрын
You're a legend bro... Hope u live 100 more years
@fdsfkdj7 ай бұрын
Thank you for directly going into the subject.
@HolyC-xs2zj7 ай бұрын
So well animated, so simply and informatively explained. Thank you!
@chanm014 ай бұрын
Dude, these animations are sick.
@arkan7rb3 ай бұрын
thank you sir for most wonderful explanation for b trees i have ever seen i well share ur vid to friends it deserves to be seen
@rafazieba99827 ай бұрын
I've been a professional developer for 17 years now. A really good one. I always knew that BTrees are used to store database indexes and that they reduce search complexity to logarithm. I knew how binary trees and AVL trees work. I always wondered how BTrees work. I was too lazy to do the reading. Now I know. Thank you.
@walttroianivargas52004 ай бұрын
Something similar happened to me, I knew the tool and used it but i didn't fully grasp it. Now that I'm making my own SQLite in Rust is really helpful!
@JohnSmith-op7ls3 ай бұрын
Unless you’re writing a DBMS, it’s super unlikely you need to know how b-trees work
@AndySterkowitz3 ай бұрын
Excellent video. Well done on articulating this in such an easy to understand way.
@manojalayer19 күн бұрын
Amazing quality of presentation.
@shubhamraj55577 ай бұрын
Great video please continue making these
@SpockKaDeddy8 ай бұрын
Thank God your back ❤❤❤❤
@alessio12532 ай бұрын
You may have just saved my exam. Incredible video
@mihiragrawal61742 ай бұрын
Beautiful animations and explanation. Really really thanks for this
@live_first18 күн бұрын
I remember working in the ANSII MUMPS language / database in the 80s. A very easy to use and poweful deveopment system, way ahead of its time, which overtme was developed with both SQL and OO front ends by InterSystems
@HPerrin7 ай бұрын
This is a great explainer video. Very easy to follow and I love the little robot guys.
@Drraghavsethi6 ай бұрын
every other video explaining B trees must be deleted to save space and time. This is perfect explanation.
@saviofernandes52637 ай бұрын
Stumbled upon this video by accident and I knew I heard that voice before 😂Nice to know that you have your own KZbin channel now, Brian!
@richbronson90822 ай бұрын
Great explanation. I really left feeling like I understood.
@allanatal7 ай бұрын
That video was so well made that even I could understand. Code this algorithm is another story, though.
@dragonlordsaviour70056 ай бұрын
absolutely beautiful explanation
@wissiw52767 ай бұрын
i wish i could have a teacher that utilizes simple animations like these in class, the visualisation makes it so clear
@aV5d9nlUBQ98 ай бұрын
Your videos are awesome. Thanks, Brian!
@mrunknown50875 ай бұрын
the way you teach is magnificent. keep it up buddy
@Bess_GatesАй бұрын
Thank you man , it’s my first time to understand this
@vt_blurry24436 ай бұрын
Beautiful animations with a very clean explanation! Thank you sir!
@hufuhufu7 ай бұрын
Animation is amazing!
@sharma7889Ай бұрын
the best channel i've ever visited...all you need is some promotion..and then lets see where you will be!!All the best!!
@isbestlizard7 ай бұрын
Your homework assignment: write a b tree in python that handles inserts and deletions and unit tests that validate it works correctly
@lorenzosotroppofigo16417 ай бұрын
I had to make a goddamn Red Black tree in C without any external library for a single almost worthless point in university. I didn't know a data structure could have that many bugs. That thing python b tree doesn't scare me.
@arossfelder7 ай бұрын
@@lorenzosotroppofigo1641damn, these rotations are evil 😂
@iamtimsson5 ай бұрын
run redundant calc and compare?
@matiKRK22 күн бұрын
Not bad for high school.
@aliveli86507 ай бұрын
Very good explanation!! Congrats!! Keep it going!
@TheYakup855 ай бұрын
That's the great explanation I have ever seen. Thank you so much!
@dameanvil5 ай бұрын
0:00 🌳 Binary search trees organize data for efficient searching based on key values. 1:12 🔄 Increasing nodes to three instead of two in a search tree can sometimes reduce efficiency. 2:26 🚀 B-trees optimize data storage by allowing nodes to hold multiple keys, enhancing search performance. 4:04 ⚖️ B-trees maintain balance with rules on node key counts, ensuring consistent search efficiency. 7:40 🗑 Deleting from a B-tree involves merging nodes or redistributing keys to maintain structure and efficiency.
@firstacc54427 ай бұрын
This will stay the best video or years to come
@Lost_S5 ай бұрын
Omg I love you this is an incredible review of how these trees work
@slobberingdog726 ай бұрын
Nice and easy explanation. Great job !!
@krituos6 ай бұрын
Much better then any course I took on the subject 🎉
@MySisterIsASlytherin5 ай бұрын
This is so simple it's almost magical!
@yogeshshahi7 ай бұрын
One of the best, really liked it♥️🎉
@Intense_Cloud7 ай бұрын
The "monitos" (cute animations) got me engaged to watching, among the interesting information presented/narrated. Great video!🎉😊
@canmertinyo7 ай бұрын
the expression was really simple and understandable thank you!
@konstantinzolotarev7 ай бұрын
Surer clear and simple explanation! Thank you very much for your time and effort!
@motonoob-i2d5 ай бұрын
Really well done. Wish I had access to content like this when I went through school