Isis2 Cloud Computing Library
Isis2 is a new option for cloud computing that can enable reliable, secure replication of data even in the highly elastic first-tier of the cloud. Isis2
is a project of Ken Birman at Cornell University. Although the system started out as a data replication technology (groups of programs that can share updates), in 2013 Isis2 became much more big-data oriented. In 2014 it evolved again, this time with a focus on leveraging cutting-edge remote DMA (RDMA) transfer capabilities such as Infiniband and Fast Ethernet interfaces with RDMA over Converged Ethernet (ROCE) capabilities. To maximize the payoff for the user, the 2014 technology is also designed to assist you in moving big memory-mapped files around, since more and more applications manage their data in files and memory-map them for speed. In this mode Isis2
is more of a control mechanism, since the data is basically external (we use the term "out of band") relative to the system. The idea is that if our platform can help replicate and copy gigabyte objects without actually touching them directly, the dominant cost will be the actual RDMA copying cost, which of course is a pure hardware speed. You end up with the benefits of Isis2
(strong consistency, fault-tolerance, automated self-management) and yet don't need to pay the high overheads of sending big data objects "through" the platform, which is coded in C#.
The system is open source and open development, and we actually have a very detailed set of project suggestions aimed at students learning to use the system (or even professionals!). Isis2
is solid enough for use in production settings, but obviously we do have a lot of students who are using the system to get hands-on experience with cloud or distributed computing. Don't be shy about posting questions or comments! The project suggestions
page has details.
We are currently at release level V2.2.1809. I've left the last few releases on the downloads page just in case some unexpected issue turns up. In fact the system as a whole has been pretty stable for almost two years now, so always go with the most current release unless you have some kind of problem.
So who might find our work useful? The premise behind this project is that the need for high assurance has never been greater: with the trends towards data centers of all sizes and shapes (ranging from small racks of just a dozen or two machines to massive cloud computing data centers with hundreds of thousands of them), developers of modern computing systems need to target the Web, employ Web Services APIs, and yet somehow ensure that the solutions they build can scale out without loss of assurance properties such as data security (who knows what the other users of the cloud might be doing… or what might be watching?), consistency and fault-tolerance. The Isis2
library was built to help you solve this problem in an easy way, closely matched to the style of development used for standard object-oriented applications that use GUI builders.
One fairly recent push has focused on speed: during 2014 we decided to port Isis2
to a relatively modern API called "verbs" that was originally intended to be very broadly useful, but somehow got an early reputation of being specific to Infiniband (a very high speed interconnect, but used mostly on HPC clusters). Our initial focus has been on porting Isis2
to simply use Verbs with Infiniband and to get the full speed feasible in that configuration, and this has been quite successful although some work remains to be finished as of the date of this edit (April 2014). Then we plan to broaden the solution to work with Ethernet. At that point Isis2
itself will still be coded in C#, a relatively slow language, but will be integrated more and more closely with "fabric-level" data transport solutions that can run at dramatically high data rates. For example, depending on your hardware, we're seeing data movement speeds of 4Gb/s to as much as 10 or 12 Gb/s over a 20Gb/s Infiniband network, and we think this is just the start of a process that should benefit Isis2
users on every kind of network hardware. The only caveat is that obviously you need to work with the Isis2
programmer's API to derive this full benefit.
But that caveat may fade too by late 2014. We expect to be able to integrate most of these features into the network file system, so that you'll be able to benefit from Isis2
without using it as a programmer. We'll explain just what this entails as soon as the solutions are robust enough for general use.
- The project Documentation page has all sorts of materials including video summaries, release descriptions, as and standard written documentation. There are also some self-test modules to evaluate your understanding of the videos, and suggestions for projects that you could do using Isis2.
- The project suggestions page is constantly being expanded. It has many ideas for projects you could do with the system, at various levels of difficulty.
- What's new?
- Isis2 for people who don't know C#
- Java support
For compilation under Linux environment, please see the Compile
page. With proper setup, Isis2 can run on Windows, Linux, Amazon EC2 or Eucalyptus-style virtualization platforms, Azure... you name it!