wtorek, 5 lipca 2011

Twitter przenosi się do JVM

Twitter to chyba największa strona napisana w języku Ruby (framework Ruby On Rails), a na pewno największa jeśli chodzi o moc obliczeniową jaką potrzebuje do codziennej pracy. Można powiedzieć, że była oczkiem w głowie programistów Ruby, jako argument, iż język jest dojrzały i bardzo dobry jeśli chodzi o poważne zastosowania. Jednak od jakiegoś czasu ktoś wyjątkowo wytrwale dłubie w tym oku, tym kimś jest nie kto inny jak sam Twitter który powoli przenosi swój kod do języków uruchamianych w JVM.


Wszystko zaczeło się jeszcze w 2010 roku kiedy to Twitter ogłosił, że programiści przepisali w języku Scala silnik kolejkowania oraz magazynowania wiadomości.
W kwietniu tego roku zmieniony został mechanizm składowania indeksów wyszukiwarki, od teraz za indeksowanie odpowiada Lucene dzięki czemu opóźnienie podczas wyszukiwania skróciło się trzykrotnie a przepustowość wzrosła dziesięciokrotnie, front-end wyszukiwarki również został zaktualizowany, od teraz zamiast Ruby On Rails wykorzystywany jest  mechanizm Blender (oparty o framework JBoss Netty).
Od kuchni Twitter do składowania danych używa bazy MySQL oraz rozproszonej bazy danych Cassandry. Do przetwarzania offline, używany jest Hadoop który ciągle zyskuje coraz większą popularność.

Powyższe zmiany w architekturze Twittera mogą świadczyć iż choć Ruby jest już językiem dojrzałym to nie nadaje się do projektów wymagających wysokiej wydajności o skalowalności (szczególnie jeśli chcemy zmniejszyć koszty działania).
Sam Twitter jest również niezłym laboratorium z którego wyników można czerpać garściami, z pewnością polecam obserwowanie dalszego rozwoju akcji.

Źródło:

  1. http://www.infoq.com/articles/twitter-java-use

  2. http://engineering.twitter.com

2 komentarze:

  1. [...] się do JVMSierpień 2, 2011 przez darek | 0 komentarzy Jakiś czas temu pisałem o przenosinach Twittera do JVM. Tym razem prezentuję film z udziałem Raffiego Krikoriana który pracuje w Twitterze. Opowiada o [...]

    OdpowiedzUsuń