Here is the issue + patch proposal for the view activity stream http://jira.xwiki.org/jira/browse/XPAS-18
Le 22/02/10 17:30, Ludovic Dubost a écrit : > I agree with both Sergiu and Vincent: > > - it should use the activity stream > - in the future the activity stream should use a queue system to write > it's data (the stats system already does that) > - the stats should be rewritten to aggregate the activity stream > > So I have written an Activity Stream patch to record view events. It > works pretty well, except that I have the same issue than with the stats > with AJAX calls: > > http://jira.xwiki.org/jira/browse/XWIKI-4590 > > It would be really great to have this fixed for 2.2.1. > > For the activity stream patch I would like to propose it for review for > 2.2.1 inclusion too. It's not dangerous as it's behind a setting that is > off by default. > I'll open a jira task soon. > > Ludovic > > Le 22/02/10 09:17, Vincent Massol a écrit : > >> On Feb 22, 2010, at 8:11 AM, Vincent Massol wrote: >> >> >> >>> On Feb 21, 2010, at 11:18 PM, Ludovic Dubost wrote: >>> >>> >>> >>>> Hi XWiki devs, >>>> >>>> We have a project where it is needed to show what users has seen which >>>> page, in addition to aggregate statistics. >>>> >>>> Now there are multiple ways to implement this, namely either using the >>>> Activity Stream module (which records page level edit activity) or to use >>>> the Statistics module (which records aggregate level view activity). >>>> >>>> Which of the two systems would be best to use ? >>>> >>>> >>> IMO, in some near future the Stats module will be rewritten to use the >>> activity stream module and perform computations to store aggregated data. >>> >>> >> Some more details. I believe we have only 2 genera choices: >> 1) Decide to save raw data and then perform any aggregated computations >> (allowing OLAP-based queries, business reporting, data mining) >> 2) Decide to perform aggregation in memory and only save a few metrics >> >> Obviously option 1) is much more powerful and from an architectural POV is >> the best. >> >> For option 1) the main issue is write performance. The solution I have put >> in place in the past for this kind of architecture is the following: >> * Have the application write to a local queue (JMS queue to be standard) >> * Have several physical servers poll the queue and get data from it as fast >> as they can and then save the data in a database different from the main >> application database. Note that the scalability is perfect since servers get >> data from the queue as fast as they can process it but not more and you just >> need to add more servers to get better throughput (in addition the servers >> don't need to be of the same type). >> * Have some separate application querying the raw data database and perform >> computations on it and store the result in different tables/database. >> >> The key point for option 1) is to ensure that the performance or your app is >> not impacted at all by the storage of the raw events. >> >> So we'll need to decide if we want option 1 or 2. >> >> Thanks >> -Vincent >> >> >> >>> -Vincent >>> >>> >>> >>>> In any case, I would like to implement this as a patch to the standard >>>> module with a setting to activate it at a Wiki level. >>>> >>>> My first choice would be to use the Activity Stream module but I see that >>>> we have some code to clean-up the activity stream (is it active ?). I >>>> don't think I would want this data to be deleted. >>>> >>>> WDYT ? >>>> >>>> Ludovic >>>> >>>> >> _______________________________________________ >> devs mailing list >> [email protected] >> http://lists.xwiki.org/mailman/listinfo/devs >> >> >> > > -- Ludovic Dubost Blog: http://blog.ludovic.org/ XWiki: http://www.xwiki.com Skype: ldubost GTalk: ldubost _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

