{"id":21100488,"url":"https://github.com/mikpe/btree","last_synced_at":"2025-05-16T17:30:29.329Z","repository":{"id":80989448,"uuid":"75856833","full_name":"mikpe/btree","owner":"mikpe","description":"B-tree storage of sets with configurable I/O, implemented in Erlang.","archived":false,"fork":false,"pushed_at":"2024-07-05T15:46:57.000Z","size":391,"stargazers_count":11,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-04T04:23:30.233Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Erlang","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mikpe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2016-12-07T16:53:56.000Z","updated_at":"2024-07-05T15:46:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"eaafb5a9-1d2b-4553-a634-8faf4615070e","html_url":"https://github.com/mikpe/btree","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikpe%2Fbtree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikpe%2Fbtree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikpe%2Fbtree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikpe%2Fbtree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mikpe","download_url":"https://codeload.github.com/mikpe/btree/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254576300,"owners_count":22094332,"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":"2024-11-19T23:13:15.693Z","updated_at":"2025-05-16T17:30:29.057Z","avatar_url":"https://github.com/mikpe.png","language":"Erlang","readme":"# btree\nB-tree storage of sets with configurable I/O.\n\nThis implements B-trees of any order \u003e= 2 in Erlang.\n\nI/O is handled by user-provided callbacks.\n\nOnly sets (keys without data) are supported.\n\n## Implementation notes\n\n- Initially based on [Wirth76].\n- Converted from Pascal to C, and then to Erlang.  The Erlang\n  version uses tuples in lieu of arrays.  Pages are of variable\n  not fixed size.\n- I/O of pages is made explicit.\n- Search is separated from insertion.  Search returns a stack of\n  pages and indices recording the path from the root to the key.\n  Insertion uses that stack to navigate the tree when rewriting it.\n- Deletion is tricky enough that the recursive structure of the\n  original code is kept as-is.  A local cache is used to avoid\n  redundant I/O.\n- Our use cases only want sets, so this does not associate\n  attributes with the keys.\n- Bulk-loading into an empty tree has been added.\n\n## References\n\n[BM72] R. Bayer and E. McCreight, \"Organization and Maintenance of\nLarge Ordered Indexes\", Acta Informatica, Vol. 1, Fasc. 3, pp. 173--189,\n1972.\n\n[Wirth76] Niklaus Wirth, \"Algorithms + Data Structures = Programs\",\nProgram 4.7, pp 252--257, Prentice-Hall, 1976.\n\n[Comer79] Douglas Comer, \"The Ubiquitous B-Tree\", Computing Surveys,\nVol. 11, No. 2, pp 121--137, ACM, June 1979.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikpe%2Fbtree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmikpe%2Fbtree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikpe%2Fbtree/lists"}