background preloader

Cache

Facebook Twitter

Vector clock. Vector clocks is an algorithm for generating a partial ordering of events in a distributed system and detecting causality violations.

Vector clock

Just as in Lamport timestamps, interprocess messages contain the state of the sending process's logical clock. A vector clock of a system of N processes is an array/vector of N logical clocks, one clock per process; a local "smallest possible values" copy of the global clock-array is kept in each process, with the following rules for clock updates: Example of a system of vector clocks. Events in the blue region are the causes leading to event B4, whereas those in the red region are the effects of event B4 The vector clocks algorithm was independently developed by Colin Fidge and Friedemann Mattern in 1988.[1][2] Partial ordering property[edit] Vector clocks allow for the partial causal ordering of events.

Properties: If , then Antisymmetry: if , then ¬Transitivity: if and , then or if and , then Relation with other orders: Other mechanisms[edit] Traffic Server Podling Status Page. This page tracks the project status, incubator-wise.

Traffic Server Podling Status Page

For more general project status, look on the project website. The Traffic Server project graduated on 2010-04-21 Traffic Server fills the need for a fast, extensible and scalable HTTP 1.1 proxy and cache. We have a production proven piece of software that can deliver HTTP traffic at high rates, and can scale well on modern SMP hardware. We have benchmarked Traffic Server to handle in excess of 35,000 RPS on a single box. Project Setup This is the first phase on incubation, needed to start the project at Apache. Item assignment is shown by the Apache id. Identify the project to be incubated Interim responsibility Copyright Verify distribution rights Establish a list of active committers Infrastructure Project specific Incubation These action items have to be checked for during the whole incubation process.

These items are not to be signed as done during incubation, as they may change during incubation. Collaborative Development Licensing awareness. Handle 1 Billion Events Per Day Using a Memory Grid. Moshe Kaplan of RockeTier shows the life cycle of an affiliate marketing system that starts off as a cub handling one million events per day and ends up a lion handling 200 million to even one billion events per day.

Handle 1 Billion Events Per Day Using a Memory Grid

The resulting system uses ten commodity servers at a cost of $35,000. Mr. Kaplan's paper is especially interesting because it documents a system architecture evolution we may see a lot more of in the future: database centric --> cache centric --> memory grid. As scaling and performance requirements for complicated operations increase, leaving the entire system in memory starts to make a great deal of sense. Why use cache at all? General Approach to Evolving the System to Scale Analyze the system architecture and the main business processes.

Data model polyglotism. Andrej Koelewijn writes ..

data model polyglotism

REST is about resources. Resource is just another word for object, or record. REST is also about URLs. URLs that identify resources. Just like ids can identify objects or records. REST is a distributed data model There is no denying the fact that REST is based on the central concept of Resources, which are addressable entities that can be manipulated by all components of the communicating network using a standardized and uniform interface. In another related post, talking about the relational data model, he also mentions .. This is why RDBMSes are so great: it doesn’t bind your data to a single application. RDBMS does bind your data to the specific application model. In an earlier post, I had drawn upon some of my thoughts on Data 2.0, as I see it in an application today.

Things are surely moving towards polyglotism in the data modeling world as well. Not all data need a relational model.