{"id":13830977,"url":"https://github.com/UncP/Mushroom","last_synced_at":"2025-07-09T13:30:59.745Z","repository":{"id":46985854,"uuid":"69879661","full_name":"UncP/Mushroom","owner":"UncP","description":"Distributed In-Memory Index 分布式内存索引","archived":true,"fork":false,"pushed_at":"2018-11-23T03:10:23.000Z","size":1173,"stargazers_count":329,"open_issues_count":0,"forks_count":47,"subscribers_count":26,"default_branch":"master","last_synced_at":"2025-06-16T21:56:23.606Z","etag":null,"topics":["b-link-tree","palm-tree","raft","rpc","tcp-library"],"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/UncP.png","metadata":{"files":{"readme":"README.en.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":"2016-10-03T14:38:54.000Z","updated_at":"2025-04-03T02:20:41.000Z","dependencies_parsed_at":"2022-09-07T17:22:42.821Z","dependency_job_id":null,"html_url":"https://github.com/UncP/Mushroom","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/UncP/Mushroom","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UncP%2FMushroom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UncP%2FMushroom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UncP%2FMushroom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UncP%2FMushroom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UncP","download_url":"https://codeload.github.com/UncP/Mushroom/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UncP%2FMushroom/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264467925,"owners_count":23612999,"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":["b-link-tree","palm-tree","raft","rpc","tcp-library"],"created_at":"2024-08-04T10:01:14.334Z","updated_at":"2025-07-09T13:30:59.301Z","avatar_url":"https://github.com/UncP.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"### this repo is not updated any more，please go to [aili](https://github.com/UncP/aili)\n***\n\n## Mushroom: Distributed In-Memory Index\n[中文版 README](./README.md)\n\n[![Author](https://img.shields.io/badge/Author-UncP-brightgreen.svg)](./LICENSE)\n[![Version](https://img.shields.io/badge/Version-1.2.2-blue.svg)]()\n[![Build](https://img.shields.io/badge/Build-Passing-brightgreen.svg)](https://travis-ci.org/UncP/Mushroom)\n[![License](https://img.shields.io/badge/License-BSD-red.svg)](./LICENSE)\n\n#### Mushroom is a Linux light-weight distributed in-memory index written in C++11, consists of concurrent B\u003csup\u003elink\u003c/sup\u003e tree, TCP communication library, RPC framework and Raft consensus algorithm.\n\n### Behold, the power of Mushroom!\n\n### Try Mushroom\n`first run gen_test_data.sh to generate test data, then enter src directory`\u003cbr\u003e\n`./run index 100, test distributed index on single machine，100 represents index number(raft is not well optimized, please limit number to 1-1000)`\u003cbr\u003e\n`./run blink thread 100, test multi-thread b link tree, number can be 1 to 10 million`\u003cbr\u003e\n`./run blink queue 100, test multi-thread b link tree, number can be 1 to 10 million`\u003cbr\u003e\n`./run art 100, test adaptive radix tree, number can be 1 to 10 million`\u003cbr\u003e\n\n\n### Version Information\n| Version |       Improvements       |\n|:------:|:--------------------------:|\n| 0.1.0  | |\n| 0.2.0  |   two-phase lock based concurrent index   |\n| 0.2.1  |         latch manager optimization         |\n| 0.3.0  | implement  prefix compaction, reducing B\u003csup\u003elink\u003c/sup\u003e tree memory about 9.1 % |\n| 0.4.0  |  implement **Mapping Queue**, reducing total program memory up to 50 %|\n| 0.4.1  | merge latch manager and page manager，reduce 1 lock per operation |\n| 0.4.2  |            change the way B link tree root split |\n| 0.4.3  |  new test strategy, threads conduct operations without going through the queue |\n| 0.4.4  |               latch manager refactoring     |\n| 0.5.0  | fix **BUG**(atomic operation bug) that exists from 0.4.1 to 0.4.4 |\n| 0.6.0  | multi-process supported, fix B\u003csup\u003elink\u003c/sup\u003e tree search **bug**|\n| 0.6.1  | two-phase hashing page manager, implement lazy page allocation|\n| 0.6.2  | reduce dependency on standard library, speed up compile, reduce program size about 42.1%|\n| 0.6.4  |using posix spin lock, Optimize MushroomDB and BLinkTree structure|\n| 0.7.0  |      Log-Structured Merge Tree    |\n| 0.8.0  |   TCP Communication Library \u0026 RPC Framework    |\n| 0.9.0  |        Raft       |\n| 0.9.1  |   ACID (batch operation) \u0026 modify locking strategy   |\n| 0.9.2  |   optimize Raft state transfer, improve liveness   |\n| 1.0.0  |     distributed in-memory index   |\n| 1.1.0  |    B\u003csup\u003elink\u003c/sup\u003e tree node occupies 2/3 of node's space, originally 1/2, reducing memory use about 12% |\n| 1.1.1  |     optimize raft memory use   |\n| 1.2.0  |     Adaptive Radix Tree    |\n| 1.2.1  |  remove latch manager, each page has its own latch, improve performance by 10%   |\n| 1.2.2  |  introducing bloom filter for write/read optimization  |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FUncP%2FMushroom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FUncP%2FMushroom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FUncP%2FMushroom/lists"}