Thanks for your reply.
I didn't notice abnormal heap usage during the execution with global_ordinals_low_cardinality, at least no more than global_ordinals, but i'll recheck.
Could you perhaps elaborate then how is it possible for a string field terms aggregation to perform significantly better than its long hash counterpart, considering that long values don't require global ordinals at all?
Thanks in advance