{ "info": { "author": "Yassine Lamgarchal", "author_email": "lamgarchal.yassine@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Topic :: System :: Distributed Computing" ], "description": "Chillaxd\n========\n\n.. image:: https://api.travis-ci.org/ylamgarchal/chillaxd.png\n :target: https://api.travis-ci.org/ylamgarchal/chillaxd\n\nChillaxd is a Python distributed coordination framework based on ZeroMQ and RAFT consensus algorithm.\n\nFor more details on RAFT, you can read `In Search of an Understandable Consensus Algorithm `_ by Diego Ongaro and John Ousterhout, Stanford University.\n\nStatus and priority of the implementation\n-----------------------------------------\n\n* Leader election [DONE]\n* In memory log replication [DONE]\n* Client interactions with the state machine [IN PROGRESS]\n* Log persistence [TODO]\n* Log compaction [TODO]\n* Cluster membership changes [TODO]\n\n\nInstall dependencies\n--------------------\n\n $ sudo apt-get install python-pip python-dev python3.4-dev -y\n\nInstall Chillaxd from Pypi\n--------------------------\n\n $ pip install chillaxd\n\nInstall Chillaxd from source\n----------------------------\n\n $ git clone https://github.com/ylamgarchal/chillaxd.git\n\n $ cd chillaxd\n\n $ sudo python setup.py install\n\n\nRunning tests\n-------------\n\n $ cd chillaxd\n\n $ tox\n\n\nRunning three node cluster on the same machine\n----------------------------------------------\n\nFirst, open four consoles, the three first console will print the servers logs\nwhile the fourth is used to run client commands.\n\n\n $ chillaxd --config-file ./chillaxd_1.conf\n\n 2014-12-28 18:44:19,252 :: INFO :: let's chillax on '127.0.0.1:27001'...\n\n\n\n $ chillaxd --config-file ./chillaxd_2.conf\n\n 2014-12-28 18:44:19,252 :: INFO :: let's chillax on '127.0.0.1:27002'...\n\n\n\n $ chillaxd --config-file ./chillaxd_3.conf\n\n 2014-12-28 18:44:19,252 :: INFO :: let's chillax on '127.0.0.1:27003'...\n\n\nNow the cluster is up and running. The logs indicates which one is the current\nleader. Let's try to send some commands.\n\nFor instance if the current leader is the one listening on port 27001.\n\n**WARNING: for now, it's a minimalist client for demonstrating the replication mechanism.**\n\n\n $ export CHILLAXD_SERVER=127.0.0.1:27001\n\n $ chillax create_node /node_1 data_1\n \n ACK command 'c154482f-1ba7-4d0c-b8a4-b54d3807e2a2'\n\n\nWe created a node on the root \"/\" named \"node_1\" associated to the data \"data_1\", we\ncan then verify that this commands is replicated on each server.\n\n\n $ export CHILLAXD_SERVER=127.0.0.1:27001\n\n $ chillax 127.0.0.1:27001 get_children /\n \n ['node_1']\n\n $ export CHILLAXD_SERVER=127.0.0.1:27002\n\n $ chillax 127.0.0.1:27002 get_children /\n \n ['node_1']\n\n $ export CHILLAXD_SERVER=127.0.0.1:27003\n\n $ chillax 127.0.0.1:27003 get_children /\n \n ['node_1']", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ylamgarchal/chillaxd", "keywords": null, "license": "Apache v2.0", "maintainer": null, "maintainer_email": null, "name": "chillaxd", "package_url": "https://pypi.org/project/chillaxd/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/chillaxd/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/ylamgarchal/chillaxd" }, "release_url": "https://pypi.org/project/chillaxd/0.1a2/", "requires_dist": null, "requires_python": null, "summary": "Distributed coordination framework based on ZeroMQ and RAFT consensus algorithm.", "version": "0.1a2" }, "last_serial": 1530024, "releases": { "0.1a1": [ { "comment_text": "", "digests": { "md5": "9117f1b586c97bc30988e857553e9ae8", "sha256": "132473f732cba51a11b7e5af3c44e1c9b0586db2b3ad1eb6e2481e656d732573" }, "downloads": -1, "filename": "chillaxd-0.1a1.tar.gz", "has_sig": false, "md5_digest": "9117f1b586c97bc30988e857553e9ae8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20847, "upload_time": "2015-05-01T23:43:36", "url": "https://files.pythonhosted.org/packages/b1/45/44e6f9ddbbf72c74c4ba894cec4c2e9e5f21a5923e12b2d72ee544382c08/chillaxd-0.1a1.tar.gz" } ], "0.1a2": [ { "comment_text": "", "digests": { "md5": "23982caa81b05ee436ecbf70a09436d3", "sha256": "2b7ad4dd0e71bfe4ee9ee48c70f0be76ca1fcf13aed24e1173242e8e2f048735" }, "downloads": -1, "filename": "chillaxd-0.1a2.tar.gz", "has_sig": false, "md5_digest": "23982caa81b05ee436ecbf70a09436d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21044, "upload_time": "2015-05-02T00:29:55", "url": "https://files.pythonhosted.org/packages/59/74/676eaa58fdc26db8809068c496f00caa5d75ad3a6d93c4610a0fb5d5c4e6/chillaxd-0.1a2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "23982caa81b05ee436ecbf70a09436d3", "sha256": "2b7ad4dd0e71bfe4ee9ee48c70f0be76ca1fcf13aed24e1173242e8e2f048735" }, "downloads": -1, "filename": "chillaxd-0.1a2.tar.gz", "has_sig": false, "md5_digest": "23982caa81b05ee436ecbf70a09436d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21044, "upload_time": "2015-05-02T00:29:55", "url": "https://files.pythonhosted.org/packages/59/74/676eaa58fdc26db8809068c496f00caa5d75ad3a6d93c4610a0fb5d5c4e6/chillaxd-0.1a2.tar.gz" } ] }