1.3 Tasks - adamcfraser/cbnotes GitHub Wiki

###Distributed Index/sg_accel

####Refactor repo to not hijack GOPATH

  • Use GO15VENDOREXPERIMENT=1 instead of submodules
  • Buildable by standard Go tools like go get github.com/couchbase/sync_gateway
  • All packages would live in standard GOPATH

####Decoupling sg_accel from Sync Gateway

  • Move sg_accel to it's own repo.
  • Move common code used by index readers and writers to a new library/repo, and refactor SG and sg_accel to use.
  • Pull all index writer functionality out of sync gateway.
  • Define administration API for sg_accel, and remove the rest of the SG REST API from sg_accel.

####Performance

  • Modify index storage to better handle scenarios with a large number of sparse channels.
  • Non-mini matrix performance testing:
    • Full suite of scenarios.
    • Varying number of channels, num_shards, doc size, etc.
    • Additional performance analysis/fixes to significantly increase SG per-node throughput.
  • Index compaction. (https://github.com/couchbase/sync_gateway/issues/1030)
  • Convert cb-heartbeat to not require a view. (https://github.com/couchbase/sync_gateway/issues/1217)
  • Fix out-of-memory issues under load. (https://github.com/couchbase/sync_gateway/issues/1514)
  • Improve change detection performance. Current polling has decent performance degradation as the number of channels/users per reader node increases. Possibly a two-phase approach:
    • Improve the current polling approach (hotfix)
    • Replace polling with something like projector (GA)

####Reliability

####Correctness

####Usability and Administration

##Non-DI

###General Functionality