Hi kunal, I think we can go further for 2.3 & 4. For 4, I think all functions of IndexServer should be in an individual module. We can think of the IndexServer as an enhancement component for Carbondata. And inside that module we handle the actual pruning logic. On the other side, if we do not have this component, there will be no pruning at all.
As a consequence, for 2.3, I think the IndexServer should provide interfaces that will provide pruning services. For example it accepts expressions and returns pruning result. I think only in this way can the IndexServer be more extensible to meet higher requirements.