Lacque is yet another implemetation of Google's Chubby clone written in Erlang. Chubby is a coarse-grained lock service system with ultra-high availability and low network traffic, mainly used for BigTable. Apparent characteristics of Erlang makes whole implementation so easy.
- generic TCP and networking BIFs
- +Ktrue option enables users to solve C10K problem without any epoll
- lightweight user-land process enables concurrent programming.
- 1024 processes created very easily
- concurrent contexts and implemented processes easily correspond (OS-enabled pthreading has limitation in #of concurrent contexts)
- Chubby supports keeping TCP session with 10000 clients and processes session-related annoying tasks; while Lacque simply creates 10000 processes corresponding with each session and reading/writing TCP socket, waiting for timeout.
- mnesia: good key-value storage system (in BIF!)
- originally Chubby used BerkeleyDB for its data storage
What is different from Chubby : Disadvantages and disadvantages
- Small code. Easy to understand.
- No clients other than written in Erlang supported yet (if needed, thrift will realize compatibility)
- No Events tested yet.
- No Replication/Master Election supported YET.
- No Failover supported yet.
- Shared Lock is not required.
- No Proxies.
New committers will be welcomed
- person who likes Erlang
- person who likes distributed coordination systems
- googler involved in Chu^H^H^H