[go: up one dir, main page]

Menu

Tree [a6cdd0] 1.1.1 /
 History

HTTPS access


File Date Author Commit
 doc 2015-11-21 Christian Ferrari Christian Ferrari [e52989] Intermediate commit: implementing -n --network-...
 etc 2015-11-21 Christian Ferrari Christian Ferrari [e52989] Intermediate commit: implementing -n --network-...
 m4 2015-05-31 Christian Ferrari Christian Ferrari [1dd63c] Temporary commit while developing Java API
 man 2015-11-26 Christian Ferrari Christian Ferrari [a6cdd0] Release 1.1.1 commit
 src 2015-11-26 Christian Ferrari Christian Ferrari [a6cdd0] Release 1.1.1 commit
 tests 2015-11-22 Christian Ferrari Christian Ferrari [632ffa] 1.1.1 release candidate source code
 AUTHORS 2013-12-19 Christian Ferrari Christian Ferrari [10a33d] Code clean-up
 BUGS 2015-11-17 Christian Ferrari Christian Ferrari [8c9bd9] Release 1.1.0 commit
 COPYING 2014-10-16 Christian Ferrari Christian Ferrari [ed0cec] Produced the first useless main program that li...
 COPYING_LGPL 2014-10-14 Christian Ferrari Christian Ferrari [d5859f] Implementing client library...
 ChangeLog 2015-11-26 Christian Ferrari Christian Ferrari [a6cdd0] Release 1.1.1 commit
 INSTALL 2013-09-25 Christian Ferrari Christian Ferrari [72edf4] work in progress...
 Makefile.am 2015-09-17 Christian Ferrari Christian Ferrari [40ec8b] Java examples are now available
 Makefile.in 2015-11-21 Christian Ferrari Christian Ferrari [e52989] Intermediate commit: implementing -n --network-...
 NEWS 2013-09-25 Christian Ferrari Christian Ferrari [72edf4] work in progress...
 README 2015-10-02 Christian Ferrari Christian Ferrari [50029a] Unstable code: IPv6 support in progress...
 TODO 2015-11-22 Christian Ferrari Christian Ferrari [632ffa] 1.1.1 release candidate source code
 TestLog 2015-11-22 Christian Ferrari Christian Ferrari [632ffa] 1.1.1 release candidate source code
 aclocal.m4 2015-05-31 Christian Ferrari Christian Ferrari [1dd63c] Temporary commit while developing Java API
 config.guess 2014-10-06 Christian Ferrari Christian Ferrari [498450] Added libflom library to build chain
 config.h.in 2015-11-21 Christian Ferrari Christian Ferrari [e52989] Intermediate commit: implementing -n --network-...
 config.sub 2014-10-06 Christian Ferrari Christian Ferrari [498450] Added libflom library to build chain
 configure 2015-11-26 Christian Ferrari Christian Ferrari [a6cdd0] Release 1.1.1 commit
 configure.ac 2015-11-26 Christian Ferrari Christian Ferrari [a6cdd0] Release 1.1.1 commit
 depcomp 2013-09-25 Christian Ferrari Christian Ferrari [72edf4] work in progress...
 doxygen.conf.in 2015-11-22 Christian Ferrari Christian Ferrari [632ffa] 1.1.1 release candidate source code
 install-sh 2013-09-25 Christian Ferrari Christian Ferrari [72edf4] work in progress...
 libtool 2015-11-26 Christian Ferrari Christian Ferrari [a6cdd0] Release 1.1.1 commit
 ltmain.sh 2014-11-23 Christian Ferrari Christian Ferrari [bcbee0] Another commit after coming back to Ubuntu 10.04
 missing 2013-09-25 Christian Ferrari Christian Ferrari [72edf4] work in progress...
 valgrind.cmd 2014-11-02 Christian Ferrari Christian Ferrari [823ca5] flom_handle_init now clones a config object wit...
 valgrind.supp 2014-02-05 Christian Ferrari Christian Ferrari [264baa] Implementing IPV4 unicast connection

Read Me

	FLoM, Free Lock Manager, a free and open source lock manager

FLoM (Free Lock Manager) is an open source and free lock manager designed to
serialize and synchronize shell command execution.
Since version 0.9.0 it's a library to synchronize your own program too; basic
usage examples are in doc/examples directory (default installation path is
/usr/local/share/doc/flom/examples/)
API documentation is distributed in directory doc/html/ (default installation
path is /usr/local/share/doc/flom/html/) and on the web at http://flom.sourceforge.net/

