{"id":16617518,"url":"https://github.com/srijanshetty/bplustree","last_synced_at":"2025-08-28T16:54:48.732Z","repository":{"id":27028676,"uuid":"30493414","full_name":"srijanshetty/BPlusTree","owner":"srijanshetty","description":"A C++ implementation of B+ Tree","archived":false,"fork":false,"pushed_at":"2015-03-26T08:22:44.000Z","size":25895,"stargazers_count":13,"open_issues_count":0,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-02T04:41:09.648Z","etag":null,"topics":["btree","cpp","databases","storage"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/srijanshetty.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}},"created_at":"2015-02-08T14:26:59.000Z","updated_at":"2022-08-01T10:08:49.000Z","dependencies_parsed_at":"2022-08-03T06:30:36.746Z","dependency_job_id":null,"html_url":"https://github.com/srijanshetty/BPlusTree","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srijanshetty%2FBPlusTree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srijanshetty%2FBPlusTree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srijanshetty%2FBPlusTree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srijanshetty%2FBPlusTree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/srijanshetty","download_url":"https://codeload.github.com/srijanshetty/BPlusTree/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238882331,"owners_count":19546489,"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":["btree","cpp","databases","storage"],"created_at":"2024-10-12T02:16:58.185Z","updated_at":"2025-02-14T17:31:48.406Z","avatar_url":"https://github.com/srijanshetty.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# B+ Tree\n\n## Results\n- The computed time is in microseconds.\n\n### Page Size : 2048kB\n\nQUERY | MAX     | MIN | AVG     | STD\n0     | 4177465 | 95  | 208859  | 20874.2\n1     | 389     | 57  | 817.42  | 75.042\n2     | 534     | 58  | 1047.53 | 95.453\n3     | 1025    | 71  | 1856.51 | 170.451\n4     | 1078    | 60  | 1898.71 | 173.971\n\n## Observations\n\n### Insertion vs Other Queries\n- The maximum time taken by an insertion is huge compared to the maximum times\nof other operations. An insertion can start a chain of insertions when a child\ndelegates an insertion to its parent, there by accounting for the large maximum.\n\n### Huge Standard Deviation in Insertions\n- The huge standard deviation in insertions is accounted by the fact that not\nall insertions will cascade into parent insertions.\n\n### Point Queries\n- Point Queries take the least amount of time because they only need a single\npass through the tree.\n\n### Range Queries vs Other Queries\n- Due to the query bias - range queries had a very small radius, the times reported\nfor range queries seem to be very small. This shouldn't be the case as internally\nrangeQuery calls windowQuery.\n\n### Effectiveness of B+Tree\n- One of the most important things to note is the time taken by all these queries is\nvery small for a disk based structure which shows the effectiveness of B+Tree and the\nrationale for using it in Databases.\n\n## INSTALL\n\n- To build a new tree you can run:\n\n```shell\n$ make build\n```\n\n- To build the tree which was computed in the first run:\n\n```shell\n$ make restore\n```\n\n- To time the program the configuration is as follows:\n\n```c++\n// #define OUTPUT\n#define TIME\n```\n\n- To just get the output, the configuration is as follows:\n\n```c++\n#define OUTPUT\n// #define TIME\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsrijanshetty%2Fbplustree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsrijanshetty%2Fbplustree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsrijanshetty%2Fbplustree/lists"}