Vsync may refer to:
- Vertical synchronization, a feature of analog television
- Vsync (computing), a software system (previously called Isis2) for building distributed computing applications
The Vsync software library (originally released as Isis2) is a BSD-licensed distributed computing library written in C# and callable from programs coded in any language supported on .NET on Windows, such as C#, C++/CLI, F#, IronPython and IronRuby. The system can also be used on Linux systems by compiling it under Mono, which supports C# and IronPython. It provides a wide variety of distributed computing abstractions, including state machine replication, fault-tolerant process groups, atomic broadcast with several levels of ordering and durability, a distributed lock manager, persistent replicated data, a distributed key-value store (also called a Distributed Hash Table or DHT), and scalable aggregation. The system implements the virtual synchrony execution model, and includes an implementation of Leslie Lamport's Paxos Protocol.
Vsync is an object oriented software library, in which the developer uses a local object as an endpoint associated with a fault-tolerant group, and receives events such as notifications of membership changes (joins, leaves, failure) or data updates via event upcalls. If desired, Vsync process groups can be secured. When this feature is employed, all communication within a group is encrypted using AES 256-bit keys and all non-group messages are signed with SHA 256-bit signatures. The required keys can be held in any standard certificate authority and supplied by the application, or can be generated automatically when the group is first created, and stored in the file system by the Vsync library (in the latter case, the file system access control system is trusted to prevent unauthorized key use).
Vsync is actually the fourth in a series of Cornell-developed software libraries for reliable multicast that share many design features. The first was the Isis Toolkit, developed in 1985 and ultimately used in the New York Stock Exchange, the French Air Traffic Control System, the US Navy AEGIS and other settings. Subsequent generations of the technology included the Horus System and the Ensemble System. The Isis Toolkit, introduced the virtual synchrony model, but was coded in C with limited support for more modern programming paradigms. Horus and Ensemble innovated structurally: these systems also offered virtual synchrony, but showed how the protocols could be implemented by composition of microprotocols. Ensemble was written in OCaml and could be formally analyzed using the Nuprl program refinement logic and theorem prover.
Vsync departs from the sequence by focusing on modern object orientation, type checking and modularity features. The system is also targeted at large scale use cases, including scenarios seen in cloud computing systems, where strong consistency might be useful both in the first tier "soft state" layer and in back-end systems. The system was initially released under the name Isis2 in 2013, with periodic updates and revisions since that time. The most current stable release is V2.2.2063; it was released on January 30, 2016. The prior stable release was downloaded more than 750 times.
Looking to the future, the Vsync system is expected to fork. The main Vsync library will continue to be supported and will incorporate a new RDMA zero-copy reliable multicast layer and other RDMA functionality. Meanwhile, work began in 2015 on a new system called DMC (Derecho Multicast) that will be entirely coded in C++ and designed from the ground up around RDMA There had been prior discussion of having Vsync and DMC continue as a single project, but this idea was tabled in August 2015 over concerns that the mix of C++ 11 with C# reflection and polymorphism features would be overly complex and for this reason, unpopular.
The primary author of the system, Ken Birman, made the decision to rename Isis2 as Vsync in the wake of a series of terrorist atrocities by the ISIL terrorist organization during the 2014 and 2015 period. The original Isis2 wiki page was simultaneously changed into a redirection to this page.