Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Update Index to allow for long EventNumbers.
Add IndexEntryV3 to support long EventNumbers in the index.
Rename IndexEntry32Bit and IndexEntry64Bit to IndexEntryV1 and IndexEntryV2.
Update LogRecord to allow Commit- and PrepareLogRecord to write 64bit ExpectedVersions.
Add LogRecordVersions LogRecordV0 and LogRecordV1.
When reading out int.MaxValue ExpectedVersion on a V0 record, convert it to long.MaxValue.
When reading the metadata of a stream and the metadata record is V0 and the truncateBefore
has been set to int.MaxValue, set the truncateBefore to long.MaxValue.
Change EventNumber from int to long throughout the code base.
Change TruncateBefore and MaxCount from ints to longs.
Upgrade LogRecords from V0 to V1 during a scavenge.
Add LengthOffset to PosMap to store the difference in length that can come about during the upgrade.
Move the calculation of the NextLogPosition from the Readers into LogRecord itself so that
the LengthOffset can be taken into account when calculating the next position.
Add PosMapVersion to differentiate between deprecated, 12 byte and 16 byte PosMap versions.
Add 2 new flags to ChunkFooter - isMap16Bytes and IsUpgraded
IsMap16Bytes is set if the PosMap version is PosMapV3 and stores the length offset
IsUpgraded is set if the chunk has gone through an upgrade during a scavenge
which may have caused the records to increase in length.
If IsUpgraded is set on the chunk footer, the footer will not try to validate that
the logical data size is less than the physical data size.
Update ClientAPI to handle long ExpectedVersions.
Create a new set of client TcpCommands, and rename the old ones V1 for old clients
Add a new TcpClientDispatcher for handling V1 TcpCommands and converting long EventNumbers
to ints and back again when unwrapping or wrapping packages
Add a deprecatedDispatcher to TcpConnectionManager, which is set to the above dispatcher.
If a command can be parsed by the deprecatedDispatcher, use this for wrapping or unwrapping
all further packages being sent over this connection.