James stood on the precipice of a significant upgrade to his company’s reporting capabilities. Purchasing had cut a deal with the vendor ÜberWarehouse to upgrade their warehouse inventory tracking system from a basic .NET application with limited functionality to a full-blown data warehousing system. He jokingly called it the “Warehousing the Warehouse Project”. He was the only one who found it funny.
ÜberWarehouse wasn’t about to give that upgrade away for free, though. They sent James an invoice that could have easily filled his Yoda piggy bank with all the change from the nickel-and-diming contained within. The total of the invoice was significantly over the budget of the project, and that was a problem. Of particular interest was something ÜberWarehouse called “Memory Database”. The line item listed it as a “required” component, and it came with a price tag of $5,500USD.
James wanted answers from ÛberWarehouse in person, with hopes that he could negotiate the price down to something more palatable. They agreed to send Spencer, their head architect and chief excitement-generator to give James a demo that would knock his socks off.
“Hey there, James! Glad to be here!” Spencer said. He shook James’ hand with the kind of enthusiasm that lead to muscle strains. “So, you are interested in upgrading your ÜberWarehouse solution.”
“That’s right,” James said. “We’re intrigued by your new web component; allowing 20 simultaneous users to run reports against our inventory data is a big win. The thing I’m not so sure about is the price. Our current solution works well enough, and it’s a fraction of the cost. This upgrade easily exceeds our budget. Our total budget is only $6,000, and your ‘memory database’ alone costs $5,500! Could you explain that to me?”
“Oh, sure!” Spencer brushed past James’s uncertainty and whipped out a glossy folder stuffed with marketing materials. “I get this question all the time. My answer is: you get what you pay for, don’t you James? You care about your company, don’t you? Once you implement our upgraded solution, you’ll forget all about the price. It’s that good!”
“Uh huh…” James pushed the folder back. “Could you tell me what this memory database thing actually is? Do we really need it?”
“Do you need it? Do you need it?” Spencer chuckled. “James, my friend, that’s the most important part! Would you rather have a report take 10 minutes to run, or one minute?! Our brilliant Memory Database design gets you the data you want 10 times faster than it does without!”
“That sounds good, I guess…” James mentally noted that waiting even one minute for a report was long. “How does it actually work, though? Why is there such a big time difference?”
Spencer frowned condescendingly, nodded, and smiled in one smooth movement. “Let’s just say in a couple of years from now, you have a lot of inventory updates. You want a lot of inventory updates, am I right? Good for business! So let’s say you have a BAJILLION records. That would be difficult to search, right? So what we do, and this is clever, we copy that important data to its own table, then we add this thing called an ‘index’, which gives everything a unique identifier, and voilà! Memory Database!”
James held a blank stare for a long moment before snapping out of the marketing-induced haze and back to the discussion. “Interesting… but if we have up to 20 users accessing this database at a time, aren’t we going to be stepping on each other’s ‘data toes’?”
“Of course not!” Spencer scoffed. “That comes down to communication, and everyone loves effective communication, right? If you want to run a long report, just let all the other users know you’re taking control of the Memory Database and there won’t be any issues! We even have a button in the user-interface to let people know.”
“Ok… so you said you have a demo loaded with our data, right? Let me try for myself.” James connected and fired up a report with a broad date range that would return roughly 750,000 rows. He sat with Spencer, in absolute silence. 5 minutes and 57 seconds later, he had his report.
“Now, this is just a demo computer!” Spencer reassured him. “Surely your beefy hardware will make it lightning fast!”
While Spencer got defensive, James logged into the back-end database. “Or, we could just do this,” he said. He quickly added a secondary index to the vaunted Memory Database, then ran the same report a second time. It returned in 3 seconds flat.
“Wow!” Spencer shouted in amazement. “You should come work for us!”
“Sure,” James said. “I’ll start working for you right after we finish deploying this upgrade to our environment.”
“Well, I can’t actually hire you… but when do you think you’d be finished deploying the upgrade?” James could see visions of commission dancing in his eyes.
“Never. We’re not buying this. Thank you for your time, Spencer.”