mojira.dev
MC-135289

Water updates extremely slow (server lag)

The bug

Server-side water updates seem to be roughly 10x slower than in 1.12.
The comparison between 1.12 and 1.13 can be seen in this video by gnembon.

Test to exhibit this behavior:

  1. Create a flat world.

  2. Execute /fill ~-100 ~ ~ ~100 ~ ~ water

  3. Wait for the water to flow completely.

  4. Execute /fill ~-100 ~ ~ ~100 ~ ~ air

When the water is removed I recorded a peak at 81 mspt on 1.13 and a peak at (roughly) 8 mspt on 1.12.2.

This makes flushing mob farms unusable: on my survival world, I get peaks > 150 mspt.

The mspt measurment on 1.12 is a bit tricky as there is no way to measure it properly:
I used /forge tps from Forge mod loader to measure it.

Slow down summary

ย 

1.12

1.13

18w33a

1.13.1-pre2

1.15.1

20w27a

create water

4

34

20

14

19

10

remove water

8

81

24

18

31

16

Linked issues

Attachments

Comments 11

Can verify this affects MP servers as well, a player's flushing mob farm is causing massive lag spikes when ever it activates. Could also replicate the issue using the above method in SP.

I fail to see the how it relates to MC-123263.
MC-123263 is about client performance (Frames Per Second) while this bug is about server performance (Ticks Per Second).

In 18w33a water performance was improvedยน. Can you please test if this affects this issue?

It is much better in 18w33a, but it is still much slower than in 1.12: I recorded a tick time of 24 mspt, which is 3 times slower than 1.12.

As a side note, the performance hit now looks symetric (same slow down when putting water than when removing water).
That was not the case in 1.12, so it might be good to sum up the results in a table:

1.12

1.13

18w33a

create water

4

34

20

remove water

8

81

24

So the water in 18w33a is still x3-x5 slower than in 1.12.

It is still in 1.13.1-pre2, but the performance keeps increasing. I just put the new times in the description.

Good job in tracking down the issue bit by bit: keep going ๐Ÿ˜‰

1 more comments

Here's my 1.15.1 benchmark: https://youtu.be/Q7_VUTVYzo0
Not really sure whether it's comparable with the previous ones as I've got a less powerful CPU.

@violine1101 I just redid the test on my machine (the one used in the original post), and my timings are comparable to yours.

One thing to notice though, now that we have mspt chart, we can see that the maximum mspt is much higher than what we saw (more than 100 mspt), and the ~20mspt is an average over a handful of ticks.

On 20w27a, I got ~10 mspt on water creation and ~16 mspt on water removal.

I attached a screenshot where we can see the mspt graph.

The average mspt for a complete cycle is 11 mspt with a peak at 124 mspt.

I also attached a world save for 20w27a with a clock to facilitate testing.

Still a problem in 1.17.1 and 21w40a. It seems to be that in 1.18 experimental snapshots its worse than in 1.17.1

Florian

(Unassigned)

Confirmed

Platform

Normal

Performance

flowing_water, lag, water-updates

Minecraft 1.13, Minecraft 18w30b, Minecraft 18w31a, Minecraft 18w32a, Minecraft 18w33a, ..., 21w07a, 1.17, 1.17.1, 21w40a, 21w44a

Retrieved