At present, Piwik has two Db "layers" -- one for reports, the other for the Tracker (non-Zend_Db for speed) -- and largely MySQL-ish SQL.
Doctrine has a Database abstraction layer that may help with supporting more database servers (non-MySQL).
Obstacles to adopting Doctrine: - requires php 5.2.3+ (implies raising Piwik requirements) - only supports PDO drivers (which rules out mysqli) - desire for speed vs the overhead of Doctrine's ORM
This is a sign post for future discussion. Closing for now.
Does anyone else think it makes sense to check this one out again? I think this would be a great way to support a range of NoSQL databases.
I think this would be a great way to support a range of NoSQL databases.
I would rather disagree. I think Doctrine ORM would be a too big performance killer.
I think @sgiehl is correct. Additionally, using an ORM won't provide instant compatibility w/ NoSQL (relational databases & NoSQL databases are too different).
I think it is useful here to acknowledge the fact Piwik has different types of persisted data : tracking/raw data, report/processed data and "application" data (users, sites, pdf reports, ..).
Ideally, different types of data require different persisting methods.
I think "Application" data could benefit from being managed by an ORM.