An open source, infinitely scalable Relational Database Management System (RDBMS) | Opensource.com
An open source, infinitely scalable Relational Database Management System (RDBMS)
InfiniSQL is a massively scalable relational database system (RDBMS), composed entirely from scratch (not built upon some other technology). There is reproducible benchmark data described on InfiniSQL's blog proving that it can perform over 500,000 complex, multi-node transactions per second with over 100,000 simultaneous transactions—all on only 12 small server nodes.
The limitation of 12 nodes was budgetary: this is an open source project entirely funded out of pocket, and not part of an institution. If I had access to more servers, I'm positive that scalability would grow much higher. But those kinds of details are on the blog. The bottomline is that this is a very high performance system, and in its infancy.
The only open source software which is remotely similar to InfiniSQL is MySQL Cluster. I believe that InfiniSQL scales and performs better than MySQL Cluster for many operations, especially transactions that contain records on multiple nodes. But, I have done no direct apples to apples comparisons between InfiniSQL and MySQL Cluster and welcome any data to that effect. I may do such benchmarking in the near future, as time allows. The purpose of this article is not to disparage MySQL Cluster (or any other product), but rather to explain the advantages of InfiniSQL, and what sets it apart.
I am a long time Linux user. My first distribution came on 30+ 1.44MB floppy disks from a company called SoftLanding Systems. The Linux kernel was version 0.99 something, and I loaded it on my beige box 80386 system with 4MB of RAM. I had to fiddle with /usr/X11R6/etc/Xconfig to get my monitor to provide a graphical interface (and, I nearly fried it). That's how old I am. I have worked for many years as a sysadmin. Most recently, at Visa Corporation.
There, I was the capacity planner and performance engineer for their online division called CyberSource. I've architected, configured, maintained, and troubleshot very high volume, 24x7, mission-critical environments, where every second of downtime meant many thousands of dollars of lost revenue for our customers. As anybody familiar with complex environments knows, the biggest pain points often come from the backend database systems that handle the transaction and reporting workloads. Traditional database systems have very serious architectural flaws which make them nearly impossible to scale beyond a single server; it's very difficult and expensive to make them continuously available.
I felt that I could do better.
I began to design InfiniSQL as an open source project because I believe it will get the most users, will acquire the best developers, and will grow in time to have the capabilities and features to be the RDBMS of choice for people who only currently use large, expensive, and proprietary systems. That's how Linux grew to displace proprietary operating systems running on expensive servers.
Eventually had to choose between my full-time, comfortable job or following my passion, and in March of 2013 I quit my job at Visa. I just recently began telling people outside of my closest circle of friends a few days ago, because until now the project wasn't in a suitable state for consumption (but it is still in alpha). As Eric Raymond said, "release early, release often."
There are a handful of closed source companies that have features similar to InfiniSQL, so it is comparable in many respects yet superior in other ways to these offerings. InfiniSQL is also not as far along in development. Similar closed source offerings have already received hundreds of millions in funding, enabling them a higher capacity to hire. InfiniSQL's use cases are mainly for high volume data collection, analysis, and transaction processing. If your environment has a mix of SQL and NoSQL, it's very likely that InfiniSQL can be used for both type of workloads. This is because InfiniSQL performs like many fast NoSQL systems, but still speaks SQL and performs transaction processing, unlike NoSQL. In fact, InfiniSQL speaks the PostgreSQL Frontent/Backend Protocol (PostgreSQL client drivers will work with InfiniSQL) because the beauty of open source allowed me to use their open protocol in InfiniSQL. This has saved me time in writing functional, mature, and cross-platform client drivers.
My goal now is to tell as many people as possible about InfiniSQL and invite them to learn and participate in any way they wish. I am looking for co-developers (C++ and Python) and people willing to download and test it. There is over 100 pages of documentation, including a guide on how to configure a Linux x86-64 environment and build, run, and test InfiniSQL. InfiniSQL is also entirely written from the ground up, and it is not based on another product, either open or proprietary. There's already 35,000+ lines of code, and that's just the beginning.