do not build main binary for tests
Merge pull request #67 from tschottdorf/mktest

do not build main binary for tests
Adding unit tests to kv/local_kv_test.go

Generalizing gossip network simulation so that it can be used to test gossip networks more broadly

Adding unit tests for kv/dist_kv.go and fix user permission bug in
storage/prefix.go caught by the tests
Merge pull request #63 from embark/kathy/kv_test_coverage

Improving kv test coverage
Give all replicas of a range the same Range ID

Previously, the range ID was chosen as unique / store for every new range
replica created on a store. This means that there was previously no way
to refer to a Raft consensus group by ID. The only way would have been to
use StartKey->EndKey.

Now, ranges are allocated from a global id allocator in blocks by stores.
When new ranges are created, an ID is taken from the pre-alloc'd block.

Range ID has now been moved out of proto.Replica and moved into RangeDescriptor.
Replica no only specifies NodeID and StoreID, which is enough information to
locate the device where a replica of the range can be found.

RangeID was not needed in RangeMetadata, so was removed from there.
Also, ZoneConfig.Replicas was renamed ZoneConfig.ReplicaAttrs to eliminate
confusion.
Added a test for allocation of successive blocks of range IDs.
After some reflection and discussion with Ben, re-introduced the
RangeID into the proto.Replica description. We decided it would be
a mistake to lose an exact, unique description of a particular range
replica, which we get via proto.Replica. It consists of three IDs
which together are a unique identifier: NodeID, StoreID, RangeID.

To help with debugging and make things simpler to reason about,
introduced a new "RaftID" which is defined at the level of
proto.RangeDescriptor.
Merge pull request #66 from cockroachdb/spencerkimball/range-id-is-group-id

Introduce a RaftID, move range lookup into Store from LocalKV
Implementation of InternalPushTxn operation. The details of the op are
spelled out in detail in the Range.InternalPushTxn comments and in the
api.proto comments. Unittests provides full code test coverage including
all error conditions.

Changed MVCC.ResolveWriteIntent to no longer accept a Commit parameter.
Instead, we use more of the provided Txn parameter's fields to correctly
update the MVCC metadata / versioned value. The missing piece here was
handling the case of the timestamp being pushed forward instead of just
having the underlying transaction committed or aborted. In the case of
pushing the timestamp, the MVCC metadata txn field is not set to nil,
it's just updated. We also will end up removing the versioned value with
the previous timestamp and create a new one with the updated timestamp.

Cleaned up TODO file.
Addressed Jiang-Ming's feedback.
Created new block ID allocator & put it into use.

Created ID allocator which intelligently allocates blocks of IDs
and refreshes them automatically at the halfway-through point.

Moved Store to use new ID allocators for Raft IDs and Range IDs.
Split up Store.CreateRange into methods for getting a BootstrapRangeMetadata
and creating a RangeMetadata using a replicas slice and range key intervals
which allocates IDs and populates the metadata as necessary. This will be
used from the range split code.
Added case for pushing a timestamp which is already far enough in the
future and associated unittest.
Added additional test for an incremental key starting at a large negative
number.
Merge pull request #68 from cockroachdb/spencerkimball/address-bens-comments

Created new block ID allocator & put it into use.
Merge pull request #65 from cockroachdb/spencerkimball/push-transaction

Implementation of InternalPushTxn operation.
Added SQL parser based on vitess's SQL parser.

Local changes include support for a bit more of the SQL language and
some naming changes to make this package be almost lint free. Note that
there is a remaining bit of lint in the generated sql.go file that I
cannot get rid of because it is generated by yacc (yyEofCode should be
named yyEOFCode).
Add an env variable that allows pre-commit to be skipped.

Only for use in emergencies (e.g. code that files lint that we can't
fix).
Generate sql.go from sql.y.
Rename TODO to TODO.md

This makes it nicely viewable as markdown
Merge pull request #70 from pzurek/patch-1

Rename TODO to TODO.md