Patent ID: 8849871

Claim:
A method for performing a join in a data set managed by a relational database management system (RDBMS) coupled to a cluster of nodes, each node configured to store a portion of the data set in non-persistent memory, the method comprising: storing, by the RDBMS, transactional data corresponding to one or more database transactions performed on the data set; determining a snapshot identifier of a query containing the join; estimating a cost of performing the join fully in the RDBMS without performing distributed join operation in the cluster of nodes; estimating a cost of performing the join with the assistance of the cluster by performing at least one distributed join operation in at least one node of the cluster of nodes; and performing the join with the assistance of the cluster when the estimated cost of performing the join with the assistance of the cluster is lower than the estimated cost of performing the join fully in the RDBMS; wherein the RDBMS ensures transactional consistency based on the transactional data when the join is performed with the assistance of the cluster by preventing the cluster from performing distributed join operations on data having a snapshot identifier later than the snapshot identifier of the query.