Pushing trackDb
a.k.a. "trackDb and friends"
Starting with v243 CGIs and the release of the Track Search feature, every time we push the trackDb table, we need to also push the index files that go with it (.ix and .ixx), the cv.ra file, and the metaDb table. With the ThreeStateTrackDb already making things complicated, and with files needing a storage location that is a special case on hgwbeta, we need a standard way to push "everything that needs to be pushed when trackDb goes out". We'll include the hgFindSpec table, as it is often forgotten (it has nothing to do with Track Search).
Tables
These should be pushed from mysqlbeta --> mysqlrr:
- trackDb_public (and renamed trackDb)
- metaDb_public (and renamed metaDb) -- only need to push this if it exists in the db
- hgFindSpec_public (and renamed hgFindSpec)
Files
The two index files are normally kept in /gbdb/$db/. Since gbdb/ is a shared location between hgwbeta and the RR, the files have to have a special location on hgwbeta.
- /data/trix/$db_trackDb_public.ix on hgwbeta should become /gbdb/$db/trackDb.ix on hgnfs1.
- /data/trix/$db_trackDb_public.ixx on hgwbeta should become /gbdb/$db/trackDb.ixx on hgnfs1.
The cv.ra file is not database-specific. It should be pushed from cgi-bin-public on hgwbeta --> RR:
- /usr/local/apache/cgi-bin-public/encode/cv.ra on hgwbeta should become /usr/local/apache/cgi-bin/encode/cv.ra on the RR.
More details for anyone interested
The trix files move like this:
On hgwdev:
make alpha in trackDb puts the two trix files in /hive/data/inside/trix/trackDb.ix[x].
/gbdb/$db/trackDb.ix[x] contains symlinks to these /hive files. We do it this way because the hive is supposed to be all symlinks and no actual data (data in gbdb makes the admins angry).
On hgwbeta:
make beta in trackDb puts the two trix files in /data/trix/$db_trackDb.ix[x].
make public in trackDb puts the two trix files in /data/trix/$db_trackDb_public.ix[x].
Both hgwbeta and hgwbeta-public use the "browser.trixPath" hg.conf setting to tell the CGIs to look for the trix files in this weird location. We do it this way because hgwbeta, hgwbeta-public, and the RR have a common /gbdb directory (hosted on hgnfs1).
On the RR:
The files exist in their normal location in /gbdb on the RR (well, on hgnfs1):
/gbdb/$db/trackDb.ix[x]
Our push request asks for the /data/trix/$db_trackDb_public.ix[x] files on hgwbeta to be pushed to hgnfs1, and to be named /gbdb/$db/trackDb.ix[x]. There are no special symlinks or hg.conf settings.