The implementation for it was never fully completed or tested according to Mark the last time I asked him about it.

If I recall correctly, it holds the potential to cause a race condition that results in process dead-lock, when saving larger world databases.

Also, I think I was the one who excluded it from production in the code, maybe I should have left comments, lol.
 
Will check that with a huge worldsave over several days.
[doublepost=1487687693][/doublepost]@Voxpire
Do you have any hints about size for me?

Currently testing wit 6.800.000+ Items and 4000 mobiles.

However what I can already say, DynamicSaveStrategy is more than 400% slower than DualSaveStrategy on a Dual Quad-Core Xeon System (2 NUMA à 4 physical Cores without HT).
 
Last edited:
Disastrous :)

50% more RAM usage with DynamicSaveStrategy.
[doublepost=1487713048][/doublepost]Wow, Parallel Save Strategy....after 6 hours.

Even more slow than Dynamic (40-45seconds), RAM stays, CPU goes 90% because of threading and parallel usage.

So...Dual is stable and simply the best you can go with. No matter how much cores you've (okay...at least two).
 

Attachments

  • Dual.png
    Dual.png
    67.1 KB · Views: 9
  • Dynamic.png
    Dynamic.png
    73.6 KB · Views: 8
Hey Grim,
thanks this is highly interesting. It even describes the reason for higher memory usage.

Divides up the list of that type into large chunks. Each of these chunks gets it's own thread. Each of these threads Serialize to their own MemoryStream. As each of these chunks complete (in parallel), we add each completed memory stream to a queue, to be processed by another Thread.

Secondly I'm still surprised about the bad performance of parallel save strategy. I can not exclude this is a HDD performance issue but still not what I expected.

I've attached all missing save strategys just for completion.
 

Attachments

  • StandardThread.png
    StandardThread.png
    66.8 KB · Views: 12
  • Parallel.png
    Parallel.png
    109.9 KB · Views: 12
Back