
Refactor how configs are loaded and passed to daemons. Add conf.d support. So you can have an /etc/swift/object-server.conf.d or /etc/swift/object-server/1.conf.d, and any .conf files under it will be loaded as one config. conf.d files are combined in filename lexigraphical order, with any sections in later files replace existing section entries. Change-Id: I78d7e5449cd0b62df9dfdb25616a2d4c91159f8c
Hummingbird
Hummingbird is a golang implementation of some parts of Openstack Swift. The idea is to keep the same protocols and on-disk layout, but improve performance dramatically.
Completeness
The object server, replicator and auditor are considered feature complete and testing is ongoing. The proxy server is currently only complete enough to run simple GET, PUT, and DELETE benchmarks.
Installation
First, you should have a working SAIO. (With no storage policies)
You will also need to configure your syslog to listen for UDP packets:
For a SAIO, change these lines in /etc/rsyslog.conf:
# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
and then sudo service rsyslog restart.
Next, you must have a working Go development environment.
Better build instructions coming... For now, do something like on your SAIO:
mkdir -p $GOPATH/src/github.com/openstack
ln -s ~/swift $GOPATH/src/github.com/openstack/swift
cd $GOPATH/src/github.com/openstack/swift/go
make get test all
Running
The "hummingbird" executable handles starting services, reading and writing pid files, etc., similar to swift-init.
hummingbird [start/stop/restart] [object/proxy/all]
If you'd like to start it from a user other than root, you'll probably need to create /var/run/hummingbird with the correct permissions.