Hacker News new | past | comments | ask | show | jobs | submit login
Database Internals (databass.dev)
305 points by pointy_hat on Dec 14, 2019 | hide | past | favorite | 38 comments

This is a very good book! Recently, I am very happy with a number of more foundational data books from O’Reilly:

Designing Data-Intensive Applications https://dataintensive.net/

Streaming Systems http://shop.oreilly.com/product/0636920073994.do

and this one.

Both of those are fantastic, data intensive in particular I think is the best book I have ever read from O'Reilly. Glad to hear this one is as good.

If you wanted to build your own database (to learn how), is Database Internals the better book, or DDIA?

I'm currently writing a book for PragProg called Building Distributed Services with Go (though it mostly applies to other languages too) that's walks you through building a distributed database from scratch. You can sign up on this mailing list to know when it's available: https://travisjeffery.us4.list-manage.com/subscribe?u=1e3ff7...

Looking forward to it. Do you have any idea when this might become a Beta book on PragProg? Cheers.

Awesome. Hopefully within a month or two.

Do you have an experience or learning along writing? (also a legit/common way)

Yeah---each chapter begins with background on the chapter's topic, some theory, covers how and where you'd use what's we're talking about in the chapter and then we use it to build a part of the project we're building throughout the book. For example, in the consensus chapter we talk about what problems it solves and how you can use it in your projects,and then we implement Raft in the service for leader election and replication.

Awesome. Just signed up. Any ideas on what the pricing will be like?

Not sure, haven't gotten to that yet. Just from looking at the prices of other PragProg books somewhere around $21.95-24.95.

Is it still worth (materialistically) writing a book considering (see PRICING section) http://fabiensanglard.net/gebbdoom/ ?

I'm not doing it for the money. Writing a worthwhile book is about the least efficient way to make money.

Not sure about how least efficient though, indirectly it will help a lot I believe.

This one, it covers all the aspects deeper. The next book, if you want to go deeper, can be an upcoming 4th edition of Principles of Distributed Database Systems https://www.springer.com/gp/book/9783030262525

I've been reading this book for the last few days - it is way above what you expect these days for a technical book from a popular publisher in terms of its description of underlying data structures and algorithms. It's also easy to read. The depth of a text book with the approachability of a typical working programmer's book.

I also recommend following Andy Pavlo and the CMU Database Group which has lots of free courses, videos and material:



It suffers from the common issue for such content - theory/lectures are too diverged from the practical/lab part.

There's nothing stopping you from just writing code following the lectures. What else would a practical/lab part be? \

There are tons of open-source databases on github that you can hack on so I don't think there's a major issue with getting practical experience if you want it.

You can try the homework assignments. They aren't trivial and you'll probably learn a bunch more by not being spoon fed the answers. Admittedly, the only bummer is not having someone review your work.

The topical overview certainly sounds interesting, but sounds extremely similar to Designing Data Intensive Applications which also covers modern DB internals.

What’s the sell here?

There is some overlap, but they complement each other. This one (Database Internals) has much more of a technical deep dive on storage engines, especially B-tree implementation details.

If I was mentoring someone learning this stuff, I'd advise reading Designing Data Intensive Applications first, which is certainly the best for giving the big picture, and follow up with this one for more detail on certain topics.

Given the previous dearth of books on this important subject, I think it's wonderful that we have two.

The preface is also available in the preview. It goes in further detail about the scope of the book. There's also the table of contents.

I haven't seen the book you mentioned, so I can't comment on that.

Database Design and Implementation by Edward Sciore implements a fully working relational database from buffer manager up to parser and beyond. It's very much in the spirit of Tanenbaum's OS book.

Here's the landing page for the book's implementation: http://www.cs.bc.edu/~sciore/simpledb/intro.html

Unfortunately, I don't think the book is in print anymore.

I am reading this book for the past few days. Very well written!

Grey text on white background => almost unreadable on my screen and I don't usually have problems with low contrast.

Author here. Thanks for the heads up, it did look a bit bleak on the mobile. Increased the font size, made grey much more dark, and increased heading sizes. Hope it's easier to read now!

I don't know if I'm seeing the old version or the new version, but this is still very hard to read.

Advice to all web designers: Please do not use "font-weight: 300" for body text, ever. Simply changing that to 400 in the developer tools made it much more readable. The font was still bugging me, so I tried killing the "font-family: futura pt" too.

Wow! What a world of difference. Now it is super easy to read, instead of looking like it's trying to show off some design style.

Know your audience: you are addressing potential database developers with this book, not graphic designers.

Preferring one font over the other is more a question of taste, but I think you're right about font-weight: it does read better with 400. Thanks for the tip!

And thank you for being so responsive to feedback! It's much easier to read now.

I also want to apologize for my comment being a little grouchy; I should know better than to comment on style and readability in the wee hours. :-)

Sure thing! Appreciate that you've figured out what was wrong with that font, too.

In past few days I've heard so many praises and also I have heard so much criticism about Database Books in general.

What makes this book so much better?

It depends on your goal.

Database internals books are not worth reading if you want to work on implementing real world database engines. You are better off checking out internals and documentation of various implementations and also research papers in that field. And you would be doing your own research anyway.

But if you are just starting out in programming, it's probably as good book as any to learn something new and practical about algorithms and data structures.

I completely agree that it always depends on the goal. I'd also add a second vector: experience. If you've already worked with distributed and/or storage systems and have understanding of the field, you can jump straight to papers and code. However, for people who are just starting, it may be beneficial to read an overview book and get familiar with a field. This book attempts to be that a starting point that can help to navigate database papers and code.

Some of the folks I talked to who have already worked with databases a lot mentioned they've benefited from the book as well, since there were some concepts they were less familiar with or never had to learn (for example, transactional processing for the folks who have mostly worked with on eventually consistent databases; or B-Tree details for the folks who have mostly worked on LSM-Based storage engine)

Disclaimer: I'm author of this book.

Nice. This is the book I've been wishing someone wrote for a long time. Finally! Insta-buy.

Is this a full fee paid course for on campus students?

Because if it is, I would be miffed and feel short changed to be told to watch youtube lectures on my own time. I value face to face time and interactivity with my professor or lecturer. If this is a heavily discounted course due to the crippled way it is taught then I have no issue.

From the syllabus:

CS144 is taught using a combination of lectures and videos. In previous years, it was entirely “flipped”; i.e. all the lecture material was taught by videos. This year things are different and we are going to mix things up: Some weeks, including the first week, will be based on recorded videos that you are required to watch in your own time. We will call these Video Weeks. Other weeks, including the second week, are based entirely on in-class lectures, and you don’t need to watch any videos. We will call these Lecture-only Weeks. So why mix things up? We are teaching this way because we have found that some of the material (e.g. the basic principles you learn in week 1) are most efficiently learned by watching videos - the concepts are fairly simple and the material is descriptive; a video is a more efficient use of your time. Other material, such as when you learn about congestion control in week 4, is best learned in person, interactively in a lecture.

The fee you pay for college courses is for the piece of paper saying you passed the course.

Those that don't need the piece of paper can learn for free. Who can complain about that!

Ostensibly. Some may want the paper and an actual learning experience that isn't virtualised. I must be asking for too much.

I also might not understand the purpose of the video lectures. If they supplant face to face time but get rid of the tedium, then I would say it should also accompany course/lecture notes, reading texts, and/or supplemental documents.

I just think forcing people to watch youtube videos is a much lower quality experience for a student. If it's a required course I'd want a refund for being forced into a lazy teaching format.

Did you post this on wrong thread or you didn't care to open the posted link?

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact