branchrust_reboot/main/full_server_demoscancel

50 Commits over 29 Days - 0.07cph!

57 Days Ago
merge from main -> full_server_demos
2 Months Ago
merge simple_upload -> full_server_demos
2 Months Ago
merge main -> full_server_demos network++
2 Months Ago
merge packet_ordering_2 -> full_server_demos
2 Months Ago
Merge from main -> full_server_demos
3 Months Ago
Merge from main -> full_server_demos
3 Months Ago
Simplify bandwidth calculations Try to upload demo in 5m and any backlogged demos within 15m
3 Months Ago
Add a few retries when uploading demos
3 Months Ago
Easier to fix merge conflicts manually
3 Months Ago
Merge fix_recording_disconnects -> full_server_demos
3 Months Ago
Add upload queue for demos Rate limit the uploads to avoid saturating server's bandwidth
3 Months Ago
Also include changeset & hostname for debugging
3 Months Ago
Include network protocol in demo header
3 Months Ago
Merge from main -> full_server_demos
3 Months Ago
Merge from main -> full_server_demos
3 Months Ago
Default to 8MB transfer size when benchmarking demo upload Allow transfer size to be overwritten
3 Months Ago
Record disconnects to the demo thread
3 Months Ago
Merge from main -> full_server_demos
3 Months Ago
Merge from main -> full_server_demos
3 Months Ago
Don't upload demos when `upload_demos` is set false or when `upload_url` is unset
3 Months Ago
Rename variables inside `FullServerDemos.cs` to be as readable as possible
3 Months Ago
Add `upload_demos` convar to turn off uploading and keep it on disk
3 Months Ago
Missed one file for CS0197
3 Months Ago
Fix CS0197 warnings - change static method `NetRead.Free( ref NetRead )` to `NetRead.RemoveReference()` - move `Interlocked.Increment()` into `NetRead.AddReference()`
3 Months Ago
Fix the server recording inbound packets twice: once from decryption thread & once on the main thread
3 Months Ago
Don't split up PacketId and the rest of the packet
3 Months Ago
Cleanup variable names Fix writing packet length directly to the FileStream instead of the Writer.BaseStream
3 Months Ago
Cleanup convars
3 Months Ago
Improve benchmark demo command
3 Months Ago
Merge from main -> full_server_demos
3 Months Ago
Add `benchmark_demo_upload` to ensure we don't overload the game server when uploading blobs
3 Months Ago
Merge from main -> full_server_demos
3 Months Ago
Don't record raknet packets used to establish a connection
3 Months Ago
Compile fix
3 Months Ago
Change default flush interval from 1 min -> 5 min
3 Months Ago
Store session start timestamp (when demo recording started) in header Use connection Guid instead of dictionary in player lookup (to avoid players reconnecting causing issues) - change DemoPlayerInfo.SteamId -> Guid (ulong technically) Change path to `server-demos/{serverid}/sessions/{sessionid}/{chunkid}.sdem` (to make it easier to navigate in azure) Fix compressedSize in demo header being incorrect (FileStream.Length > FileStream.Position)
3 Months Ago
Switch from `demo_server_id` -> `server_id` convar - save across restarts - set server_id on startup if not set Remove `upload_token` convar, rely on putting SAS token in upload endpoint for now (can polish later once we figure out how we want to refresh tokens) Fix hardcoded "test" container and use the container from the SAS url
3 Months Ago
Merge from main -> full_server_demos
3 Months Ago
Refactor into multiple .cs files as the code has grown
3 Months Ago
Delete demos off disk past a certain quota to avoid consuming entire disk during upload failure Add `server_demo_disk_space_gb` (default 30GB)
3 Months Ago
Allow server demos to be turned on and off at runtime
3 Months Ago
merge packet_ordering -> full_server_demos
3 Months Ago
Cleanup upload code a bit
3 Months Ago
Store chunkId in header file
3 Months Ago
Merge from main -> full_server_demos
3 Months Ago
Enqueue packets for demo from network threads instead of main thread
3 Months Ago
Change header class from fields -> properties (for System.Text.Json)
3 Months Ago
Merge upload -> full_server_demos
3 Months Ago
Expose variables for server demos as convar `full_server_demo` convar will only be applied on startup but can be changed at runtime to apply next restart
3 Months Ago
Moving from stash to branch* When `ServerDemo` convar is enabled on startup, the server will recordall network traffic on the server as one big demo file Packets sent to multiple players are only recorded once (store list of players sent to) Inbound & outbound data is stored in the order it was processed on the server The demo is written to disk on a separate thread to make performance impact minimal Demo is split into 1 minute chunks for testing (will be 5 minutes later) Each demo chunk is given a unique filename with the .sdem extension (represents .serverdemo) A json "header file" is written with each demo chunk wiht information on how the demo should be loaded (list of players, number of packets, time span, etc) Changed pooling of NetRead & NetWrite to use reference counting to account for another thread needing to finish processing before they are pooled