One of the largest, CanadaDrugs.com, has turned to clustering of MySQL databases on Emic Networks EAC (Emic Application Clustering) technology to avoid freezing its rapidly expanding workforce out of their ever-escalating order-processing tasks.
Curtis Anderson, director of IT for the online drugstore, said that the move was prompted about a year ago by bad performance, back when operations were running on a back-end SQL Server database that was connected to a Windows executable client.
"The biggest problem with that application was it was all DCOM [Microsoft Corp.s Distributed Component Object Model]-based," said Anderson, in Winnipeg, Manitoba. "That scales to about 14 people, and then youre in trouble."
With a workforce that was—and still is—growing at the rate of about 10 percent per month, CanadaDrugs.com was in trouble. Anderson doesnt fault Microsofts SQL Server. Rather, he said, DCOM, as a single-threaded model, doesnt handle multiple users with much grace.
"We were running into a lot of deadlock situations, primarily because of clients trying to access" the database, along with separate applications for pharmacy dispensing, CRM (customer relationship management), shipping and billing, he said. "We knew we were having problems with the applications, but this opened doors to putting everything onto one internal system that we could manage easily and centralize."
That central system turned out to be a custom application, PharmacyWire, built by a local company, Metrex Internet Solutions. The application runs on an entirely open-source platform featuring the LAMP (Linux, Apache, MySQL, PHP/Python/Perl) stack and handles the drugstores workflow from start to finish: customer information tracking, order taking, payment information, order filling, pharmacy review and assessment, label printing, and shipping.
The company started with two Emic nodes, "basically as a failover situation," Anderson said, but it quickly became apparent that the load was overwhelming one MySQL server. So CanadaDrugs.com added a third node, which shortly thereafter was followed by a fourth.
The improved performance has enabled the drugstore to keep pace with the growing customer and employee demand. Currently, the system handles in the range of 1,500 to 2,500 transactions per second on IBM Blade server architecture. "It gives us breathing room for performance, so we can handle surges through the day," Anderson said. "It can handle that load without breaking a sweat."
An added bonus of clustering, of course, is the pressure it relieves when it comes to scheduled maintenance. With clustering, a server can be brought out of the cluster and attended to, while the load it carried shifts over to the remaining nodes. EAC handles the shift automatically: As one server disappears, the others take up the slack.
For now, the system is going "great guns," Anderson said, with its ample capacity.
The future holds, unsurprisingly, a new node, Anderson said. EAC can scale to 16 nodes—a comforting thought for the online drugstore, given the facts that drug costs in the United States arent getting more affordable, its citizens arent getting happier with footing the bill and CanadaDrugs.coms growth isnt slowing down anytime soon.