-
Notifications
You must be signed in to change notification settings - Fork 174
Add schema version to flexible sync client BIND message #6863
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -204,10 +204,8 @@ ClientImpl::ClientImpl(ClientConfig config) | |
REALM_ASSERT_EX(m_socket_provider, "Must provide socket provider in sync Client config"); | ||
|
||
if (m_one_connection_per_session) { | ||
// FIXME: Re-enable this warning when the load balancer is able to handle | ||
// multiplexing. | ||
// logger.warn("Testing/debugging feature 'one connection per session' enabled - " | ||
// "never do this in production"); | ||
logger.warn("Testing/debugging feature 'one connection per session' enabled - " | ||
"never do this in production"); | ||
} | ||
|
||
if (config.disable_upload_activation_delay) { | ||
|
@@ -1861,6 +1859,7 @@ void Session::send_bind_message() | |
if (auto migrated_partition = get_migration_store()->get_migrated_partition()) { | ||
bind_json_data["migratedPartition"] = *migrated_partition; | ||
} | ||
bind_json_data["schema_version"] = get_schema_version(); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I am assuming the server will treat a There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There are client changes required for this feature. One way to advertise the client supports the feature is by bumping the sync protocol version (we're still debating if it's really needed). My thinking was that once an app is upgraded to support the future, the client will always report a schema version even if there is none. We can always stop reporting the schema version in some cases if we deem it necessary (this is all going to a feature branch). There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. With the bind json data, I don't think you need to bump the proto version - hopefully, the presence of the value should be enough to indicate whether or not the client supports schema migrations (which was my concern if this was being merged to master). Although, this only works for FLX, and the proto version would need to be bumped if it also has to work for PBS. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. yeah, that's the idea. And that's why I think it would be a bit odd to sometimes not report it (that should only happen if the app is downgraded). But this may change once we start integration testing. |
||
if (logger.would_log(util::Logger::Level::debug)) { | ||
std::string json_data_dump; | ||
if (!bind_json_data.empty()) { | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Recommend updating the comment to indicate it's for FLX only, or update the value to
flx_schema_version
since this feature is only for FLX sync.