Butting heads with Oracle and Sybase
Microsoft SQL Server 6.0 promises much at a price
War of the roses or terms of endearment? Microsoft's SQL Server 6.0 is the first important result of its divorce from Sybase three years ago. MS SQL Server 6 looks great on paper. It is packed with features, many of which take advantage of NT and Windows features in ways that open-systems database servers cannot. However, no self-respecting IS manager will implicitly trust a product from a vendor about whom jokes like "At Microsoft, quality is Job 1.1" circulate widely, and who has yet to release any product with a proven track record on large-scale hardware.
A new client-server relational database system is coming soon. It has some system management and data distribution features that promise to advance the state of the art for large-scale, enterprise-wide data architectures. It is capable of delivering top-flight TPC benchmark performance results. Yet it runs on a proprietary operating platform, and its interoperability with open systems is limited. What's the vendor -- IBM? Amdahl? Unisys?
Guess again: it's Microsoft. The product is MS SQL Server 6.0 (nicknamed SQL Server 95), and it runs on Windows NT. It went into beta this March, and its release is expected sometime this summer.
SQL Server 6.0 is the first important result of Microsoft's divorce from Sybase three years ago and, unless you count the NT operating system, it's the first truly significant piece of systems software that Microsoft has released in at least that many years. Before 1992, Sybase had been developing SQL Server for Microsoft for its OS/2 1.3 operating system. MS SQL Server has been languishing in the market, largely because that operating system is a orphaned product of another divorce -- between Microsoft and IBM.
Yet the new database is one of the centerpieces of Microsoft's strategy for capturing the hearts and minds of corporate enterprise MIS -- a serious attempt to butt heads with Sybase and Oracle (instead of, say, Sun, HP, and IBM) and to boost NT's legitimacy as a serious server OS.
It's good to be the king
Like many other proprietary products, MS SQL Server 6 has advantages that come from tight integration with the vendor's other products that wouldn't be possible if it were portable. In particular, SQL Server 6's integration with NT gives it advantages in speed, manageability, and fault-tolerance that place it near the top of the heap in those categories.
Many of these advantages result from the idea of multithreading, which Sybase innovated in the late 1980s. Before multithreading, database servers assigned each of their many tasks to a separate operating system process. Unix processes (and those on other operating systems, like VAX/VMS) were overkill for database tasks, because they carried around a lot of information that wasn't really needed. So Sybase took the then well-known idea of lightweight processes, aka threads, and applied them to its database server. Lightweight processes take up less memory, which means that the process scheduler can move them around faster.
The problem with Sybase's implementation of multithreading was that, at the time, mainstream commercial versions of Unix did not support it. Instead, Sybase had to build its own multithreading functionality, so that multiple Sybase threads ran within a single Unix process. The same was true in the previous version of MS SQL Server for OS/2 1.3.
Windows NT, however, manages threads directly. This leads to all sorts of advantages for SQL Server 6. Most importantly, SQL Server can rely entirely on the brains of the NT process scheduler for allocating system resources, such as virtual memory and time slices, and for load balancing among multiple CPUs. The database server does not have to duplicate the scheduler's functionality or, worse, try to outwit it to get the resources it needs for its database threads.
SQL Server 6 can also rely on the underlying operating system to deal with various pathological states properly. For example, one of the most notorious problems with Sybase's multithreading has been in shutting down runaway or "rogue" processes. With SQL Server 6, this is not a problem: an operator can stop the offending process, just as a Unix sysadmin can kill a zombie or a program that goes into an infinite loop.
Similarly, a SQL Server thread that behaves egregiously -- for example, when a bug in some stored procedure generates a bad memory address -- can be terminated without disturbing the database server itself or any other threads. Otherwise, the entire database server would have to be shut down, or the system might even have to be rebooted.
Another benefit of SQL Server 6's integration with NT is its interoperability with other Windows programs through Windows DLLs (dynamically linked libraries). DLLs allow code modules to be linked in and invoked at runtime -- an ability that did not exist in most Unix versions, although it has been added in recent versions of Sun's operating systems and others. The advantage of dynamic linking is that you need not burden a program with lots of extra code that you might need at runtime; also, you can substitute new or different versions of your code modules at any time, as long as they conform to the same interface.
SQL Server 6 lets a database administrator register a DLL to be used as an external stored procedure. This gives database programmers direct access to a wide range of Windows utilities that have functionality encapsulated in DLLs.
Contrast this with the usual way of communicating relational data with external programs -- by saving results in tables and running separate programs that access those tables. At first glance, there isn't much difference between the two methods. But consider that stored procedures in MS SQL Server (as in Sybase SQL Server) can be used as triggers: code that is run when certain database events, like inserts and updates, take place. This kind of event-driven invocation of Windows DLLs lets you, for example, set up the database to send a mail message to a user when an updated value falls above or below a certain threshold.
Another important advantage of SQL Server 6's NT integration is its use of the Windows user interface for a set of management and performance monitoring utilities that are among the most comprehensive ever offered by a database vendor. It is a bit strange to see this type of user interface used for such "industrial" purposes, because of Windows' heritage as a GUI for end-user applications, and because Microsoft's previous network-based systems programs, such as LAN Manager and Microsoft Mail, lacked good management tools.
Innovate, duplicate, and replicate
One of the more interesting management tools Microsoft supplies lets an administrator manage data replication. This leads to the other principal advantage of SQL Server 6: its support for data distribution. Microsoft has raised the technology bar in this area, not by inventing any new data distribution schemes, but by giving customers the broadest choices.
Database replication is a way of allowing multiple servers to maintain identical copies of databases. This can be a good idea for several reasons: you can put identical data on servers that are tuned for different purposes (such as decision support or transaction throughput), and you can asynchronously put data close to users who are in disparate locations on a wide-area network.
In practice, replication turns out to be quite complex and fraught with implementation tradeoffs. Although Oracle 7, Sybase System 10, and Informix OnLine 6 all support replication, they do so in quite different ways.
All three schemes work. But the industry doesn't have enough real-world experience yet to judge which is suited for a given situation, or if other data distribution paradigms would be better still.
Rather than taking a position in this crucial yet so far ill-formed debate, Microsoft has essentially combined the replication techniques of all three of the above database servers under a "publish and subscribe" metaphor, which a database administrator controls with an attractive Windows interface.
The user interface is better than anything else on the market for letting DBAs get the "big picture" of enterprise-wide data distribution schemes at a glance and make changes to them quickly. But it gives up the fine-grained control that, for example, Sybase Replication Server provides by giving access to SQL command strings that implement the replication. Nevertheless, SQL Server 6 could be called the first second-generation replication solution, because it provides a flexibility of replication schemes not seen before and gives DBAs access to that big picture without resorting to external tools (whiteboards, for instance).
Trapped within its fiefdom
Overall, MS SQL Server 6 looks great on paper. It is packed with features, many of which take advantage of NT and Windows features in ways that open-systems database servers cannot. Early benchmark results stress unprecedented value for the money (dollars per TPC-B) on small-scale hardware, such as dual-Pentium machines.
Yet PCs are grossly unsuited for hosting database systems serving large-scale, mission-critical enterprise data. Enterprise databases do not sell like hot cakes at CompUSA or PC Zone. Big databases catch on slowly, relying on large networks of customers, service providers, and third-party ancillary product vendors to survive.
Above all, no self-respecting IS manager will implicitly trust a product from a vendor about which jokes like "At Microsoft, quality is Job 1.1" circulate widely. Microsoft has yet to release any product with a track record on large-scale hardware. It will take time for a database of this importance to catch on.
If Microsoft delivers a quality product, encourages partnerships with resellers, integrators, and independent software vendors, and gets on board with emerging standards such as Tivoli for distributed transaction management, then it may become a serious contender in the database race. Yet its steadfast refusal to join the world of open systems will hurt. SQL Server 6 is a thoroughbred that must run on three legs.
It's more likely that Sybase and Oracle will simply adopt SQL Server 6's innovative features in their next releases -- which will also run on NT -- and their existing customers will wait and upgrade rather than ditch their open systems investments by jumping tracks to a proprietary operating system.
No, Microsoft's true competitor is its old enemy IBM. Once Microsoft demonstrates real hardware scalability, it offers an analog to DB2 on MVS at a price several orders of magnitude lower. Considering SQL Server 6 as else will require the time and faith (and lots of each) of an entire industry.
Bill Rosenblatt is is director of Publishing Systems in the New York City office of the Times Mirror Co. He can be reached at email@example.com.
If you have technical problems with this magazine, contact firstname.lastname@example.org