What is IonDrive?
IonDrive™ is an extraordinarily efficient database system designed for multi-user environments. IonDrive™ is special because it resolves the problems associated with the "von Neumann Bottleneck." The following paragraphs outline IonDrive™ and offer compelling information for Database Administrators:
What is the "von Neumann Bottleneck?"
Simply put, database retrieval events are limited by the speed at which multi-user traffic is managed. The vast majority (e.g. 99%) of all personal computers and Internet servers are based on a design called the "von Neumann Architecture." The class is closely associated with John von Neumann (December 28, 1903 - February 8, 1957), a principal member of the Manhattan Project who worked closely with Edward Teller. He first postulated the computer model in his 1945 thesis entitled: First Draft of a Report on the EDVAC, which was one of the earliest electronic computers. von Neumann's model has been largely adopted by nearly all contemporary computer hardware manufacturers. However, despite the proliferation of the von Neumann Architecture, it has a fundamental problem: Processing speed is limited by the need for a centralized program to control events and manage information. This "bottleneck" has caused a lot of trouble:
||"Higher level languages were, for the most part, designed to be utilized for the purpose of programming the existing von Neumann style computers. In a very real sense, the entire realm of software has been developed under the umbrella of this architecture and may be aptly referred to as "von Neumann software." Thus, the hardware and software have served to perpetuate each other according to the underlying von Neumann model. One facet of this is the basic view of memory as a "word at a time" kind of device. All of the data, the names (locations) of the data, the operations to be performed on the data, must travel between memory and CPU a word at a time. Backus  calls this the "von Neumann bottleneck." As he points out, this bottleneck is not only a physical limitation, but has served also as an "intellectual bottleneck" in limiting the way we think about computers and how to program them."
— H. Norton Riley (Computer Science Department, California State Polytechnic University)
The problem comes down to this: In a server, the database "service" positioned between the CPU/memory and the outside world controls ALL traffic handled by that CPU/memory. While most applications can live with this architecture, the speed limit becomes especially evident in a multi-user realtime environment: Not only must data be passed a "word at a time," but traffic must also be managed a "user at a time." Even multi-threading does not resolve it — it merely masks the problem by slicing time into increasingly-smaller units.
Nearly all mainstream database programs (Oracle, SQL, MySQL, etc) operate on this basis. Despite the fact that the term "engine" suggests speed, it is nevertheless the same "von Neumann software" lamented above by H. Norton Riley. Database engines are gatekeeper programs (or "services") and actually spend more CPU time managing database connections than performing retrievals. Thus, although the von Neumann architecture looks elegant on a block diagram, it nevertheless imposes a finite set of functional limitations. Until now there has been no effective way to circumvent these limitations.
How Does IonDrive™ Solve The Problem?
Think of a train with passengers on board. By analogy, the CPU manages the train, and the data are passengers getting on and off of the train. In general the CPU does this very efficiently — far more so than any single program could ever achieve.
A traditional database service introduces turnstiles between the passengers and the train, requiring all passengers getting on and off the train to pass through them.
In order to get on and off, passengers must go through the turnstiles one at a time. This process keeps track of who is getting on the train, who is getting off, where they are going, where they are coming from, etc. Unfortunately, it also slows everything down — a lot!
IonDrive™ essentially eliminates the turnstiles. It restores control of the train to the CPU. Each passenger gets on and off the train independently without being burdened by a central control process imposing itself on traffic. Control is managed by replication instead of a central scrutinizer. Thus, removing this imposition speeds everything up — a lot!
How Does IonDrive™ Work?
In real life, the simplest solution is often the best. IonDrive™ achieves its results by eliminating the need for a centralized database service. providing each user with his/her own copy of the software, about 36 kilobytes (instead of megabytes!) per user. This means everything loads quickly, runs at high speeds, unloads automatically, and makes best use of all available resources. Since the software loads by replication, code management is centralized — but operation is dynamic and independent.
Thus, the CPU's role is restored to what it does best: managing its own set of processes. The software once again interacts with the CPU according to the "train schedule." The turnstiles go away, and the requirement for passengers to be managed by an independent gatekeeper disappears as well. Instead, events proceed dynamically — in parallel. Here's a comparison of the two methods:
What are the Advantages?
It would take pages to list them all, but by far the most important advantage is: EFFICIENCY. The efficiency increase is particularly noticeable for database servers and/or any environment providing shared Internet access.
By removing the requirement that a database memory image must be managed by an independent service, functional overhead resources increase dramatically. In practice, database users almost always share the same set of files, so the information being accessed is typically already in cache memory, resulting in greatly-reduced disk access. The net results are more efficient and stable operation, longer machine life — and much higher numbers of concurrent users, with better single-user performance.
What About Security?
IonDrive™ possesses excellent security characteristics. Because the code driving the system is compiled as a DLL (Dynamic Link Library) there is no possibility of anyone on the outside reverse-engineering or "hacking" the database. Security codes can even be changed on a per-event basis if desired. Thus, even if someone manages to acquire an unauthorized security code, it will be obsolete if/when they attempt to use it. It can even be used to lead a hacker to a "dog and pony show" to keep them occupied, while the system sends out a real-time alert to trace the connection — and nail them for good!
How are Files Managed?
IonDrive's file architecture is very simple, requiring only minimal processing to retrieve and format information. Files can be physically encrypted for security in any number of ways. Thanks to the "code-behind" nature of the DLL, decoding is more efficiently performed on the fly by the software itself.
Like all databases, IonDrive™ delivers best results for read-only records. However, read/write capabilities are extremely efficient and episodic update processes allow administratively-controlled access to critical database files. Dynamic updating is also intrinsic to the architecture and is both seamless and invisible. Record arbitration is user-based, resulting in dynamic resource allocation according to the needs of each individual user (something that most SQL-based systems cannot do well). File access can also be "throttled" as needed/desired to optimize performance for high concurrent-user numbers.
Can You Provide a Real-Life Example?
If you'd like to see IonDrive™ in action, we suggest visiting http://www.edconroybooks.com. This client site features a large database and a graphically-intensive environment running on a single Windows server. Hundreds of megabytes of text and many gigabytes of graphic images are all integrated within the same database framework. As this scenario is often regarded by developers as a "worse-case" scenario for most SQL-driven systems, this site demonstrates nicely how IonDrive™ provides exeptionally efficient, robust and reliable database performance on a small, single server. IonDrive™ increases efficiency, improves capacity, and significantly enhances the total user experience.
How Can I Get IonDrive™ on My Server?
IonDrive™ is available only for Windows Server systems. All software coding and development is performed by the developer on a customized, per-client basis, which typically includes back-end programs for maintenance and site-management integration through ASPX. Both runtime and development licences are available. All packages include training, source code, installation, testing, and required functional documentation.
Where Can I Get Additional Information?
Serious decision-makers are invited to send us a message or call 315-331-7466 from 9:00am to 5:00pm M-F (EST).