Problem introduced with biothings.api 0.12.x release.
The base ColdHotIndexer defined in biothings.api has the following structure that each of its worker indexer relies on a build doc to initialize, and these two build docs are actually pointing to the same doc in MongoDB.
All worker indexer implemented in biothings.api uses the following safe procedure to update its associated build doc:
However, developers subclassing the base worker indexer may be unaware of the two write operations in ColdHotIndexer and come up with following implementation (since it's quite straightforward to keep the build doc as a member of the worker indexer)
Such worker indexer implementation, when put into a ColdHotIndexer, will overwrite the content first written to MongoDB.
In MyVariant.info, BaseVariantIndexer has exactly such a problem, and that's why those two fields, index.<build_id>.host and index.<build_id>.environment, are lost in build docs.
Problem introduced with biothings.api 0.12.x release.
The base
ColdHotIndexer
defined in biothings.api has the following structure that each of its worker indexer relies on a build doc to initialize, and these two build docs are actually pointing to the same doc in MongoDB.All worker indexer implemented in biothings.api uses the following safe procedure to update its associated build doc:
However, developers subclassing the base worker indexer may be unaware of the two write operations in
ColdHotIndexer
and come up with following implementation (since it's quite straightforward to keep the build doc as a member of the worker indexer)Such worker indexer implementation, when put into a
ColdHotIndexer
, will overwrite the content first written to MongoDB.In MyVariant.info,
BaseVariantIndexer
has exactly such a problem, and that's why those two fields,index.<build_id>.host
andindex.<build_id>.environment
, are lost in build docs.