> On 15 Aug 2016, at 19:11, Sergiu Dumitriu <[email protected]> wrote:
> 
> On 08/15/2016 12:39 PM, Vincent Massol wrote:
>> Hi Sergiu,
>> 
>>> On 15 Aug 2016, at 18:18, Sergiu Dumitriu <[email protected]> wrote:
>>> 
>>> Why does that value have to be stored in the wiki document?
>> 
>> Sure, we could use another store. However the goal of XWiki is also to 
>> provide a generic store which can be used to store metadata (through 
>> xobjects) related to wiki pages. And install count for an extension really 
>> looks like a good metadata candidate for a wiki page. Using another store 
>> would also be more work.
>> 
>> So, I’d prefer if we could find a way to support this use case which seems 
>> legitimate. We have several such use cases, which consist in having some 
>> system user perform modifications to wiki pages:
>> * scheduler which updates scheduled jobs with the last fire time xproperty
>> * this extension scheduler which updates install counts
>> * (I’m sure we have more examples but I can’t find one right now ;))
>> 
>> My personal POV is that long term we should have:
>> * Introduce a proper reserved (you cannot create a user named after it) and 
>> virtual “System” user (and don’t use “Admin” or “superadmin” which are users 
>> which should be used by admins)
>> * Filter out System user changes by default in Activity Stream, History, etc 
>> (with options to display them)
>> * Refactor the Versioning store (and possibly get get rid of JRCS) to have a 
>> scalable system which supports an unlimited number of revisions without 
>> impacting performances
>> * Add an API to merge several revisions into one (this could be useful for 
>> auto save too). This is related to what you called “pseudoversion” too: 
>> http://extensions.xwiki.org/xwiki/bin/view/Extension/XWiki+Publication+Workflow+Application
> 
> I agree, but as you said, this is "long term".
> 
> Perhaps I'm missing something, but I though the count is already stored
> someplace else. Is the scheduler task that updates these counts not
> fetching the data from an external place? What I'm proposing, as a quick
> solution that doesn't require reimplementing the entire storage, user
> management and activity stream, is that instead of getting the numbers
> regularly from another service and storing them in the wiki, just let
> them be fetched directly from there when requested.

I’ve checked the scheduler code and indeed it’s taking the data from ES (see 
http://extensions.xwiki.org/xwiki/bin/edit/ExtensionCode/UpdateInstalledExtensionCountScheduler).

So I guess Thomas is saving the data in XWiki for performance reasons and so 
that we can filter/sort the LT.

So indeed with some good caching what you propose could work.However, as you 
mentioned, we would miss the ability to filter/sort the LT.

FTR and FTM I’ve modified the code to save as a minor edit.

We now need to solve the version scalability problem. Let’s see what others 
think.

Thanks
-Vincent

> Personally, I'd make it a Computed Field, and always get the current
>>> value from an external service. This has the disadvantage that the
>>> livetable can't filter/order by the number of installations.
>>> 
>>> If the cost of fetching data from an external service is a concern, then
>>> add a TTL cache.
>> 
>> Thanks
>> -Vincent
>> 
>>> On 08/15/2016 06:54 AM, Vincent Massol wrote:
>>>> Hi Thomas and all,
>>>> 
>>>> Back from holidays! :)
>>>> 
>>>> I’ve noticed that the new feature of counting installed extensions on 
>>>> e.x.o is having a drawback: it saturates the activity stream, making it 
>>>> very hard to see real edits by users. Every day the scheduler modifies 
>>>> lots of wiki pages to set the new install count. See for example: 
>>>> http://www.xwiki.org/xwiki/bin/view/Main/News
>>>> 
>>>> I think a simple change would be for the scheduler to make modifications 
>>>> as minor edits. This should prevent the edits from being visible in the AS.
>>>> 
>>>> WDYT?
>>>> 
>>>> Now this is going to cause another real issue very soon: pages will soon 
>>>> start to have a lot of revisions and we know this is currently a 
>>>> performance issue. It’s also hiding real edits in the history making the 
>>>> history a bit less clean.
>>>> 
>>>> I guess an option would be for the scheduler to delete the last revision 
>>>> after it updates a page. Although not very nice, it could work for now. 
>>>> WDYT?
>>>> 
>>>> Thanks
>>>> -Vincent
>>> 
>>> 
>>> -- 
>>> Sergiu Dumitriu
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to