Virtual map serving system (VMSS)

has anyone seen anything about VMSS?

I come from mangosr2 for some time and VMSS solved a lot of crash problems on maps,I come forum to ask whether they plan to put in trinity or something similar? thans for all


# Virtual map serving system (VMSS) configuration

#

#	VMSS.Enable

#		Enabling VMSS support (signals handling)

#		Default: 0 - off

#				 1 - on

#

#	VMSS.MaxThreadBreaks

#		Maximum single instance map fails before stopping world

#		Default: 5

#

#	VMSS.ThreadBreakRememberTime

#		Time (in seconds) before cleaning counter of MaxThreadBreaks

#		Default: 3600 (1 hour)

#

#	VMSS.MapFreeMethod

#		Method for freeing breaked map

#		0 - safe cleaning (clean auras, save and logout player)

#		1 - not safe cleaning (kick players, not clean auras, not save players/worldstates)

#		2 - not safe cleaning (another type - logout players without save)

#		Default: 0

#

#	VMSS.FreezeCheckPeriod

#		Time period (in milliseconds) for activate FreezeDetect thread

#		Default: 1000 (1 sec) - default mangos freeze detect period.

#

#	VMSS.MapFreezeDetectTime

#		Time (in milliseconds) for detect freeze in map thread

#		Default: 1000 (1 sec)

#

other interesting point was:


#    ACE mtmaps

#    MapUpdate.Threads

#	    Number of threads to run if the binary was compiled with mtmaps support.

#	    Default: 3

#	    For stable works 1-3 threads (?) testing. Recommendation for low LA - (num of CPU - 1).

#

#    MapUpdate.DynamicThreadsCount

#	    Use dynamic threads number for update maps. Count changed in dependent ot server load from 1 to MapUpdate.Threads

#	    Default: 0 (Disabled)

#				 1 (Enabled)

#

#    MapUpdate.LoadBalanceHighValue

#    MapUpdate.LoadBalanceLowValue

#	    Used only if MapUpdate.DynamicThreadsCount is enabled. Fix high and low load value for change dynamic thread num

#	    Default: 0.8 (80%)  /0.2 (20%)

#	    Min:	 0.5 (50%)  /0.0 (0%)

#	    Max:	 1.0 (100%) /0.5 (50%)

#

Some links to the commits would be nice…

Unlike other projects that I won’t name, we have no problems porting good code / ideas / implementations.

– Brian

Hi Brian you can follow https://github.com/mangosR2/mangos and see the project ^^.

this fork of mangos have other ideas like dynamic vmaps and similar, lexic cutter, etc etc etc.

I quickly glanced over that code and I must say I am not impressed. Maybe you achieved better stability but added locking almost everywhere.

I come from mangosr2 for some time and VMSS solved a lot of crash problems on maps,I

it didn’t solved them. Just overrided and hide problem

// shauren: main idea of vmss is to handle segv, segvabrt, etc signals → determine on which map thread it occured and just force restart of that map

i do not have expert knowledge of threaded map update like you probably do, and i mean no offense, but as i read the code, i had the feeling it could be rewritten to be smoother while removing the locking overhead. I fail to see why handling the crashing thread instead of letting them run wild would be bad.

PS: for those who wish to read only topic related commits on mangosr2:

https://github.com/m…5dd91c9cd4579a0

https://github.com/m…e09347649238c02

https://github.com/m…8bec25fb8eafe6f

https://github.com/m…054270ceac0875c

https://github.com/m…e54cefda4ef3237

https://github.com/m…0eb98f79b448d4b

https://github.com/m…569123856baba45

https://github.com/m…7da2f270ee8a2ee

https://github.com/m…6841c92b951a5d4

Are we really having that many problems with maps causing crashes that we’d need something like this?

I mean out of the current 41 backtrace reports, only 3 of them pertain to maps.

@MrSmite – we don’t, but we still need better locking support when it comes to maps.

– Brian