TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

LearnDB: Learn how to build a database

269 pointsby niklabhover 6 years ago

9 comments

rodwover 6 years ago
For complicated reasons I was involved in a successful project to develop an open-source, Oracle-SQL-compatible, transactional-integrity-preserving, extensible database designed for in-memory performance in Java. In the process of this development &quot;suddenly&quot; the reasons for a whole bunch of performance and syntax oddities in databases like Oracle and PostgreSQL became very clear.<p>I was shocked to learn that was 15 years ago when I looked up the link to share, but if you are interested in the topic of &quot;how to implement a database&quot; it may be worth a look.<p>For what it is worth it was listed (not by me) on the C2 Wiki on the &quot;Programs to Read&quot; Page, where it was described as &quot;[A] database written in Java with good unit tests and ShortMethods.&quot; [1]<p>Both statements are true, for a complete working example of a production database (it supported a commercial product for at least 10 years) it is actually a pretty accessible and well documented code-base.<p>The project is called AxionDB and can be found at [2].<p>[1] <a href="http:&#x2F;&#x2F;wiki.c2.com&#x2F;?ProgramsToRead" rel="nofollow">http:&#x2F;&#x2F;wiki.c2.com&#x2F;?ProgramsToRead</a> [2] <a href="http:&#x2F;&#x2F;axion.tigris.org&#x2F;source&#x2F;browse&#x2F;axion&#x2F;" rel="nofollow">http:&#x2F;&#x2F;axion.tigris.org&#x2F;source&#x2F;browse&#x2F;axion&#x2F;</a>
评论 #18557940 未加载
评论 #18557849 未加载
评论 #18558180 未加载
评论 #18557947 未加载
评论 #18557857 未加载
Mr_Pover 6 years ago
How is this #2 on Hacker News? There&#x27;s literally nothing here about how to actually build a database (yet?)<p>Instead, there&#x27;s just a key-value store implemented on top of a javascript hashmap and a filesystem.
评论 #18557820 未加载
评论 #18558022 未加载
评论 #18582299 未加载
dymkover 6 years ago
Why would a pedagogical project choose JavaScript of all languages?<p>Unless the project <i>specifically</i> needed to leverage features of the language, or a web browser, it&#x27;s an incredibly poor choice for building anything with well maintained abstractions. Or anything at all ready, when the language is covered in warts.<p>I imagine the author hasn&#x27;t yet discovered for themselves why it&#x27;s a poor choice, given only a key-value store has been implemented (using JSON.stringify, no less)
评论 #18557994 未加载
评论 #18557887 未加载
评论 #18557951 未加载
dominotwover 6 years ago
I realized how little i knew about how databases work until I watched this lecture series. <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;channel&#x2F;UCHnBsf2rH-K7pn09rb3qvkA" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;channel&#x2F;UCHnBsf2rH-K7pn09rb3qvkA</a><p>Does anyone have DB internal book recommendation that inst&#x27; boring as hell.
评论 #18557718 未加载
评论 #18558323 未加载
评论 #18562342 未加载
评论 #18559888 未加载
评论 #18558877 未加载
hugofirthover 6 years ago
Not a lot of content yet, but building databases (even toys) is an incredibly interesting exercise which I encourage many more people to try out, so +1!<p>For anyone else who is interested in learning how to build a database, can I thoroughly recommend following along with Andy Pavlo&#x27;s Advanced Database Systems course from CMU[1]. Every lecture is accompanied by reading lists, notes, and assignments. Whats more, I find Andy&#x27;s style to be very easy to parse even on complex topics.<p>Even if you think you know a fair bit about this domain, you will likely learn a lot!<p>[1]<a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;playlist?list=PLSE8ODhjZXjYplQRUlrgQKwIAV3es0U6t" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;playlist?list=PLSE8ODhjZXjYplQRUlrgQ...</a>
alphabettsyover 6 years ago
Why the votes? There’s nothing there.
truth_seekerover 6 years ago
Since you are creating a new file for each entry, I think BTRFS would be a good choice.<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Btrfs" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Btrfs</a>
picturover 6 years ago
just vote for the title.. this place is really very funny..
theyoungwolfover 6 years ago
why the hell would you share this when its nowhere near done