|
Unfortunately, there's a fundamental dependency cycle when trying to include the transaction API in the canonical_query SCons library:
build/opt/mongo/db/libtransaction_api.so =>
|
build/opt/mongo/db/libshared_request_handling.so =>
|
build/opt/mongo/db/liblogical_session_cache_impl.so =>
|
build/opt/mongo/db/s/libsharding_api_d.so =>
|
build/opt/mongo/s/libgrid.so =>
|
build/opt/mongo/s/libsharding_routing_table.so =>
|
build/opt/mongo/db/query/libquery_planner.so =>
|
build/opt/mongo/db/query/libcanonical_query.so =>
|
build/opt/mongo/db/libtransaction_api.so
|
Basically, the sharding machinery that the transaction API sits on top of depends on the query planner for chunk migration and shard targeting, which obviously depends on canonical_query. So sharding code can't be called from canonicalquery. This isn't a huge blocker, but it means that we'll need to call code to rewrite the CanonicalQuery from each individual command entrypoint on mongod and mongos.
|