QA/Mozmill Test Automation/Dashboard/Roadmap/0.4/Prototype

From MozillaWiki
Jump to: navigation, search

Prototype

Architecture
  • Backend
    • This is still up in the air. Owen is looking into replacing CouchDB with Hadoop. In the prototype CouchDB was used because all the data was already there.
  • CRUD Server
    • Owen is using Django as a CRUD server (Create, Register, Update, Delete). This will allow us to give registered users the option to tag things/comment on them
  • Search
    • Owen used elastic search instead of CouchDB Views.
Elastic Search Benifits
  • Easy Search Syntax
   {
       "from":0,  //Starts at 0
       "size":50, //Returns 50
       "sort":[{"time_end":"desc"},"_score"], //Sorts Results
       "query":{
           "term":{//The "term" prefix searches for an exact match of a key value pair
               "application_name":"firefox"
           }
       }
   }
  • Flexible Queries
   {
       "query_string" : {
           "fields" : ["comments"],
           "query" : "this AND that OR thus",
       }
   }
  • Filters
    • It will be easy to filter any potential issues by fields for Locale and what not
    • Add the following code to any query
   filter" : {
       "numeric_range" : {
           "version" : { 
               "from" : "3.0", 
               "to" : "5.0", 
               "include_lower" : true, 
               "include_upper" : false
           }
       }
   }
Issues
  • No map-reduce
    • Elastic Search doesn't provide a map-reduce function in the same way that CouchDB does. We may need to preform a Map-Reduce directly on the Hadoop cluster and search that (N.B. @Henrik - the score that I was talking about won't work for the problem of counting passes failures per function)


Prototype Diagram

ElasticSearchPrototypeApp.jpg