A list of implemented use cases is listed at this URL: 
http://sourceforge.net/p/flom/wiki/FLOM%20by%20examples/
This is a brief list of the available features:
- synchronization of shell commands to avoid conflicts on files, directories,
  abstract resources
- enforcement of command order execution to avoid one command is executed
  before another one
- resource utilization leveling to avoid too many similar tasks run at the
  same time 
- all the synchronization features are available inside a single host or in
  a distributed environment using TCP/IP networking
- an autodiscovery feature is available to reduce deployment complexity in a
  distributed environment (every node at any time may become a "server" for
  the others node)
- easy API (Application Programming Interface) to synchronize your own
  programs with shell executed flom commands. These languages have a ready
  to use binding: C, C++, PHP, Python.

FLoM central documentation site is hosted by SourceForge Wiki: https://sourceforge.net/p/flom/wiki/Home/

 * FLoM is free software: you can redistribute it and/or modify under the terms
 * of GNU General Public License version 2 as published by the Free Software
 * Foundation.
 *
 * FLoM is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.

Note: libflom is the library distributed along with FLoM; it's free software:
      you can redistribute it and/or modify under the terms of GNU Lesser
      General Public License version 2.1 as published by the Free Software
      Foundation.

Download the tarball from SourceForge: https://sourceforge.net/projects/flom/
and install FLoM using standard GNU build chain: 
    tar xvzf flom-X.Y.Z.tar.gz
    cd flom-X.Y.Z
    ./configure
    make
    sudo make install
if you are using a Red Hat derivative you will probably use
    su
    make install
    exit
instead of "sudo make install".

Take a look to file INSTALL for more details.

Use 
man flom 
to read man page and pick up Internet relevant URLs for FLOM project.

Use
make check
to perform package automatic tests.
NOTE: do *NOT* run tests on a system that's using flom because some tests
      need to kill all FLoM running instances and this is not acceptable if
      you are playing production workloads. DO USE A TEST SYSTEM!
NOTE: tests needs the system is NOT overloaded because they stick on timing
      and timing breaks if the system is overloaded.
NOTE: FLoM must be installed with "sudo make install" before tests can 
      proceed (this is a library path issue...)
NOTE: if you are not interested in C++ API library support, specify
      "--disable-cpp" at configure time; example:
      ./configure --disable-cpp
NOTE: if you are not interested in Java API library support, specify
      "--disable-java" at configure time; example:
      ./configure --disable-java
NOTE: if you are not interested in PHP API library support, specify
      "--disable-php" at configure time; example:
      ./configure --disable-php
NOTE: if you are not interested in Python API library support, specify
      "--disable-python" at configure time; example:
      ./configure --disable-python

Issues related to multicast and internal Linux firewalling:
the easiest way is to completely disable the internal firewall with
commands
	systemctl stop firewalld 
	systemctl disable firewalld 
or alternatively
	service ipchains stop
	service iptables stop
	chkconfig ipchains off
	chkconfig iptables off
If you cannot disable the firewall and you want to use FLoM autodiscovery
feature (IP multicast based), you will have to configure the internal
firewall allowing FLoM multicast packets.

If you need some help (usage tricks, hints, etc...) please post a message in
the forum: http://sourceforge.net/p/flom/discussion/
If you think you have discovered a bug, please open a ticket here:
http://sourceforge.net/p/flom/tickets/
If you avoided to send me an e-mail I would be happy: forum posts and tickets
can be seen by many people and I should not answer the same questions many
times.

Dependencies report:
O.S.		Feature		Packages
Ubuntu		Basic		make gcc libglib2.0-dev pkg-config automake
Ubuntu		C++ API		g++
Ubuntu		PHP API		swig php5-cli php5-dev
Ubuntu		Python API	swig python-dev
Ubuntu	10.04	Java API	openjdk-6-jdk
Ubuntu	12.04	Java API	default-jdk (openjdk 6)
Ubuntu	14.04	Java API	default-jdk (openjdk 7)
CentOS		Basic		gcc glib2-devel autoconf
CentOS		C++ API		gcc-c++
CentOS		PHP API		swig php-cli php-devel
CentOS		Python API	swig python-devel
CentOS	6.6	Java API	java-1.6.0-openjdk* or java-1.7.0-openjdk*
CentOS	7.1	Java API	java-1.8.0-openjdk*

Enjoy FLoM!
Ch.F.