Feature #2749

Performance: add a message server for events/logs?

Added by Laurent Opprecht almost 9 years ago. Updated over 8 years ago.

Start date:
Due date:
% Done:


Estimated time:


The current D implementation has performance issues with stats/events.
Looking at a few performance profiles it looks like events still take a toll on the system with C.
Most notably the main function /sytem profile look-up takes about 80% of total time for events.

Possible solutions

0 confirm performance bottleneck

1 cache system profile / data in an object cache. Would benefit everybody.

2 implement a message server

creates a fast entry point - i.e. load and check as little as possible, authentication is valid
stores the message in a fast message queue - i.e. on disk and/or in shared memory
returns immediately

cron the message queue asynchronously to perform the work when the system is not used much, for example during the night



Updated by Sven Vanpoucke almost 9 years ago

Could you elaborate a bit more on this topic please, it seems pretty interesting.


Updated by Sven Vanpoucke over 8 years ago

In the last few days we have improved the performance a lot on a few queries that are used on each page. But now it seems that the tracking is the biggest bottleneck on each page (because each page needs online tracking / visit tracking). For each event we need at least two queries that receive the event and the trackers. Then we will need at least one more query to add the data to the database. But for example the online tracker uses 3 queries already. I believe this is a very very good solution but i don't know how PHP can work with asynchronous processes because we don't want chamilo to wait for the processing of the trackers. I also think that if this message server is on a different physical server we don't need to wait when the system is not used often due to the asynchronous behavior it should be a continuous server.


Updated by Stefaan Vanbillemont over 8 years ago

  • Project changed from Chamilo LCMS Connect to Repository
  • Category deleted (21)

Updated by Stefaan Vanbillemont over 8 years ago

  • Target version set to 2.1.0

Updated by Stefaan Vanbillemont over 8 years ago

  • Target version changed from 2.1.0 to 55

Updated by Stefaan Vanbillemont over 8 years ago

  • Target version changed from 55 to Backlog (default)

Also available in: Atom PDF