{"id":23238770,"url":"https://github.com/satyammittal/database-bplus-tree","last_synced_at":"2026-05-03T22:32:14.249Z","repository":{"id":129236107,"uuid":"126686467","full_name":"satyammittal/Database-Bplus-Tree","owner":"satyammittal","description":"Database Bplus Tree","archived":false,"fork":false,"pushed_at":"2018-03-29T18:30:21.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-06T00:51:42.478Z","etag":null,"topics":["b-tree","database"],"latest_commit_sha":null,"homepage":null,"language":"Java","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/satyammittal.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":"2018-03-25T10:30:09.000Z","updated_at":"2018-09-28T12:30:10.000Z","dependencies_parsed_at":"2023-04-19T04:57:40.424Z","dependency_job_id":null,"html_url":"https://github.com/satyammittal/Database-Bplus-Tree","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/satyammittal/Database-Bplus-Tree","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satyammittal%2FDatabase-Bplus-Tree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satyammittal%2FDatabase-Bplus-Tree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satyammittal%2FDatabase-Bplus-Tree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satyammittal%2FDatabase-Bplus-Tree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/satyammittal","download_url":"https://codeload.github.com/satyammittal/Database-Bplus-Tree/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satyammittal%2FDatabase-Bplus-Tree/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32587816,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"ssl_error","status_checked_at":"2026-05-03T22:09:10.534Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["b-tree","database"],"created_at":"2024-12-19T04:19:28.692Z","updated_at":"2026-05-03T22:32:14.234Z","avatar_url":"https://github.com/satyammittal.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Database - B+ Tree implementation\n=================================\n\nBackground\n------------\nA B+ tree is balanced tree structure in which the index nodes direct the search and the leaf nodes contain the data entry.\n\nAssignment was to implement the following functions as well as a description of the implementation:\n\nSearch\n-------\nGiven a key, return the associated String value.\n\nThis was implemented recursively to find the leaf node containing the number. \nThen a scan through the leaf node was used to find the key. \nA better implementation would be to use binary search, since the keys are sorted.\n\nInsert\n-------\nGive a key/value pair, insert it into the right leaf node, without violating the B+ tree constraints noted above. \nIn insertion, there are three distinct cases to think about:\n2.2\n* the target node has available space for one more key. (done)\n* the target node is full, but its parent has space for one more key. (leaf overflow)\n* the target node and its parent are both full. (leaf overflow and index node overflow)\n\nThis followed a recursive insert. If an insert causes an overflow, the median key is propagated up to the parent where an insert is attempted. \nIf this causes an overflow, it will continue to propagate up. It may reach the root in which case a split of the root is necessary. \n\nDelete\n-------\nGiven a key, delete the corresponding key/value pair without violating the B+ tree constraints noted above. This is a mirror image of the insertion.\nThere are also three main cases to think about (after deletion):\n* the target node is not underflowed (at least half full). (done)\n* the target node is underflowed and node.keys.size()+sibling.keys.size() \u003c 2*D, merge them.\n* the target node is underflowed and not able to be merged, try redistributing with its siblings.\n\nIn deletion, we introduce the concept of siblings. The sibling of a node N is a node that is immediately to the left or right of N and has the same parent as N. In this project, we look for the left sibling of N first. If N does not have a left sibling, then we use its right sibling.\n\nDelete was implemented recursively whereby a delete may cause an underflow. Redistribution is tried first.\nIf redistribution would leave any node underflowed, a merge is required. This can potentially underflow parent nodes. \nThus, the underflow is recursively handled. Root underflow is acceptable. If the root becomes empty, the root is reassigned. \n# Database-Bplus-Tree\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatyammittal%2Fdatabase-bplus-tree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsatyammittal%2Fdatabase-bplus-tree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatyammittal%2Fdatabase-bplus-tree/lists"}