Episode 26: SUPER DUPER BLOCK
1:12:29
21 күн бұрын
Episode 21: Grid.Write
1:03:08
Ай бұрын
Episode 019: A Sorted Array on Disk
1:10:09
Episode 018: Simulation Failure
55:11
Episode 017: Consensus Wrap Up
50:50
Episode 015: View Change
59:57
3 ай бұрын
Episode 014: Repairing Headers
1:02:38
Episode 013: Prepare Repair
1:03:11
4 ай бұрын
Episode 012: Run to the IO_urings!
1:23:08
Episode 011: Let's Go to the Disk!
1:22:40
Episode 008: Mathematics of Consensus
1:32:14
Episode 006: Zig and Rust
1:16:48
5 ай бұрын
Episode 005: Limit Everything
1:04:51
Episode 004: COST Efficient Transfers
1:13:57
Пікірлер
@tenthlegionstudios1343
@tenthlegionstudios1343 15 сағат бұрын
Cant wait to watch these next few! I Did watch a few of the old streams/videos going over the LSM forest, but I am looking forward to getting this deep dive. I really appreciate all the work you have done on this. A guided code walkthrough TigerBeetles codebase is amazing.
@Peter-bg1ku
@Peter-bg1ku Күн бұрын
King is the king of both the mic and the keyboard.
@Peter-bg1ku
@Peter-bg1ku 3 күн бұрын
I never thought Redis AOF were this simple.
@stevesteve8098
@stevesteve8098 4 күн бұрын
Yes.... i remember back in the 90's oracle tried this system of "direct IO", Blew lots of trumpets..... and announced it HAS to be better & faster Because ....'insert reasoning here" Well you know what..... it was complete bullshit, becasue they made lots of assumptions and very little real testing. Because even you THINK you are writing directly to the "disk" YOU ARE NOT.... you are Writing to a BLACK BOX., you have absolutely NO idea of HOW or WHAT is implemented in that Black box. There may be a thousand buffer levels in that box, with all sorts of swings and roundabouts. so... no.... you are NOT directly writing to disk, such a basic lack of insight and depth of thought is a worry with this sort of "data" Evangelicalism...
@ForeverZer0
@ForeverZer0 18 күн бұрын
Zig has been on my radar for about a year as one of those languages "I want to learn someday". About a month ago I finally devoted some time to it, and I regret not having done it sooner. I initially found the syntax off-putting, but within literally a few hours, I came to really appreciate it, realizing how smoothly it allowed you to do perform many tasks and work with the language idioms. The stdlib is a little sparse in the documentation department, but I can hardly hold that against a language that hasn't even hit v1.0 yet.
@solagratiasolafide
@solagratiasolafide 24 күн бұрын
Jepsen mentioned
@Hector-bj3ls
@Hector-bj3ls 26 күн бұрын
I wish there were some examples of what he was talking about. Sometimes it just sounds like vague advice. "Do software good like an artist does"... Okay, but like what? Like when talking about naming things he just said: "Use the right nouns and make the names good and clear". Yes, I agree, probably, but what are some examples? How do I know what you mean by "use the right noun"? I think I do that, but I have no idea what you think that is, nor what Tiger Style says on the subject.
@amoghyermalkar5502
@amoghyermalkar5502 29 күн бұрын
I love the kind of content, but it would really help to stick till the end of the video if the audio quality wasn't this bad!
@ikolomiets
@ikolomiets Ай бұрын
So far, this is the most mind-twisting episode of all the previous ones. I'm still struggling to build a mental model around the idea of each ballot is processed concurrently by the replicas, yet a replica can "assess" the result of casting for previous ballots. Are there popular media (articles, video) describing the very same fundamentals behind consensus?
@tigerbeetledb
@tigerbeetledb 27 күн бұрын
These two lectures made consensus click for me personally lamport.azurewebsites.net/tla/paxos-algorithm.html
@vekmogo
@vekmogo Ай бұрын
Great video, very clear and helpful! Also, nice title!
@nexovec
@nexovec Ай бұрын
Turns out I've been using tigerstyle for the past 5 years and didn't even know. It's always good to see something put in writing that you've long subconsciously practiced, because then you can focus on it and audit it. This is helpful.
@YuruCampSupermacy
@YuruCampSupermacy Ай бұрын
Could you plese zoom in a bit on your editor the next time? Its very hard to read the code if i am watching this on my phone
@8888anthoq88
@8888anthoq88 Ай бұрын
You should be able to zoom in yourself if you're using the KZbin app
@nathanfranck5822
@nathanfranck5822 Ай бұрын
Matklad, it would definitely benefit you to unlearn the "uhhh" word. I think we tend to use it in conversation so the other party doesn't butt in and take the conversation in another direction, so it makes sense that we would have learned that behaviour in normal interactions with people... But in presentations I'd say it's a bad habit
@YuruCampSupermacy
@YuruCampSupermacy Ай бұрын
I am guessing that English is not his mother tongue and despite that he has a really good command over the language, your comment is an unnecessary nitpick instead of constructive criticism. Even native English speakers overuse uhhh. It's a common filler word And if one is giving an impromptu presentation they will end up using filler words to gather their thoughts. It's not like he is speaking off of a script.
@nathanfranck5822
@nathanfranck5822 Ай бұрын
@@YuruCampSupermacy Yeah I totally get it, maybe I'm more sensitive than others, BUT if this was a college lecture you bet the students would be talking about it after class, comes with the territory
@JoeTaber
@JoeTaber Ай бұрын
The key to unlearning "uh" is to become comfortable with silence.
@niskarshdwivedi1549
@niskarshdwivedi1549 Ай бұрын
00:03 Testing distributed systems is complex due to asynchronous communication and multiple computers. 02:39 Testing a Single-Node, Single Threaded, Distributed System 06:44 Testing for unknown unknowns is crucial for robust systems 08:41 Cost of solving bugs increases over time 12:42 Effectively testing a system requires comprehensive exploration of its state space. 14:42 Testing a distributed system can be challenging due to the difficulty in replicating bugs found by users. 18:37 Focusing testing energy on key points can significantly speed up algorithm performance. 20:38 Using Mario's x-coordinate as a guidepost for progress in the game. 24:03 Testing distributed systems often requires considering higher dimensions than initially anticipated. 25:55 Exploring incomparable and unique situations to find bugs in distributed systems. 29:39 Challenges in Branch Execution Order 31:46 Testing a single-node distributed system in 1985 revealed issues with random number generation. 35:22 Applying a mask with low probability makes random distributions more realistic. 37:15 Improving random number distributions for more natural movement and beating levels in old video games. 40:56 Developed a deterministic hypervisor for running software consistently. 43:05 Accessing the program via email subject line.
@themichaelw
@themichaelw Ай бұрын
18:00 that's the same Andres Freund who discovered the XZ backdoor. Neat.
@klumpeet
@klumpeet Ай бұрын
"State is building a database" Yes!
@sierraoscardelta
@sierraoscardelta Ай бұрын
really great stuff team!
@ankishasharma7035
@ankishasharma7035 Ай бұрын
Great presentation!
@utkarshsrivastava2107
@utkarshsrivastava2107 Ай бұрын
This was awesome! Thank you for sharing.
@VipulVaibhaw
@VipulVaibhaw Ай бұрын
This was mind blowing presentation.
@bobbycomputers
@bobbycomputers Ай бұрын
The theme song really slaps!
@JoeTaber
@JoeTaber Ай бұрын
The talk defines two terms: Strategy and Tactics. Strategy is the datum you choose to optimize for as the fuzzer randomly walks the states of the system. E.g. optimize to maximize Mario's X value, or optimize for reaching all tile positions etc. Tactics is the choice of input distribution.
@JoeTaber
@JoeTaber Ай бұрын
My favorite deterministic simulator is Factorio (tbf I haven't tried TB). A deterministic hypervisor is dope!
@CTILET
@CTILET Ай бұрын
Node js?
@trejohnson7677
@trejohnson7677 Ай бұрын
LOOOOL
@michaellatta
@michaellatta 2 ай бұрын
Printing debugging is about looking for patterns of behavior, in particular with the output going into grep.
@biomorphic
@biomorphic 2 ай бұрын
Correct me if I am wrong, but the static allocation is only possible because you do have few specific structures to allocate. All of these would not be possible if the client would send a completely different structure. I mean, your system would never be able to store anything but transactions, unless someone modifying the code, adds a different structure, and compile it. Am I right saying so, and is that the reason this database is so specific and cannot be used for any other use cases rather than financial transactions? I mean, even if you have some sort of metadata attached to the transaction, this has to have a fixed length, otherwise cannot be allocated statically.
@tigerbeetledb
@tigerbeetledb Ай бұрын
Thanks for the great question. The static memory allocation happens in the foundational layer underneath the state machine, so it's orthogonal in fact to TB's choice of primitives (and specific structures). But yes, all structures at heart need to be some multiple of fixed size (e.g. you could do 64 bytes, 256 bytes, 512 bytes, 4 KiB page size etc. to accommodate variable length structures). However, this is no different to e.g. how languages like JavaScript in V8 do it (IIRC, variable strings are a minimum of 24 bytes).
@tenthlegionstudios1343
@tenthlegionstudios1343 2 ай бұрын
These are great - I have only had time to watch the first two. I am using more Rust in my free time, but want to get into zig. Overall I find the code simple, safe, intentional, and efficient! Which is my goal. Really appreciate this deep dive series!
@tigerbeetledb
@tigerbeetledb 2 ай бұрын
Thanks for the kind words! The rest of the videos will be there for when you have more free time! :)
@RonnieRedd
@RonnieRedd 2 ай бұрын
Thank you!
@SebastianSativaLivemore
@SebastianSativaLivemore 2 ай бұрын
The more I think about it, the more TigerBeetle and Redpanda seem like a perfect fit tbh
@Metruzanca
@Metruzanca 2 ай бұрын
Tigerbeetle just knows what good music for their talks is.
@Metruzanca
@Metruzanca 2 ай бұрын
NOW THIS IS HOW YOU MAKE A KILLER DEV TALK INTRO. Rockstar developers. Also I find it funny that it says "Iron Beetle" when thats image is a parody of Judas Priest.
@amidamarurookie
@amidamarurookie 2 ай бұрын
hey, does the src code still up-to-date? i saw the last commit was 2 months ago
@tigerbeetledb
@tigerbeetledb 2 ай бұрын
TigerBeetle is a bit of a moving target, so for this stream, I always look at that IronBeetle branch. I do update the branch periodically, just not for every stream, just to make sure that consequitve episodes look at the same code. Should probably sync with main before today's stream though...
@highpofly
@highpofly 2 ай бұрын
bottom line, always use rust
@pietraderdetective8953
@pietraderdetective8953 Ай бұрын
Bottom line: PoS rust cultist!
@cal3461
@cal3461 2 ай бұрын
I love how much Joran love to present this talk. - one of my favourite technical talks
@tenthlegionstudios1343
@tenthlegionstudios1343 2 ай бұрын
Great video! Really appreciate the walkthrough - I have been very interested in Zig. Through learning about zig, I became interested in tigerBeetle.
@fluffyunicorn7155
@fluffyunicorn7155 2 ай бұрын
He‘s got that smooth voice.
@nosh3019
@nosh3019 3 ай бұрын
Amazing! Great talk!
@aurelian891
@aurelian891 3 ай бұрын
Very infomative, thanks! Any chance we could get recordings with dark theme? Hard to watch at night.
@tigerbeetledb
@tigerbeetledb 3 ай бұрын
Tried to switch to the dark theme for episode 16!
@jaysistar2711
@jaysistar2711 3 ай бұрын
The intro track was a bit like "Ghost" by Robert Miles.
@JannisAdmek
@JannisAdmek 3 ай бұрын
One of the best tech talks I've seen in a while!
@josefpharma4714
@josefpharma4714 3 ай бұрын
Nice talk, thanks a lot. I can fully empathize your idea of using the same language for build orchestration as you are using for your code. Specially in your case, building clients for many different platforms as well. If this would still be a "fantastic idea" for "C/C++", debugging memory corruptions in the build script? Not sure 🙂.
@josefpharma4714
@josefpharma4714 3 ай бұрын
Tried it on my mac, the script failed "try shell.exec("go test", .{});" That's expected, as I don't have go installed, I guess 🙂 (Or the planned go installation did not work, but I could not see an error above)
@luqmansen
@luqmansen 3 ай бұрын
Great talk, thanks for the sharing! ❤
@simonmassey8850
@simonmassey8850 3 ай бұрын
22:52 The comment that “when your system is accessible, bugs are trivial” is a really thought-provoking comment. That is something that I have subconsciously known but never actually called out when writing unit tests and automated integration tests that use simulated data.
@timibolu
@timibolu 3 ай бұрын
Amazing. Really amazing
@vladzhukov6116
@vladzhukov6116 4 ай бұрын
Give Alex a good mic :)
@rallokkcaz
@rallokkcaz 4 ай бұрын
King is the king!
@rallokkcaz
@rallokkcaz 4 ай бұрын
Man I'd love to learn more about how it works under the hood, a deep dive would be great for somebody who's VERY interested in these topics... like me.
@tigerbeetledb
@tigerbeetledb 4 ай бұрын
If you want a deep dive, you might like kzbin.info/aero/PL9eL-xg48OM3pnVqFSRyBFleHtBBw-nmZ series, where we (slowly) are going through the entirety of TigerBeetle! Haven't made it to LSM layer yet though!
@mishamiskin9159
@mishamiskin9159 4 ай бұрын
Very interesting. Thanks!!
@asdfasdf34534
@asdfasdf34534 4 ай бұрын
starts 02:00