-
Notifications
You must be signed in to change notification settings - Fork 35
Home
This document is old, so please read README.md or USAGE.md.
EN / JP
Flare is a distributed, and persistent key-value storage compatible with memcached, with several additional features (as follows):
- persistent storage (you can use flare as persistent memcached)
- pluggable storage
- Tokyo Cabinet
- Kyoto Cabinet (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 available
Flare is free software base on GNU GENERAL PUBLIC LICENSE Version 2.
- Download (latest version: 1.1.0)
- Source Code Repository (github)
- Documents
released 1.3.1
1.3.1
- feature updates
- Add "node_map_version" parameter to "stats"
released 1.3.0
1.3.0
-
feature updates
- Forward read queries also according to the cluster-replication-mode
-
bug fixes
- Fix time_watcher performance
released 1.2.1
1.2.1
-
feature updates
- Add bwlimit to op_dump_key
-
bug fixes
- Fix time_watcher options
- Fix to build with clang
- Fix op_set binary parser to enable behavior_cas flag
released 1.2.0
1.2.0
-
feature updates
- Added storage access time watching feature
- Replication over cluster
-
bug fixes
- Avoid to close the already closed socket.
- Fix bwlimit when creating new partition
- Fix initial value of epoll socket
- Fix pthread_cond_wait() in zookeeper_lock::_assure_session_connected()
- Fix resource leak of server socket
- Fix some initialization
- Fix the race condition in thread class
- Fix zookeeper_lock::_assure_session_connected()
- Fixed socket condition add_epoll_socket and add_kqueue_socket
- Modified include guards to fit them to the C++ standard naming convention.
- Skip proxy when destination node is down
-
others
- Support TravisCI
released 1.1.1
1.1.1
- bug fixes
- Avoid to close the already closed socket
- Skip proxy request when destination node is down
- Fix the resource leaks of socket in server
- Fix some compile warnings
- Fix some race conditions in thread.cc
- Check dynamic_cast result
- Fix pthread_cond_wait() in zookeeper_lock::_assure_session_connected()
- Add initialization of cluster#node
- Remove some deadcode
- Add null check before the code with the potential null access
- Exit when IO-buffer is unsafe
- Fix memory leak of proxy in op_parser_text
released 1.1.0
1.1.0
-
feature updates
- Redundant index servers
- Add coordinator classes to store and restore the state of the index server
- Add coordinator class for handling the state of the index server
- Move the code for storing and restoring flare.xml from cluster to file_coordinator
- Add zookeeper_coordinator class to store flare.xml into a zookeeper cluster
- Add --index-db option to flarei to specify a database for storing flare.xml
- Add --index-servers option to flared to specify multiple index servers
- Add connect_retry_limit parameter to connection_tcp to avoid retrying too much in open()
- Improved statistics information
- Automatically node down when storage error happens
-
bug fixes
- Modified include guards to fit them to the C++ standard naming convention.
- Remove unnecessary null check and avoid double free
released 1.0.18.1
1.0.18.1
-
feature updates
-
Allow combination of reconstruct-interval and reconstruct-bwlimit
-
bug fixes
-
Fix a crash when a log message contains a format string
-
Fixed invalid input of set command and added test cases
-
Safety dump operation
released 1.0.18
1.0.18
-
feature updates
-
Skip memory tests with valgrind < 3.8
-
Do not build tests when packaging
-
Switched from simple/adler32 to jenkins/murmur
-
Unified packaging for debian and ubuntu
-
Made core dump file size limit configurable
-
bug fixes
-
Fix for deletion replication bug
-
Fixed CAS behavior when using defered deletion
-
Fixed compilation warning
-
Skip version checks on expired and removed items
-
Added version checks to storage tests
-
Ignore version on touch commands
-
Always store the last version number on deletion
-
Fixed build on Ubuntu
-
Monitor failover fix
-
Fix handler_monitor to avoid deadlock caused by simultaneous node down events
-
Fixes for Ubuntu Saucy Salamander (13.10)
-
Ignore new test-driver script
-
Fixed erroneous memory leak report
released 1.0.17.1
1.0.17.1
- feature updates
- flarei: sanity check the thread_type value in flare.xml
- bug fixes
- fixed a duplicate thread id issue
released 1.0.17
1.0.17
- Feature updates:
- added support for Kyoto cabinet
- binary protocol implementation and input tests
- touch/gat implementation
- migration from gethostbyname to getaddrinfo
- integrated valgrind memory tests
- added over 2000 unit tests
- Bug fixes:
- various fixes under BSD
- append does not reset the stored flag anymore
- fixes for input validation
released 1.0.16.1
1.0.16.1
- Bug Fix
- fixed a rare race condition which could lead a replication process to end prematurely.
released 1.0.16
1.0.16
- Feature Updates
- add --noreply-window-limit (default=0) for high latency network
- Bug Fixes
- fix connection::readline() to check the last character of a read buffer
- fix thread safety of utility functions
- fix reconstruction-bwlimit option
1.0.15
- Feature Updates
- added --key-hash-algorithm option (default=simple) -- (only applicable for new or single-partition clusters)
- Bug Fixes
- fix wrong post proxy destination during dynamic patition creation
- fix unintentional thread triggering
1.0.14
- Feature Updates
- added 'stats threads queue' op
- added 'shutdown' op (for graceful shutdown)
- added --max-total-thread-queue option (default=0 (unlimited))
- added --proxy-prior-netmask option
- added --storage-dfunit (support for dynamic defragmentation)
- Bug Fixes
- fix double unlock (which causes dead lock)
- fix dump error handling (tc iteration returns error in some rare cases)
1.0.13
- Feature Updates
- added 'show variables' op
- added reconstruction-bwlimit option (node server only, in KB)
- Bug Fixes
- set default values to keep compatibility w/ older index servers
- fix bug of replication inconsistency
- fix possible memory leaks
- fix possible node map corruption, happens when non-existent nodes are passed to remove_node()
- fix segfault (cased by multi get w/ same keys (like "get key1 key1 key1"), w/ concurrent expiration)
released 1.0.12
- Bug Fixes
- fix replication bug (esp.important when reconstructing nodes)
- fix error handling in "keys" op
released 1.0.11
- Feature Updates
- added --partition-size option (default=1024)
- added --partition-modular-virtual option (default=4096)
- Bug Fixes
- fix possible dead locks (could happen when activating new master node under heavy load)
- suppress bogus master reconstruction, happens when slave is promoted to master