Current state of the art distributed SDN controller architectures are insufficient for satisfying tight latency requirements, and they incur more than optimal operating costs. In contrast, Pratyaastha is an efficient and elastic distributed SDN control plane that jointly optimizes both latency and cost. Pratyaastha uses a bipartite graph to reason about the dependencies between SDN application state and SDN switches and find a suitable partitioning of application state. The application state partitions and switches are then assigned to controller instances using a heuristic that solves a variant of multi-dimensional bin packing where the dimensions include both the CPU and memory requirements of the SDN applications. Initial evaluations show that Pratyaastha can yield a 42% reduction in SDN controller operating costs and a 44% decrease in flow-setup latencies.