Skip to content

Multiple database and storage engine support #2593

Description

@robocoder

This ticket narrows the scope of changes contemplated in #1368:

  • Zend_Db supported adapters
    • e.g., Postgresql and Mssql
    • NoSQL is out of scope for Piwik 1.x
  • MySQL storage engines
    • e.g., InnoDB
    • possibility of subclassing would allow a Sharding schema
  • Use Zend_Db for the tracker
    • eliminates some redundancy, eg core/Tracker/Config and core/Tracker/Db
    • increases cohesiveness of core/Db and lowers the learning curve for new devs
    • eliminate more require_once in favor of the auto loader everywhere

ToDo:

  • Installation
    • dropdown for schemas
  • Piwik.php:
    • move MySQL-specific bulk loader to Schema/Myisam.php; leave a wrapper behind
  • better support for users with the resources to run db clusters:
    • add Db::factory($dbConfigName); see read vs write, tracker vs reports
    • always use Zend_Registry::get($dbConfigName)->methodName() and remove the plugin helper functions: Piwik_Exec, Piwik_FetchAll, Piwik_FetchRow, Piwik_FetchOne, and Piwik_Query
  • (vipsoft: further scope analysis of current code in trunk)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    EnhancementFor new feature suggestions that enhance Matomo's capabilities or add a new report, new API etc.wontfixIf you can reproduce this issue, please reopen the issue or create a new one describing it.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions