Changes between Version 54 and Version 55 of Notifications


Ignore:
Timestamp:
Dec 11, 2009, 11:05:07 AM (14 years ago)
Author:
romw
Comment:

Formatting

Legend:

Unmodified
Added
Removed
Modified
  • Notifications

    v54 v55  
    103103=== Project Notifications ===
    104104Project notifications is an umbrella feed which covers several different pieces of information including:
    105 •       Welcome Messages
    106 •       Private Messages
    107 •       Project News
    108 •       Project Milestones
    109 •       Friend Requests
    110 •       Forum Threads
    111 •       Forums (Any new thread created in the forum)
     105 * Welcome Messages
     106 * Private Messages
     107 * Project News
     108 * Project Milestones
     109 * Friend Requests
     110 * Forums
     111 * Forum Threads
     112
    112113This functionality is currently implemented using the following link:
    113114{{{
    114115http://<project_url>/notify_rss.php
    115116}}}
     117
    116118The following changes should be made:
    117 •       Each item should belong to one or more categories the client software can use to filter on.
    118 ‘’’NOTE:’’’ This whole feature area should be audited.  I would be surprised if 1% of the volunteer population even uses it, after this whole feature is completed 100% of the active host population will be using it.
     119
     120 * Each item should belong to one or more categories the client software can use to filter on.
     121
     122'''NOTE:''' This whole feature area should be audited.  I would be surprised if 1% of the volunteer population even uses it, after this whole feature is completed 100% of the active host population will be using it.
     123
    119124Database queries should be batched and referenced tables should be converted from MyISAM to InnoDB, whole table locks will cause both BOINC clients and the website to stall depending on which operation(s) are in play.
     125
    120126Preliminary investigation reveals this could be a problem area for us, one query is issued to return all the notifications, and then a new query is issued for each notification to get the details.
     127
    121128A better strategy, using the same schema, is to issue a feeler query that’ll return hints as to which batch queries to issue.  Each positive hint will cause a new query to be issued that uses a join to merge all notification records of a certain type with the details of that type.
     129
    122130For instance if a volunteer has 50 private messages the current scheme would result in a minimum of 51 queries issued against the database, the proposed scheme should result in 2 queries against the database.
     131
    123132Things get progressively worse the more engaged the volunteer is, 50 private messages and 10 threads being watched would result in 61 queries issued in the current scheme, while only 3 queries would be issued in the proposed scheme.
     133
    124134It is also important to note that the effect of the numbers increase in proportion to the number of machines attached to the project.
     135
    125136==== Welcome Messages ====
    126137==== Private Messages ====
     
    128139==== Project Milestones ====
    129140==== Friend Requests ====
     141==== Forums ====
    130142==== Forum Threads ====
    131 ==== Forums ====
    132143
    133144=== BOINC Action Feed ===