  Big Model analytics tackles the training of massive models that go beyond the
available memory of a single computing device, e.g., CPU or GPU. It generalizes
Big Data analytics which is targeted at how to train memory-resident models
over out-of-memory training data. In this paper, we propose an in-database
solution for Big Model analytics. We identify dot-product as the primary
operation for training generalized linear models and introduce the first
array-relation dot-product join database operator between a set of sparse
arrays and a dense relation. This is a constrained formulation of the
extensively studied sparse matrix vector multiplication (SpMV) kernel. The
paramount challenge in designing the dot-product join operator is how to
optimally schedule access to the dense relation based on the non-contiguous
entries in the sparse arrays. We prove that this problem is NP-hard and propose
a practical solution characterized by two technical contributions---dynamic
batch processing and array reordering. We devise three heuristics -- LSH,
Radix, and K-center -- for array reordering and analyze them thoroughly. We
execute extensive experiments over synthetic and real data that confirm the
minimal overhead the operator incurs when sufficient memory is available and
the graceful degradation it suffers as memory becomes scarce. Moreover,
dot-product join achieves an order of magnitude reduction in execution time
over alternative in-database solutions.
