  We propose capacity-achieving schemes for private information retrieval (PIR)
from uncoded databases (DBs) with both homogeneous and heterogeneous storage
constraints. In the PIR setting, a user queries a set of DBs to privately
download a message, where privacy implies that no one DB can infer which
message the user desires. In general, a PIR scheme is comprised of storage
placement and delivery designs. Previous works have derived the capacity, or
infimum download cost, of PIR with uncoded storage placement and also
sufficient conditions of a storage placement design to meet capacity. However,
the currently proposed storage placement designs require splitting each message
into an exponential number of sub-messages with respect to the number of DBs.
In this work, when DBs have the same storage constraint, we propose two simple
storage placement designs that satisfy the capacity conditions. Then, for more
general heterogeneous storage constraints, we translate the storage placement
design process into a "filling problem". We design an iterative algorithm to
solve the filling problem where, in each iteration, messages are partitioned
into sub-messages and stored at subsets of DBs. All of our proposed storage
placement designs require a number of sub-messages per message at most equal to
the number of DBs.
