Changes between Version 53 and Version 54 of Notifications


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

--

Legend:

Unmodified
Added
Removed
Modified
  • Notifications

    v53 v54  
    103103=== Project Notifications ===
    104104Project notifications is an umbrella feed which covers several different pieces of information including:
    105  * Welcome messages
    106  * Project News
    107  * Project Milestones
    108  * Private Messages
    109  * Friend Requests
    110  * Forum Threads
    111  * Forums (Any new thread created in the forum)
    112 
     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)
    113112This functionality is currently implemented using the following link:
    114113{{{
    115114http://<project_url>/notify_rss.php
    116115}}}
    117 
    118116The following changes should be made:
    119  * Each item should belong to one or more categories the client software can use to filter on.
    120 
    121 '''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.
    122 
    123 Database queries should be optimized and referenced tables should be converted from MyISAM to InnoDB, whole table locks will cause both BOINC clients and the project website to stall depending on the operation.
     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.
     119Database 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.
     120Preliminary 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.
     121A 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.
     122For 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.
     123Things 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.
     124It is also important to note that the effect of the numbers increase in proportion to the number of machines attached to the project.
     125==== Welcome Messages ====
     126==== Private Messages ====
     127==== Project News ====
     128==== Project Milestones ====
     129==== Friend Requests ====
     130==== Forum Threads ====
     131==== Forums ====
    124132
    125133=== BOINC Action Feed ===