Ganglia is a scalable distributed monitoring system for high-performance computing systems such as clusters and Grids. It is based on a hierarchical design targeted at federations of clusters. It leverages widely used technologies such as XML for data representation, XDR for compact, portable data transport, and RRDtool for data storage and visualization. It uses carefully engineered data structures and algorithms to achieve very low per-node overheads and high concurrency. The implementation is robust, has been ported to an extensive set of operating systems and processor architectures, and is currently in use on thousands of clusters around the world. It has been used to link clusters across university campuses and around the world and can scale to handle clusters with 2000 nodes.
FlockDB is a distributed graph database for storing adjancency lists, with goals of supporting:
* a high rate of add/update/remove operations
* potientially complex set arithmetic queries
* paging through query result sets containing millions of entries
* ability to "archive" and later restore archived edges
* horizontal scaling including replication
* online data migration
Non-goals include:
* multi-hop queries (or graph-walking queries)
* automatic shard migrations
FlockDB is much simpler than other graph databases such as neo4j because it tries to solve fewer problems. It scales horizontally and is designed for on-line, low-latency, high throughput environments such as web-sites.
Twitter uses FlockDB to store social graphs (who follows whom, who blocks whom) and secondary indices. As of April 2010, the Twitter FlockDB cluster stores 13+ billion edges and sustains peak traffic of 20k writes/second and 100k reads/second.
The "Clustered Remoting For Spring Framework" (or Cluster4Spring) is alternative implementation of remoting subsystem included into Spring framework.
Clustered remoting scheme
While implementation of remoting in Spring is great, it has several limitations that are quite important and must be taken into consideration when building large enterprise-level distributed system.
Briefly, these limitations relate to the point-to-point model of remoting supported by Spring - generally speaking, the client may use only one instance of remote service. It is obvious that having only such a scheme of remoting, it is hard to develop fault-tolerant systems and implement some kinds of load balancing.
Another feature, which is currently missing in remoting subsystem offered by Spring framework, is lack of the ability to dynamically discover remote services.
The main purpose of Cluster4Spring is to extend remoting system of Spring framework and overcome limitations mentioned above.