Added --data-dir feature for persistent storage
-----------------------------------------------
Key: QPID-780
URL: https://issues.apache.org/jira/browse/QPID-780
Project: Qpid
Issue Type: New Feature
Components: C++ Broker
Reporter: Ted Ross
Priority: Minor
Added a feature originally spec'd by aconway. Here is the description of the
requirement:
Description of problem:
Need a place to store broker data: files from other qpid
components, e.g. management identity, cluster roles etc.
It should be
- collected: all data for a broker in one directory.
- locked: can't be used by 2 brokers simultaneously.
- open: new services can add their own files.
Proposed solution:
Changes for qpid:
--data-dir DIR (/var/lib/qpidd) Directory to contain persistent data generated
by the broker.
On startup: qpidd creates <data-dir>/lock, startup fails if data-dir does not
exist, has wrong permissions or is already locked.
--data-dir="" is allowed - it means "disable all features that need data-dir"
Provides an easy way to run a transient broker for tests etc.
Features that can use the data-dir may run with reduced functionality e.g.
management works but wont give history over restarts, can join a cluster but
cant resume a previous cluster identity etc.
Justifications:
- Why default to /var/lib/qpidd?
This is the sane default for qpidd running as a system service, we want qpidd to
run properly as a system service by default.
Why not /var/lib if run as root, something else otherwise?
It's common to run system services as a non-root special user, so root isn't
always the special case.
Why not default to something convenient for developers like ~/.qpidd?
1. We want to default to deployed behavior not developer behavior.
2. The default will always be overridden if there is an /etc/qpidd.conf with a
data-dir setting. Thats more confusing than helpful.
For clarity & sanity you *must* to specify something on the command line if you
are not running the default deployed broker. Note that it's very easy though. 3
cases:
1. Transient broker for demos/tests: qpidd --data-dir=
2. Broker with own storage, but use /etc/qpidd.conf & defaults for everything
else: qpidd --data-dir=mydata
3. Broker with a private config file: qpidd --config=myconf
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.