Feature #2749
openPerformance: add a message server for events/logs?
0%
Description
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 immediatelycron the message queue asynchronously to perform the work when the system is not used much, for example during the night
Updated by Sven Vanpoucke over 12 years ago
Could you elaborate a bit more on this topic please, it seems pretty interesting.
Updated by Sven Vanpoucke about 12 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 about 12 years ago
- Project changed from Chamilo LCMS Connect to Repository
- Category deleted (
21)
Updated by Stefaan Vanbillemont almost 12 years ago
- Target version changed from 2.1.0 to 55
Updated by Stefaan Vanbillemont almost 12 years ago
- Target version changed from 55 to Backlog (default)