GitHub – tj/axon: message-oriented socket library for node.js heavily inspired by zeromq
message-oriented socket library for node.js heavily inspired by zeromq
GitHub – tj/axon: message-oriented socket library for node.js heavily inspired by zeromq
message-oriented socket library for node.js heavily inspired by zeromq
GitHub – TheDeveloper/warlock: Battle-hardened distributed locking using redis
Battle-hardened distributed locking using redis.
High Scalability – High Scalability – 42 Monster Problems that Attack as Loads Increase
This is a look at all the bad things that can happen to your carefully crafted program as loads increase: all hell breaks lose. Sure, you can scale out or scale up, but you can also choose to program better. Make your system handle larger loads. This saves money because fewer boxes are needed and it will make the entire application more reliable and have better response times. And it can be quite satisfying as a programmer.
High Scalability – Zen and the Art of Scaling – A Koan and Epigram Approach
Russell (AKA Jak Sprats) has been pondering, considering, and implementing distributed databases for many years. In a recent email conversation he shared 44 of the lessons he has learned from developing the infrastructure for high performance / highly scalable systems. Some are well known, some are debatable, and some obviously result from a deep experience that is worth learning from:
This page is for references to signed quotes of deployments of large triples stores rather than predictions of what some software might scale to
decac – A higher-level assembly language – Google Project Hosting
Deca is a language designed to provide the advanced features of sophisticated, high-level programming languages while still programming as close as possible to the bare metal. It brings in the functional, object-oriented, and generic programming paradigms without requiring a garbage collector or a threading system, so programmers really only pay in performance for the features they use.
This paper discusses the use of formal methods in the development of the control system for the Maeslant Kering. The Maeslant Kering is the movable dam which has to protect Rotterdam from floodings while, at (almost) the same time, not restricting ship traffic to the port of Rotterdam. The control system, called BOS, completely autonomously decides about closing and opening of the barrier and, when necessary, also performs these tasks without human intervention.
Ackley.pdf (application/pdf Object)
Abstract For research insights and development potential,we should explore computer architectures designed to scale indeï¬nitely. Given physical limits, we argue an indeï¬nitely scalable computer should or must (1)reveal
to programmers its component spatial relationships,(2)
forego unique addresses, and(3) operate asynchronously.
The Mongrel2 Web Server Project
Mongrel2 is an application, language, and network architecture agnostic web server that focuses on web applications using modern browser technologies
Fast Web Performance Starts with DNS
A web page is an ecosystem where multiple objects contribute to the web page content, and as a result to its slowness or even unavailability. Some of the slowness can be due to poor server performance but at times is due to DNS related issues.
5 Things That Are Toxic to Scalability
On the performance side the picture is a bit different. By leaving SQL query writing to an ORM, you are faced with complex queries that the database cannot optimize well. What’s more ORMs don’t allow easy tweaking of queries, slowing down the tuning process further.
Patterns For Large-Scale JavaScript Application Architecture
If working on a significantly large JavaScript application, remember to dedicate sufficient time to planning the underlying architecture that makes the most sense. It’s often more complex than you may initially imagine.
A Gentle Introduction to Gearman and its Concepts
Gearman (an anagram for “Manager”) is a system for farming out work units to several different servers (or several processes on one server), allowing the calling code to do something completely different while the task is performed. Gearman is not intended for inter-process communication, but is a way to tell other processes that there are work available, and letting these processes (called workers) grab a piece of work for themselves.
DBMS Musings: Hadoop’s tremendous inefficiency on graph data management (and how to avoid it)
Before we get into how to improve Hadoop’s efficiency on graph data by a factor of 1000, let’s pause for a second to comprehend how dangerous it is to let inefficiencies in Hadoop become widespread.
Nati Shalom’s Blog: Real Time analytics for Big Data: Facebook’s New Realtime Analytics System
This will lead to an architecture for building your own Realtime Time Analytics for Big-Data that might be easier to implement, using Facebook’s experience as a starting point and guide as well as the experience gathered through a recent work with few of GigaSpaces customers. The second post provide a summary of that new approach as well as a pattern and a demo for building your own Real Time Analytics system
A day in the life of a slow page at Stack Overflow
Tuning SQL is key, the simple act of tuning it reduced the load time for the particular page by almost 50% in production. However, having a page take 300ms just because your ORM is inefficient is not excusable. The page is now running at the totally awesome speed of 20-40ms render time. In production. ORM inefficiency cost us a 10x slowdown.
In the context of scalability a good analogy to software system is an enterprise. Assume that you need to design workrooms and production processes that will allow lots of personnel to work efficiently (read concurrently). Will you require all tasks to pass via a single man (logging)? How many toilets you need, and how will you place them (memory management)? Do you want to maintain certain ratio between programmers, testers and managers, or you will leave it to chance (various stages of processing)? The principles are all the same – excessive communications, dependencies, waits and centralization kill concurrency.
Piccolo Distributed Computing Framework
Piccolo is a framework designed to make it easy to develop efficient distributed applications.
In contrast to traditional data-centric models (such as Hadoop) which present the user a single object at a time to operate on, Piccolo exposes a global table interface which is available to all parts of the computation simulataneously. This allows users to specify programs in an intuitive manner very similar to that of writing programs for a single machine.
B2B Applications for REST’s Uniform Contract constraint
Instead of defining a service contract in terms of special purpose methods and parameter lists only understood by that particular service, we want to build up a service contract that leverages methods and media types that are abstracted away from any specific business context. REST-compliant service contracts are defined as collections of lightweight unique “resource” endpoints that express the service’s unique capabilities through these uniform methods and media types.
Writing a PHP daemon application – Simas Toleikis
There is a special group of applications that require a different PHP script execution model. For example:
* A chat server (or any other kind of socket server therefore)
* A HTML5 WebSocket server
* A web crawler, data harvester or any other real-time serviceAll of the mentioned applications need to be run in the background as daemons – something that PHP was never designed/supposed to be good at. The plain C language is a weapon of choice when it comes to writing a daemon implementation, but then again, if the application in question does not depend on high performance and concurrency – PHP can do the job quite well.