<commit_before>Bloomd [![Build Status](https://travis-ci.org/armon/bloomd.png?branch=master)](https://travis-ci.org/armon/bloomd)
=========

Bloomd is a high-performance C server which is used
to expose bloom filters and operations over them to
networked clients. It uses a simple ASCI protocol
which is human readable, and similar to memcached.

Features
--------

* Scalable non-blocking core allows for many connected
  clients and concurrent operations
* Implements scalable bloom filters, allowing dynamic filter sizes
* Supports asynchronous flushes to disk for persistence
* Supports non-disk backed bloom filters for high I/O
* Automatically faults cold filters out of memory to save resources
* Dead simple to start and administer
* FAST, FAST, FAST

Install
-------

Download and build from source::

    $ git clone https://armon@github.com/armon/bloomd.git
    $ cd bloomd
    $ pip install SCons  # Uses the Scons build system, may not be necessary
    $ scons
    $ ./bloomd

This will generate some errors related to building the test code
as it depends on libcheck. To build the test code successfully,
do the following::

    $ cd deps/check-0.9.8/
    $ ./configure
    $ make
    # make install
    # ldconfig (necessary on some Linux distros)

Then re-build bloomd. At this point, the test code should build
successfully.

Usage
-----

Bloomd can be configured using a file which is in INI format.
Here is an example configuration file:

::

    # Settings for bloomd
    [bloomd]
    tcp_port = 8673
    udp_port = 8674
    data_dir = /mnt/bloomd
    log_level = INFO
    cold_interval = 3600
    flush_interval = 60<commit_msg>Adding links to CentOS/RHEL repo<commit_after>Bloomd [![Build Status](https://travis-ci.org/armon/bloomd.png?branch=master)](https://travis-ci.org/armon/bloomd)
=========

Bloomd is a high-performance C server which is used
to expose bloom filters and operations over them to
networked clients. It uses a simple ASCI protocol
which is human readable, and similar to memcached.

Features
--------

* Scalable non-blocking core allows for many connected
  clients and concurrent operations
* Implements scalable bloom filters, allowing dynamic filter sizes
* Supports asynchronous flushes to disk for persistence
* Supports non-disk backed bloom filters for high I/O
* Automatically faults cold filters out of memory to save resources
* Dead simple to start and administer
* FAST, FAST, FAST

Install
-------

Download and build from source::

    $ git clone https://armon@github.com/armon/bloomd.git
    $ cd bloomd
    $ pip install SCons  # Uses the Scons build system, may not be necessary
    $ scons
    $ ./bloomd

This will generate some errors related to building the test code
as it depends on libcheck. To build the test code successfully,
do the following::

    $ cd deps/check-0.9.8/
    $ ./configure
    $ make
    # make install
    # ldconfig (necessary on some Linux distros)

Then re-build bloomd. At this point, the test code should build
successfully.

For CentOS or RHEL users, the kind folks from Vortex RPM have made
a repo available with RPM's.

* Repo: http://vortex-rpm.org/
* Bloomd RPM spec: https://github.com/vortex-rpm/bloomd

Usage
-----

Bloomd can be configured using a file which is in INI format.
Here is an example configuration file:

::

    # Settings for bloomd
    [bloomd]
    tcp_port = 8673
    udp_port = 8674
    data_dir = /mnt/bloomd
    log_level = INFO
    cold_interval = 3600
    flush_interval = 60
{'fraction_non_alphanumeric': 0.08081096516276413, 'fraction_numerical': 0.009708737864077669, 'mean_word_length': 3.3678304239401498, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 7, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6009344', 'n_tokens_mistral': 1088, 'n_tokens_neox': 1018, 'n_words': 427}