background preloader

~.~

Facebook Twitter

LYME (software bundle) The LYME and LYCE software bundles LYME and LYCE are solution stacks composed entirely of free and open-source software to build high-availability heavy duty dynamic web pages. The stacks are composed of: The query and data manipulation language of Mnesia is also Erlang (rather than SQL), therefore a web-application for LYME is developed using only a single programming language.

Interest in LYME as a stack had begun by August 2005,[3] as was soon cited as a high-performance web application platform that used a single development language throughout. Favorable comparisons to other popular stacks such as Ruby on Rails were soon forthcoming. Comparisons to LAMP have also been favourable[citation needed], although some[4] have highlighted the difficulties of porting "SQL thinking" to the very different context of Mnesia A successful user of LYME is the Swedish internet payment-processing company, Klarna, who have built their whole architecture on LYME.

Yaws. Apache vs. Yaws. Apache and Yaws are web servers. How well does apache perform against yaws? The diagram gives the answer. This shows thoughput (KBytes/second) vs. load. Apache (blue and green) dies when subject to a load of c. 4000 parallel sessions. Yaws (red) works well even when subject to high load. The red curve is yaws (running on an NFS file system). What do we measure and how? We use a 16 node cluster running at SICS.

Machine 1 has a server (Apache or Yaws). Interpretation Our figure shows the performance of a server when subject to parallel load. Apache dies at about 4,000 parallel sessions. Which version of Apache was used? We used apache 2.0.39 with the so called worker multi-processing module. Comments I'm speculating here. The problem with Apache is not related to the Apache code per se but is due to the manner in which the underlying operating system (Linux) implements concurrency. These measurements were performed by Ali Ghodsi with a little help from Joe Armstrong. Erlang (programming language) The first version was developed by Joe Armstrong, Robert Virding and Mike Williams in 1986.[6] It was originally a proprietary language within Ericsson, but was released as open source in 1998.

In 2006, native symmetric multiprocessing support was added to the runtime system and virtual machine.[6] A factorial algorithm implemented in Erlang: -module(fact). % This is the file 'fact.erl', the module and the filename must match-export([fac/1]). % This exports the function 'fac' of arity 1 (1 parameter, no type, no name) fac(0) -> 1; % If 0, then return 1, otherwise (note the semicolon ; meaning 'else')fac(N) when N > 0, is_integer(N) -> N * fac(N-1).% Recursively determine, then return the result% (note the period . meaning 'endif' or 'function end')%% This function will crash if something other than a positive integer is given.%% It illustrates the “Let it crash” philosophy of Erlang. A sorting algorithm (similar to quicksort): The following code would sort lists according to length: Integers.

Erlang Programming Language. Erlang -- mnesia. Mnesia A Distributed Telecommunications DBMS Mnesia is a distributed DataBase Management System (DBMS), appropriate for telecommunications applications and other Erlang applications which require continuous operation and exhibit soft real-time properties. Listed below are some of the most important and attractive capabilities, Mnesia provides: A relational/object hybrid data model which is suitable for telecommunications applications. A specifically designed DBMS query language, QLC (as an add-on library).

Persistence. Tables may be coherently kept on disc as well as in main memory. This Reference Manual describes the Mnesia API. All functions documented in these pages can be used in any combination with queries using the list comprehension notation. Data in Mnesia is organized as a set of tables. Type. See mnesia:create_table/2 about the complete set of table properties and their details. This document uses a table of persons to illustrate various examples. Transaction async_dirty ets.