DataCore has crafted a driver for SQL Server that runs IO requests simultaneously and increases throughput.
The company's parallel IO technology has been shown to be effective in a series of SPC-1 benchmark tests where it is the highest-performing and lowest price-performance shared storage resource tested.
Where a database like SQL Server is used for transaction processing, real-time analytics and similar IO-intensive work, limitations in the way operating systems schedule IO slow it down.
Modern CPUs have multiple cores with each supporting more than one thread. There are two threads per core in Intel's Hyperthreading technology, and its Xeon E7-8870 v4 CPU, for example, has 20 cores and 40 threads.
Multi-threaded applications can have threads execute concurrently, two per core and on multiple cores simultaneously. But SQL Server IO is limited, DataCore says, so that only one thread can read and write data at a time. SQL Server IO requests, despite being concurrent and independent, are processed by the operating system one at a time on a single queue – be it on a virtualized or bare-metal machine. They are serialised and run in a single thread. Other threads must wait their turn so work gets delayed and CPU resources are wasted.
The DataCore driver is called MaxParallel and slots in between SQL Server and the operating system. It enables multiple cores to run SQL Server IO requests simultaneously, parallelising them. DataCore says multiple independent queries and updates running on separate processing cores no longer wait on a single queue; they now access data in parallel without delay.
There are various versions of SQL Server – 2016, 2014, 2012 and 2008 – and they can be running on-premises or in the public cloud. MaxParallel supports them all and doesn't need any code changes. Its accelerative effects vary with the SQL Server versions but still boost the latest edition appreciably.
Joachim Dreher, CTO of Desk Software and Consulting GmbH, a Platinum Sage Partner, provided a canned quote about this, saying: "We tested MaxParallel on SQL Server 2016, not expecting much, since it is already one of the best optimized database solutions in the world. We were really surprised that DataCore improved productivity by over 30 per cent."
With SQL Server 2012, MaxParallel can increase the new orders per minute (NOPM) rate from 1,637.85 per user in a 40-user system to 6,326.425; a fourfold increase, according to a HammerDB test. There was a similar effect with SQL Server 2016.
In an order-entry SQL Server scenario, a 40-user system could have acceptable response times while upping the user number to 50 results in sluggish response. Adding database caching improves things with up to 60 users getting a good response but pushing on to 100 users results in a slow response again.
Adding MaxParallel instead of database caching pushes up the user count to 150 and they get a faster response than before. The tested system (240GB RAM, 44GB database, 16 cores) runs out of oomph at the 200-user level.
The DataCore chart shows these three scenarios, the bottom four lines being the MaxParallel data section.
The software can run in Azure and so users of older versions of SQL Server can ship their applications to the cloud, slot in MaxParallel software, and, DataCore claims, see their database run faster, getting more transactions/minute completed and supporting more users.
MaxParallel is priced per core, sold in 2-core packs (4-core minimum), using the same per-core licensing as SQL Server, and at 15 per cent of the SQL Server recommended retail price.
What is the minimal acceptable server config?
A 2-socket, 4-CPU Windows Server (physical or virtual machine) with 8GB of RAM is the minimum but larger systems with more resources and heavier loads are desirable.
The MaxParallel roadmap is straightforward in concept, with more databases, public clouds and high IO rate apps being targeted for support. Expect the first deliverables here next year.
Note the software can't yet be used with clustered SQL Servers or Always On Availability Groups. That is coming in future releases.
You can try out the software with a 30-day trial available in the Azure Marketplace. ®