понедельник, 30 августа 2010 г.

SEDA: An Architecture for WellConditioned, Scalable Internet Services

SEDA: An Architecture for WellConditioned, Scalable Internet Services

Abstract
We propose a new design for highly concurrent Internet services, which we call the staged event-driven architecture (SEDA). SEDA is intended to support massive concurrency demands and simplify the construction of well-conditioned services. In SEDA, applications consist of a network of event-driven stages connected by explicit queues. This architecture allows services to be well-conditioned to load, preventing resources from being overcommitted when demand exceeds service capacity. SEDA makes use of a set of dynamic resource controllers to keep stages within their operating regime despite large fluctuations in load. We describe several control mechanisms for automatic tuning and load conditioning, including thread pool sizing, event batching, and adaptive load shedding. We present the SEDA design and an implementation of an Internet services platform based on this architecture. We evaluate the use of SEDA through two applications: a high-performance HTTP server and a packet router for the Gnutella peer-to-peer file sharing network. These results show that SEDA applications exhibit higher performance than traditional service designs, and are robust to huge variations in load.

четверг, 12 августа 2010 г.

List of important publications in theoretical computer science

List of important publications in theoretical computer science:

# 1 Computability
# 2 Computational complexity theory
# 3 Algorithms
# 4 Algorithmic information theory
# 5 Information theory
# 6 Formal verification

List of important publications in computer science

List of important publications in computer science:

# 1 Theoretical computer science
# 2 Numerical Analysis
# 3 Concurrent, parallel, and distributed computing
# 4 Networks and security
# 5 Computational linguistics
# 6 Operating systems
# 7 Databases
# 8 Information retrieval
# 9 Artificial intelligence
# 10 Machine learning
# 11 Computer vision
# 12 Compilers
# 13 Software engineering
# 14 Programming languages
# 15 Computer architecture
# 16 Computer graphics
# 17 History of computation
# 18 Teaching in Computer science
# 19 Computer science humor
# 20 Collaborative Networks

List of important publications in concurrent, parallel, and distributed computing

List of important publications in concurrent, parallel, and distributed computing with links to original papers.
If no link - you can find document by using Google Academia Search.

Contents
- Consensus, synchronisation, and mutual exclusion
- Fault-tolerance
- Distributed graph algorithms
- Foundations of distributed systems

The Topological Structure of Asynchronous Computability

The Topological Structure of Asynchronous Computability
MAURICE HERLIHY
AND
NIR SHAVIT

Abstract.
We give necessary and sufficient combinatorial conditions characterizing the class of decision tasks that can be solved in a wait-free manner by asynchronous processes that communicate by reading and writing a shared memory.
We introduce a new formalism for tasks, based on notions from classical algebraic and combinatorial topology, in which a task’s possible input and output values are each associated with highdimensional geometric structures called simplicial complexes. We characterize computability in terms of the topological properties of these complexes. This characterization has a surprising geometric interpretation: a task is solvable if and only if the complex representing the task’s allowable inputs can be mapped to the complex representing the task’s allowable outputs by a function satisfying certain simple regularity properties.