An (n, k) maximum distance separable (MDS) code can be used to store data in n storage nodes, such that the system can tolerate the failure of any (n-k) storage nodes. Recently, MDS codes have been constructed which satisfy an additional optimal repair property as follows: the failure of a single storage node can be repaired by downloading a fraction of 1/(n - k) of the data stored in every surviving storage node. In previous constructions satisfying this optimal repair property, the size of the code is polynomial in k for the high-redundancy regime of k/n ≤ 1/2, but the codes have an exponential size (w.r.t. k) for the practically important low-redundancy regime of k/n > 1/2. In this paper, we construct a class of polynomial size codes in this low redundancy regime.