tilgovi / otree Goto Github PK
View Code? Open in Web Editor NEWThis project forked from antirez/otree
a simple btree implementation with automatic space reclaiming
License: BSD 3-Clause "New" or "Revised" License
This project forked from antirez/otree
a simple btree implementation with automatic space reclaiming
License: BSD 3-Clause "New" or "Revised" License
There are a number of btree (and variants) implementations around, but for many reasons like complexity and tight coupling with external code bases, or licensing issues, to find an easy to embed implementation of an on disk btree is not an easy task. Since an on disk btree is a tool useful in a number of software projects this library is an attempt to bring to the table an open implementation of a btree. The term "open" here means: simple to use, BSD licensed, well documented, and simple to modify and understand. CURRENT STATUS ============== Currently this is a work in progress, so far we have a subset of basic btree operations implemented on top of an on disk allocator (something like a file-based malloc). Supported operations are adding new keys, splitting of nodes. Deletion is not supported, nor update of old values. In other words the project is NOT usable so far, more work is needed. Currently everything is written on disk on every write for the sake of simplicity of the first implementation, but the work is in progress in order to cache the allocator metadata in memory, so that the performances can be enhanced. The goal is to eventually support all the following features: - A compromise between fast implementation and ability to incrementally reclaim memory from disk automatically. This is why we have the on disk allocator. - Range queries using 128 bit precision integers, to use the btree as index. - Good tools for recovering and checking the btree. - Good documentation. Perhaps in the future: - Optional append only mode with compaction, for higher corruption resistance. In the first stage of the project the goal is to be good enough for the Redis project (in order to use this library for the diskstore feature of Redis). However while trying to reach this goal every care will be used in order to retain a great level of generality of this lib that will continue to live as a stand alone library. Redis will just happen to use a copy of it.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.