Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A command-line client for Gizzard
Ruby Scala
Pull request Compare This branch is 1 commit ahead, 423 commits behind master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin
lib
spec
test
.document
.gitignore
LICENSE
README.rdoc
Rakefile
VERSION
gizzmo.gemspec

README.rdoc

gizzmo

Gizzmo is a command-line client for managing gizzard clusters.

Installation and setup

Installation is a simple gem install. You may find it useful to create a ~/.gizzmorc file, which is simply YAML key/values. The keys are the long-style command line option keys converted into Ruby-style variables. A common .gizzmorc will simply be:

host: localhost
port: 7917

Usage

Run `gizzmo help` for up-to-date usage.

Recipes

Block and unblock a shard

BLOCKER=`gizzmo wrap com.twitter.gizzard.shards.BlockedShard a_shard`

gizzmo unwrap $BLOCKER

Reweight a shard safely (the hard way)

NEW_WEIGHT=1
REPL=`gizzmo wrap com.twitter.service.flock.edges.ReplicatingShard a_shard`
PARENT=`gizzmo links $REPL | cut -f 1 | grep -v $REPL | head -1`
gizzmo addlink $PARENT a_shard $NEW_WEIGHT
gizzmo unwrap $REPL

Contributing

Contributions are welcome! Please send a pull request, or if you're internal to Twitter, please make a branch! Commits to master, and/or patches without minimal test coverage will be rejected/reverted.

Running tests

The tests may be somewhat difficult to run outside of Twitter. They assume the following:

  1. You have a running FlockDB development environment exposing a ShardManager over thrift on localhost:7917

  2. You don't mind blowing away the data in your dev environment.

  3. Your MySQL username and password are in the environment variables DB_USERNAME and DB_PASSWORD

Assuming you've put together the dependencies, ./test/test.sh should run fine.

Copyright

Copyright © 2010 Twitter, Inc. See LICENSE for details.

Something went wrong with that request. Please try again.