A Scalable Approach To Real-Time Taxi Ridesharing