diff options
author | Jason Carey <jcarey@argv.me> | 2018-02-07 15:21:47 -0500 |
---|---|---|
committer | Jason Carey <jcarey@argv.me> | 2018-02-08 15:18:11 -0500 |
commit | 4ae174dd53adaea999715ffbe19c435d685bc412 (patch) | |
tree | c61751faa5ec48b96b96772abad14afc480c2f42 /src/mongo/db/logical_session_id_helpers.h | |
parent | d337da259248c785f4014b565742300eb08ecd4f (diff) | |
download | mongo-4ae174dd53adaea999715ffbe19c435d685bc412.tar.gz |
SERVER-33158 Shrink LogicalSession refresh batches
The batches created by the LogicalSessionCache can exceed the 16mb bson
size limit for bson on the wire. This will cause the refresh step to
fail, preventing logical sessions from ever being synced to the global
collection.
This happens because we don't explicitly size our batches (we were
relying on the write_cmd item batch limit, rather than a byte limit).
Previously the write_cmd batch limit had been 1000 items, which allowed
for 16k per record. The new limit is 100k, which gives a 160 byte
budget we can exceed with very large user names (as we sync the lsid
+ the user@db name).
By forcing a new 10k limit on username sizes used with logical sessions
we can then ensure that a lower 1k limit will always be safe.
Diffstat (limited to 'src/mongo/db/logical_session_id_helpers.h')
-rw-r--r-- | src/mongo/db/logical_session_id_helpers.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/mongo/db/logical_session_id_helpers.h b/src/mongo/db/logical_session_id_helpers.h index 9735706330b..7e08503432b 100644 --- a/src/mongo/db/logical_session_id_helpers.h +++ b/src/mongo/db/logical_session_id_helpers.h @@ -36,6 +36,8 @@ namespace mongo { +constexpr size_t kMaximumUserNameLengthForLogicalSessions = 10000; + /** * Get the currently logged in user's UID digest. */ |