acsicuib/YAFS

Service failures

kannonical opened this issue · 3 comments

I want to explore the possibility of measuring the success of services, given a certain number of nodes/links fail due to mobility or according to a distribution. After toying with the deadlines in appDefinition, I realized that the buffer increases to a very high number, which I thought depicts the failure to send messages to certain nodes.
Is there any other way in which successful/failed services can be modeled?

The network buffer is very sensitive a two modelling factors: the message generation rate and the propagation characteristics of the network. In other words, the growth of the buffer is due to the fact that certain links in the network have become bottlenecks.

If you analyze faults in your experiment, you may be interested in maximizing network quality: reducing latency and increasing BW. In this way, there is no bottleneck, the network will be able to serve requests and eliminate them from the buffer.

Thanks a lot for your suggestion.
I have another query related to the older version of YAFS. I can delete it if it is irrelevant now. I am curious why I get the following message when using different trajectory files: Mobile entity: %s without a position !

    ######
    # UPDATING LOCATION of MOBILE ENTITIES
    #
    track_code_last_position = self.get_last_points(sim.user_tracks.df,self.current_step)

    # getting the position of mobile endpoint entities
    mobile_endpoints = []
    code_mobile_endpoints = []
    for ix, code_mobile in enumerate(sim.mobile_fog_entities):
        if code_mobile in track_code_last_position.keys():
            (lng, lat) = track_code_last_position[code_mobile]
            mobile_endpoints.append(np.array([lng, lat]))
            code_mobile_endpoints.append(code_mobile)
        else:
            self.logger.critical(" Mobile entity: %s without a position !"%code_mobile)

    mobile_endpoints = np.array(mobile_endpoints)

Maybe you have a problem with the files that have information about the movements.

There are a thousand ways to include the notion of movement. Basically, this movement reflects the change of a user (request generator) and its position within the topology.
I adapted a project to visualize GPX trajectories called TrackAnimation. In that project the movements are normalized. Thus, in each step frame you have various user movements according with a global view of all of them.
All that information is stored in a dataframe (Pandas) that has this structure:

,CodeRoute,Latitude,Longitude,Altitude,Date,Speed,TimeDifference,Distance,FileName,CumTimeDiff,VideoFrame
0,user_1,41.9230874882779,12.502203541278,0.0,2014-02-01 00:00:00+00:00,0.0,0,0.0,,0,0
1,user_1,41.92211060437628,12.501202524407695,0.0,"0   2014-02-01 00:00:08+00:00

The last field (Frame) is used to get the current position of the users in that point of the simulation.