The product must adapt to escalating data volumes, user counts, and changes in business structure without impairing system performance and usability. This includes adding more dimensions, versions, accounts and so on.
Scenario: A start-up e-commerce company has experienced rapid growth in the past two years, expanding from a local operation to a global entity. The expansion has resulted in an increase in dimensions and active users. This increase is expected to continue in the proceeding years.
Solution: The start-up purchasing a planning solution sitting on top of an elastic computing cloud, allowing it to scale its computing power as its customers grow in complexity. This ability to automatically scale up processing power enables the customer to continue usage of their planning and reporting without major slowdowns.
OLAP systems will slow down when more dimensions are added, as they need to re-calculate on a periodic basis to update themselves. Each dimension added increases size exponentially. For example:
Add just one more dimension:
In this case, the addition of “Project” with 35 members increases the size of the database by 3,400%. You can see how quickly the demand on the database becomes more challenging.
While 393,750 may seem small (it is), many use cases require more dimensions than that. The more you add, even if most of the potential combinations (aka intersections) are empty, it will still have to analyze those cells and will slow down.
OLAP isn't the only game in town for CPM tools. Some are hybrids with relational databases, some use graph databases, others are pure relational. All this means to the user is, different types of additions to the system slow them down in different ways. For example:
Adding users should not slow the system down significantly, nor should processing reports. Most systems should single-thread large report generation, meaning that if a report is taking a long time to run, the rest of the application should run at its normal pace.
As a rule of thumb, if the system is slow during the demonstration, it is probably going to be slow when you add in real data. Most demo systems have a small amount of data in order to make the system appear fast. In practice, most systems are slower once filled up with data, dimensions, and so on.