I opened my mouth at work when I shouldn't, and now I'm writing a function to process server log files: multi-gigabytes of data, and tens of million rows of data. Speed optimization will be key...