Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gree/flare
distributed, and persistent key-value storage
https://github.com/gree/flare
Last synced: 3 days ago
JSON representation
distributed, and persistent key-value storage
- Host: GitHub
- URL: https://github.com/gree/flare
- Owner: gree
- License: gpl-2.0
- Created: 2008-10-10T17:06:30.000Z (about 16 years ago)
- Default Branch: master
- Last Pushed: 2024-02-27T08:15:57.000Z (10 months ago)
- Last Synced: 2024-12-25T00:06:49.849Z (10 days ago)
- Language: C++
- Homepage: https://github.com/gree/flare/wiki
- Size: 44.1 MB
- Stars: 171
- Watchers: 15
- Forks: 35
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog
- License: COPYING
- Authors: AUTHORS
Awesome Lists containing this project
README
# flare
flare is a distributed, and persistent key-value storage compatible with [memcached](http://memcached.org/), with several additional features (as follows):- persistent storage (you can use flare as persistent memcached)
- pluggable storage
- [Tokyo Cabinet](http://fallabs.com/tokyocabinet/)
- [Kyoto Cabinet](http://fallabs.com/kyotocabinet/) (experimental)
- data replication (synchronous or asynchronous)
- data partitioning (automatically partitioned according to the number of master servers (transparent for clients)
- dynamic reconstruction, and partitioning (you can dynamically (I mean, without any service interruption) add slave servers and partition master servers)
- node monitoring and failover (if any server is down, the server is automatically isolated from active servers and another slave server is promoted to master server)
- request proxy (you can always get same result regardless of servers you connect to, so you can think of a flare cluster as one big key-value storage)
- over 256 bytes keys, and over 1M bytes values are availableflare is free software base on [GNU GENERAL PUBLIC LICENSE Version 2](http://www.gnu.org/licenses/gpl-2.0.html).
## Supported Operating Systems
flare is mainly developed under following platforms:- Debian GNU/Linux (etch or later, both i386 and amd64)
- Mac OS X (Darwin 9.5.0, i386, amd64)
- FreeBSD
- other UNIX like OSs.## Dependent library
### Run-time
- [boost](http://www.boost.org/)
- [Tokyo Cabinet](http://fallabs.com/tokyocabinet/)
- [Kyoto Cabinet](http://fallabs.com/kyotocabinet/) (optional)
- zlib
- libhashkit
- uuid### Build-time
- [gcc](https://gcc.gnu.org/)
- autoconf
- automake
- libtool## Install from source code on Ubuntu 14.04 (Trusty Tahr)
### Installation of depending packages
First, install depending packages by `apt-get`.
```
$ sudo apt-get install \
git \
locales \
zlib1g-dev \
build-essential \
autoconf \
automake \
libtool \
libboost-all-dev \
libhashkit-dev \
libtokyocabinet-dev \
uuid-dev
```### Installation of flare
Download source code, and compile it.
```
$ git clone https://github.com/gree/flare.git
$ cd flare
$ ./autogen.sh
$ ./configure
$ make
$ make check
$ sudo make install
```
If you want to optional packages, you should run `./configure` with options.
**You can see available options by `./configure --help`.**#### For example (when use Kyoto Cabinet):
First, you must install `libkyotocabinet-dev` in addition to depending packages.
```
$ sudo apt-get install libkyotocabinet-dev
```
And run `./configure` with `--with-kyotocabinet` option.
```
$ ./configure --with-kyotocabinet=/usr/include
```## Install flare via Nix on Ubuntu or MacOS
We experimentally support development with nix package manager.
### Installation of flare
Just type following commands.
```
# Install nix package manager
$ curl -L https://nixos.org/nix/install | sh
# Install flare
$ nix profile install github:gree/flare
```### Development of flare via Nix
```
# Clone source code
$ git clone [email protected]:gree/flare.git# Enter a development environment of nix
$ nix develop# Build source codes
$ ./autogen.sh
$ ./configure
$ make
$ make test
```## Create configuration file
Copy default configuration files from `etc`, and modify it.
```
$ sudo cp etc/flarei.conf /etc/
$ sudo cp etc/flared.conf /etc/
```## Run
Now, you can run flare.
```
$ sudo /usr/local/bin/flarei -f /etc/flarei.conf --daemonize
$ sudo /usr/local/bin/flared -f /etc/flared.conf --daemonize
```