Search Unity

Unity.Transport Reliable Pipeline WindowSize Max 32

Discussion in 'Entity Component System' started by alfiare, Dec 17, 2019.

  1. alfiare

    alfiare

    Joined:
    Feb 10, 2017
    Posts:
    30
    The documentation for the Reliability Pipeline (https://docs.unity3d.com/Packages/c...nes-usage.html#using-the-reliability-pipeline) says that the maximum windows size is 32 (thus the max reliable packets in flight being 32). Is there any plan to increase that limit or remove it all together and allow it to be configurable?

    I'm just wondering because I have a use case for sending significant numbers of messages in bursts of maybe 60 at a time, but then few for a while after that.

    I didn't see it explicitly called out but does that 32 limit also apply to the Unreliable Sequenced pipeline? (I'm guessing yes)
     
  2. Singtaa

    Singtaa

    Joined:
    Dec 14, 2010
    Posts:
    492
    It's needed to track the packets, so I don't think it can be removed. =/

    It only applies to the reliability pipeline. In my tests, packets are not dropped when exceeding the 32 limit for Unreliable Pipeline.
     
  3. alfiare

    alfiare

    Joined:
    Feb 10, 2017
    Posts:
    30
    Certainly some value is necessary, I'm just thinking that something larger would be helpful in some situations and therefore having it be configurable would be ideal. I believe the 32 limit is per connection right? (Not for the driver as a whole)
     
  4. Singtaa

    Singtaa

    Joined:
    Dec 14, 2010
    Posts:
    492
    Yup it's per connection. Using a 32bit mask is usually the standard (about the right amount of trade-offs imo). I don't know how difficult it is for them to make it configurable though.
     
  5. alfiare

    alfiare

    Joined:
    Feb 10, 2017
    Posts:
    30
    Did you ever get a warning like: "A lot of pipeline updates have been queued, possibly too many being scheduled in pipeline logic, queue count: ###"? I have a very simple example that just creates a server that accepts a connection and immediately sends an integer back. If I have 100 clients connect to this they connect and the data goes through, client gets it, but this warning starts churning out constantly and doesn't seem to ever stop.
     
  6. Singtaa

    Singtaa

    Joined:
    Dec 14, 2010
    Posts:
    492
    Hmm no I haven't gotten that yet. If you can show the code, I can try to reproduce on my side.
     
  7. alfiare

    alfiare

    Joined:
    Feb 10, 2017
    Posts:
    30
    OK, looks like it's an anomaly of my testing, I tried creating 100 client worlds hooking up to a single server world, I'm guessing something looses itself in the driver when you do that, it works fine (well it drops everything after the first 32 packets) when there's one client world receiving 100 messages.
     
    Singtaa likes this.
  8. June1111

    June1111

    Joined:
    Aug 11, 2017
    Posts:
    33
    you can just up the limit when creating the pipeline