  An $(n,k,l)$ MDS array code of length $n,$ dimension $k=n-r$ and
sub-packetization $l$ is formed of $l\times n$ matrices over a finite field
$F,$ with every column of the matrix stored on a separate node in a distributed
storage system and viewed as a coordinate of the codeword. Repair of a failed
node can be performed by accessing a set of $d\le n-1$ helper nodes. The code
is said to have the optimal access property if the amount of data accessed at
each of the helper nodes meets a lower bound on this quantity. For
optimal-access MDS codes with $d=n-1,$ the sub-packetization $l$ satisfies the
bound $l\ge r^{(k-1)/r}.$ In our previous work, for any $n$ and $r,$ we
presented an explicit construction of optimal-access MDS codes with
sub-packetization $l=r^{n-1}.$ In this paper we take up the question of
reducing the sub-packetization value $l$ to make it approach the lower bound.
We construct an explicit family of optimal-access codes with $l=r^{\lceil
n/r\rceil},$ which differs from the optimal value by at most a factor of $r^2.$
These codes can be constructed over any finite field $F$ as long as $|F|\ge
r\lceil n/r\rceil,$ and afford low-complexity encoding and decoding procedures.
We also define a version of the repair problem that bridges the context of
regenerating codes and codes with locality constraints (LRC codes), calling it
group repair with optimal access. In this variation, we assume that the set of
$n=sm$ nodes is partitioned into $m$ repair groups of size $s,$ and require
that the amount of accessed data for repair is the smallest possible whenever
the $d$ helper nodes include all the other $s-1$ nodes from the same group as
the failed node. For this problem, we construct a family of codes with the
group optimal access property. These codes can be constructed over any field
$F$ of size $|F|\ge n,$ and also afford low-complexity encoding and decoding
procedures.
