What data structures would you choose to optimize for both insertions and range-based lookups in Bloomberg's time-series data?