← Back to team overview

maria-developers team mailing list archive

Updated (by Monty): Phone home (12)

 

-----------------------------------------------------------------------
                              WORKLOG TASK
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
TASK...........: Phone home
CREATION DATE..: Wed, 01 Apr 2009, 15:30
SUPERVISOR.....: Knielsen
IMPLEMENTOR....: Bothorsen
COPIES TO......: 
CATEGORY.......: Server-RawIdeaBin
TASK ID........: 12 (http://askmonty.org/worklog/?tid=12)
VERSION........: Connector/.NET-1.6
STATUS.........: Un-Assigned
PRIORITY.......: 60
WORKED HOURS...: 0
ESTIMATE.......: 120 (hours remain)
ORIG. ESTIMATE.: 120

PROGRESS NOTES:

-=-=(Monty - Tue, 09 Mar 2010, 19:25)=-=-
High Level Description modified.
--- /tmp/wklog.12.old.27502     2010-03-09 19:25:56.000000000 +0000
+++ /tmp/wklog.12.new.27502     2010-03-09 19:25:56.000000000 +0000
@@ -1,6 +1,6 @@
-This project is to develop a plugin for the MySQL server that provides
+This project is to develop a plugin for the MariaDB server that provides
 a "phone home" feature.  When this plugin is installed, the database
-server will regularly contact a web service operated by MySQL AB, and
+server will regularly contact a web service operated by Monty Program Ab, and
 upload a bundle of non-sensitive information.  The collection and
 analysis of this information will give MySQL AB useful insight into
 the user base
@@ -32,10 +32,10 @@
 
 Data Not Sent
   Contents or names of any user database
-  Anything that allows MySQL to track down the user
+  Anything that allows MariaDB to track down the user
     if the user doesn't explicitly permit it
 
-What will run at MySQL's datacenter
+What will run at Monty Program's or/and the users datacenter
   simple CGI on Apache
   takes a HTTP REST PUT
   insert received information into a database



DESCRIPTION:

This project is to develop a plugin for the MariaDB server that provides
a "phone home" feature.  When this plugin is installed, the database
server will regularly contact a web service operated by Monty Program Ab, and
upload a bundle of non-sensitive information.  The collection and
analysis of this information will give MySQL AB useful insight into
the user base

Summary of collected information
 how many servers are running the plugin
 - can help estimate total number of running servers worldwide
 what platform & hardware they are running on
 what version and build they are running
 what features are being used

Information sent from each instance
  A unique server identifier
    secure hash of MAC address + listening port
    unique, but doesn't leak customer data
  Processor type, speed, processor count / core count, bitwidth (32/64)
  OS / Distro / Kernel id and version
  Which storage engines are in use
  Number and size of databases (disk space, probably can't for cluster)
  Counts / Rates of I/O activity
  List of loaded plugins
  SHOW STATUS
  SHOW VARIABLES (but not anything that can give away user identity)
    will be a explicit list of what variables will be shown
    gives among other things, the MySQL server version & Server uptime
  (optionally by user) geographic location
  (optionally by user) user information / company name
  (optionally by user) MySQL customer support contract id

Data Not Sent
  Contents or names of any user database
  Anything that allows MariaDB to track down the user
    if the user doesn't explicitly permit it

What will run at Monty Program's or/and the users datacenter
  simple CGI on Apache
  takes a HTTP REST PUT
  insert received information into a database
    database schema is TBD, but not complicated
  Analysis/Reporting/Business Process are TBD

What will run on the users' machines
  Daemon Plugin module
    can be dynamically loaded, or statically compiled
     runs as part of the mysqld process
    daemon plugins have full access to server internals
  Start and use it's own thread
    will not block normal operation
    will yield often
    will hold read mutexs as short as possible
  Loop and delay on an interval (specified by option)
    probably default to be on server restart and about once a week
    randomly spread time to avoid too many calling in at the same moment
  Gather data from internal mysqld data structures
  Convert data into simple text format (human readable)
  Transmit data via HTTP REST POST to one or more given URLs


ESTIMATED WORK TIME

ESTIMATED COMPLETION DATE
-----------------------------------------------------------------------
WorkLog (v3.5.9)