{"id":25083750,"url":"https://github.com/codeharik/database","last_synced_at":"2026-05-15T22:02:07.217Z","repository":{"id":274079449,"uuid":"921618289","full_name":"CodeHariK/Database","owner":"CodeHariK","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-25T09:25:26.000Z","size":989,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-25T10:30:43.224Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CodeHariK.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-24T09:39:59.000Z","updated_at":"2025-03-25T09:25:29.000Z","dependencies_parsed_at":"2025-01-24T19:24:10.190Z","dependency_job_id":"55f7f78b-babf-4574-81d6-c2ad69ec800e","html_url":"https://github.com/CodeHariK/Database","commit_stats":null,"previous_names":["codeharik/database"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeHariK%2FDatabase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeHariK%2FDatabase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeHariK%2FDatabase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeHariK%2FDatabase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodeHariK","download_url":"https://codeload.github.com/CodeHariK/Database/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246634618,"owners_count":20809276,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-07T06:29:05.543Z","updated_at":"2025-10-16T21:40:18.429Z","avatar_url":"https://github.com/CodeHariK.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Secretary Bird](https://img.youtube.com/vi/difrBNjGwLo/maxresdefault.jpg)](https://www.youtube.com/watch?v=difrBNjGwLo)\n\n![Strategy](./secretary/docs/secretary.excalidraw.svg)\n\n#\n\n* [#08 - Tree Indexes: B+Trees (CMU Intro to Database Systems)](https://www.youtube.com/watch?v=scUtG_6M_lU)\n* [SQLite: How it works](https://www.youtube.com/watch?v=ZSKLA81tBis)\n* [Write a database from scratch](https://www.youtube.com/playlist?list=PLWRwj01AnyEtjaw-ZnnAQWnVYPZF5WayV)\n\n* [Understanding B-Trees: The Data Structure Behind Modern Databases](https://www.youtube.com/watch?v=K1a2Bk8NrYQ)\n\n* [Build a NoSQL Database From Scratch in 1000 Lines of Code](https://medium.com/better-programming/build-a-nosql-database-from-the-scratch-in-1000-lines-of-code-8ed1c15ed924)\n* [Writing a SQL database from scratch in Go: 1. SELECT, INSERT, CREATE and a REPL](https://notes.eatonphil.com/database-basics.html)\n\n* [Database Engine Development](https://www.youtube.com/playlist?list=PLm7R-cUo29CXVu9a9TzBEwSQ9JPVGmISg)\n\n* https://github.com/cmu-db/bustub\n\n##\n\n```\n1. Persistence. How not to lose or corrupt your data. Recovering from a crash.\n2. Indexing. Efficiently querying and manipulating your data. (B-tree).\n3. Concurrency. How to handle multiple (large number of ) clients. And transactions.\n```\n\n## Vector Db\n\n* https://github.com/skyzh/write-you-a-vector-db\n\n## Search\n\n* [The Art of Searching](https://www.youtube.com/watch?v=yst6VQ7Lwpo)\n* [Algorithms \u0026 data-structures that power Lucene \u0026 ElasticSearch](https://www.youtube.com/watch?v=eQ-rXP-D80U)\n\n* [How do Spell Checkers work? Levenshtein Edit Distance](https://www.youtube.com/watch?v=Cu7Tl7FGigQ)\n* [The Algorithm Behind Spell Checkers](https://www.youtube.com/watch?v=d-Eq6x1yssU)\n\n## Data Structure\n\n* [Heaps, heapsort, and priority queues - Inside code](https://www.youtube.com/watch?v=pLIajuc31qk)\n* [Trie data structure - Inside code](https://www.youtube.com/watch?v=qA8l8TAMyig)\n* [Compressed trie](https://www.youtube.com/watch?v=qakGXuOW1S8)\n\n## Probablistic Data structures\n\n* [Hello Interview : Bloom Filters, Count-Min Sketch, HyperLogLog](https://www.youtube.com/watch?v=IgyU0iFIoqM)\n\n* [Probablistic data structure lectures](https://www.youtube.com/playlist?list=PL2mpR0RYFQsAR5RyB54FyEE9vUiGtCSZM)\n\n### Bloom filter \n\n* [Wikipedia](https://en.wikipedia.org/wiki/Bloom_filter)\n* [mCoding : Bloom Filters](https://www.youtube.com/watch?v=qZNJTh2NEiU)\n* [Number0 : Bloom Filters](https://www.youtube.com/watch?v=eCUm4U3WDpM)\n* [ByteByteGo : Bloom Filters](https://www.youtube.com/watch?v=V3pzxngeLqw)\n* [Spanning Tree : What Are Bloom Filters?](https://www.youtube.com/watch?v=kfFacplFY4Y)\n* [ByteMonk : Bloom Filters](https://www.youtube.com/watch?v=GT0En1dGntY)\n\nBloom filter is a space-efficient probabilistic data structure, that is used to test whether an element is a member of a set. False positive matches are possible, but false negatives are not - in other words, a query returns either \"possibly in set\" or \"definitely not in set\". Elements can be added to the set, but not removed.\n\nA Bloom filter is a representation of a set of _n_ items, where the main requirement is to make membership queries; _i.e._, whether an item is a member of a set.\n\n#### Uses\n##### Cache filtering\nContent delivery networks deploy web caches around the world to cache and serve web content to users with greater performance and reliability. A key application of Bloom filters is their use in efficiently determining which web objects to store in these web caches. To prevent caching one-hit-wonders, a Bloom filter is used to keep track of all URLs that are accessed by users.\n##### Web Crawler\n\n### HyperLogLog\n\n* [Wikipedia](https://en.wikipedia.org/wiki/HyperLogLog)\n* [PapersWeLove : HyperLogLog](https://www.youtube.com/watch?v=y3fTaxA8PkU)\n* [The Algorithm with the Best Name - HyperLogLog Explained](https://www.youtube.com/watch?v=2PlrMCiUN_s)\n* [A problem so hard even Google relies on Random Chance](https://www.youtube.com/watch?v=lJYufx0bfpw)\n* [Counting BILLIONS with Just Kilobytes](https://www.youtube.com/watch?v=f69hh3KgFEk)\n* https://github.com/tylertreat/BoomFilters/blob/master/hyperloglog.go\n\nHyperLogLog is an algorithm for the count-distinct problem, Probabilistic cardinality estimators.\n\n### Count–min sketch\n\n* [Wikepedia](https://en.wikipedia.org/wiki/Count%E2%80%93min_sketch)\n* https://github.com/tylertreat/BoomFilters/blob/master/countmin.go\n* [Count-min Sketch](https://www.youtube.com/watch?v=Okdjn7o4q8E)\n\nThe goal of the basic version of the count–min sketch is to consume a stream of events, one at a time, and count the frequency of the different types of events in the stream.\n\n### HeavyKeeper TopK\n\n* [Understanding Probabilistic Data Structures](https://www.youtube.com/watch?v=2Dzc7fxA0us)\n\n### TDigest\n\n* [Sketching Data with T Digest](https://www.youtube.com/watch?v=ETUYhEZRtWE)\n\n## Cache\n\n* [TinyLFU: A Highly Efficient Cache Admission Policy](https://dgraph.io/blog/refs/TinyLFU%20-%20A%20Highly%20Efficient%20Cache%20Admission%20Policy.pdf)\n\n* [Caffeine Design of a Modern Cache](https://docs.google.com/presentation/d/1NlDxyXsUG1qlVHMl4vsUUBQfAJ2c2NsFPNPr2qymIBs/edit#slide=id.p)\n* [Design of a Modern Cache](https://highscalability.com/design-of-a-modern-cache/)\n* [The State of Caching in Go](https://dgraph.io/blog/post/caching-in-go/)\n* [Introducing Ristretto: A High-Performance Go Cache](https://dgraph.io/blog/post/introducing-ristretto-high-perf-go-cache/)\n* [On Window TinyLFU](https://9vx.org/post/on-window-tinylfu/)\n\n* https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU\n\n* https://github.com/hypermodeinc/ristretto\n* https://github.com/dgryski/go-tinylfu\n\n## LSM-Tree\n\n[#04 - Database Storage: Log-Structured Merge Trees \u0026 Tuples (CMU Intro to Database Systems)](https://www.youtube.com/watch?v=IHtVWGhG0Xg\u0026t=1372s)\n\nhttps://github.com/facebook/rocksdb/wiki\n\nhttps://github.com/krasun/lsmtree\nhttps://github.com/skyzh/mini-lsm\n\n## OLAP\n\n* https://github.com/risinglightdb/risinglight\n\n## Concurrency\n\n* [Golang concurrency - Locks, Lock Free and everything in between](https://www.youtube.com/watch?v=gNQ6j2Y2HFs)\n* [Optimistic Locking clearly explained](https://www.youtube.com/watch?v=d41JuPT_Wls)\n* [Understanding the Disruptor](https://www.youtube.com/watch?v=DCdGlxBbKU4)\n\n* https://en.wikipedia.org/wiki/Actor_model\n\n* The Art of Multiprocessor Programming\n* Seven Concurrency Models in Seven Weeks\n\n* https://proto.actor/docs/\n\n* [The Actor Model](https://www.youtube.com/watch?v=7erJ1DV_Tlo)\n* [A brief introduction to the actor model \u0026 distributed actors](https://www.youtube.com/watch?v=YTQeJegJnbo)\n* [Introduction to the Actor Model for Concurrent Computation](https://www.youtube.com/watch?v=lPTqcecwkJg)\n\n* https://github.com/vladopajic/go-actor\n\n* https://www.brianstorti.com/the-actor-model/\n\n* [Code : Ring Buffer](https://www.youtube.com/watch?v=KyreJSKEagg)\n* https://kmdreko.github.io/posts/20191003/a-simple-lock-free-ring-buffer/\n\n* [Producer/Consumer, The RingBuffer and The Log](https://www.youtube.com/watch?v=uqSeuGQhnf0)\n\n* [Disruptor](https://lmax-exchange.github.io/disruptor/files/Disruptor-1.0.pdf)\n* https://github.com/LMAX-Exchange/disruptor/wiki/Blogs-And-Articles\n\n* https://github.com/smarty-prototypes/go-disruptor\n\n## Compress\n\n* [Data Encodings used by Columnar and Time series databases](https://www.youtube.com/watch?v=wUO2snhiosk)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeharik%2Fdatabase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodeharik%2Fdatabase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeharik%2Fdatabase/lists"}