Extreme Scale Out with IQ 16 SP10 – Shared Nothing Multiplex
For several release cycles, SAP IQ has been on a path to extreme scale out. In its infancy, IQ started out with a single server configuration of its popular, columnar analytics database. As databases and user communities grew larger, IQ introduced Multiplex to support concurrent workloads and high availability. With IQ 15.3, we added distributed query processing (DQP) to allow a single query to distribute across multiple servers. In IQ 15.4, DQP became more intelligent with soft data affinity. Here the query optimizer tracks which Multiplex servers hold which data sets in cache, and assigns query processing fragments appropriately. Servers can operate more frequently on local data without going back to the SAN to reload data from the shared store. IQ 16 SP02 gave us DAS (direct attached storage) cache, which extended main cache on a server with local storage – once again reducing requirements to return to the IQ main store to refresh cache contents. With IQ 16 SP10, the scale out story has a new chapter with IQ Shared Nothing MPP (massive parallel processing).
IQ Shared Nothing MPP is a deployment option for IQ Multiplex. Instead of placing IQ database tables on shared storage, the user can choose to partition and distribute them across local storage attached to each node in a cluster.
IQ can take advantage of data partitioning, where servers operate more independently with reduced contention to a shared store. Another benefit is that fewer secondary indexes will be needed on well partitioned large tables. For even more flexibility, the user can choose to mix and match DAS DBSpaces with shared DBSpaces, depending on their particular data and query profile.
With IQ Shared Nothing MPP, users have an alternative to expensive SAN technology, and the opportunity for improved scalability for very large database sizes.
To read more about SAP IQ 16 SP10 Shared Nothing MPP, consult the New Features section of the user documentation:
Hey, It seems nice. Does this mean that I can put different partition of my table on different servers and I can query that table from any server like normal table.
Does it hold true for UNION ALL views as well?
Table data will be automatically striped across the servers specified in the DAS dbspace. Partitioned tables are striped on partition boundaries while non-partitioned tables are striped on row ranges. Generally you don't need to worry about this placement unless your partitioning column contains heavily-skewed data. The IQ optimizer will generate distributed execution plans that can leverage the DAS dbspace.
Tables in DAS dbspaces are functionally identical to tables in shared dbspaces and can be accessed from any server provided that all of the servers are available.
UNION ALL can be pipelined and distributed in query plans like other operators.