Just a small part of the development area

The details make the difference

At first a statement of defense: No I was not too lazy to write a new blog post in the last few days! But… unfortunately I read the PR guidelines and the Non Disclosure Agreement of Yelp… Yeah, all the interesting stuff, I’m not allowed to publish. What a surprise ;-) But I will try to talk about the information I already received in one of my many interviews and enhance it with the impressions I had until now.

Just a small part of the development area
Just a small part of the development area

Let’s start with a development overview: There are about 250 Developers in (I think) four subsidiaries. I guess about 200 of them are here in San Francisco. The Development Teams are divided into a hand full of Teams like Consumer (Core), Search, Biz (the part for Businesses), i18n (Internalisation), Platform, … Those Teams therefore are subdivided into Sub-Teams, usually consisting of about 5 Devs and aehm… that’s it. Of course there are Product Managers, but one PM usually has more than one Sub-Team. Other than that: Nope, no QA Guys (every Dev writes tests for his own stuff), no Designer, no UX, no Agile/Scrum/Process guy. Therefore exists a Frontend Team. They work side by side with Designers, who a few indeed exist but not directly in the teams.

The development sub-teams get a new feature presented in a Kickoff meeting by a PM. Then they are passionate to make it a good feature, try to understand why it is required and give good feedback. When the feature gets mature enough to implement it, one guy picks it, plans and starts the development. Every atomic task needs to be reviewed by at least one other person and be covered by a level of 100% by automatic tests. This is definitely a good thing as we are coding in python, which is a dynamic language, so tests are the only way to know if something still works after a large refactoring.

When a change is reviewed and approved, the feature branch gets marked as “PickMe” for the next push to production. If it got picked, it is merged together with all the other picked branches and the most recent version of the production code. Of course, this potential new production version needs to be tested on an environment which is similar to the production environment. All push communication happens on a huge  IRC channel by the way.

More to come, when I know what I can publish without being a whistleblower. Stay tuned…

2014-09-04 10.09.10

So many new things to learn

What happened the last four days was simply overwhelming! I could make ten blogposts just from the experiences I already had. But let’s continue where I left off.

After lunch I had a deeper look into the bootstrap documentation, which is just huge. There is so much stuff, you have to know. Fortunately I’m no complete new beginner in terms of I already know how to use git and the basics of python, which is the main language at Yelp. So I just have to learn all the new processes, the architecture, the people, the american keyboard schema, the build process and many many many many things more. A lot of the 90 Interns(!!!) Yelp has this year, have no experience at all and are standing in front of the Mount Everest of new things.

Women wearing  traditional Bavarian Dirndl pose with beer during 176th Oktoberfest in MunichOne thing I also have to (and want to) learn, is the american culture… I did something wrong on my first day. Everybody get’s introduced by his mentor with an email to the team. The usual introduction mail contains a picture of the mascot of the local sports team, the new guy is from. As my mentor did not find a picture of the mascot from bayern münchen, he did not sent a picture. So, I answered to everybody, that mascot (actually a bear) is so boring, nobody knows about him. But everybody knows the oktoberfest and included a picture of two women in Dirndls having a Mass Beer.
Later that dad, the director of development replied, that I should be more “sensible” what pictures I send around. Maybe somebody finds “uncomfortable” about those kind of pictures.
Of course I apologized in person and promised to avoid those pictures in future. That’s really something I was not thinking about. But in America, things are a bit different.

Wednesday was mostly more of bootstrap meetings and trying to make something productive but actually reading the docs. The teams don’t do pair programming. So all of the knowledge transfer happens in meetings and even more in documentation. Yeah… There is much of it.

After work, all interns went to a cable car tour, grabbed some burger at In-N-Out and had them at the beach with a nice view to Alcatraz and the Golden Gate Bridge. This event was guided and sponsored by Yelp! The YIP (Yelp Intern Program) Team really does a great job to help us getting started in San Francisco! Next week we gonna visit a baseball match. I’m definitely looking forward for it!
2014-09-03 18.37.122014-09-03 19.44.48

Oh… as we already talking about the topic! There is sooooo much free (and mostly healthy) food!

2014-09-04 10.09.102014-09-03 09.54.09

There is even a beer tap for parties
2014-09-04 10.09.26


Oh and every Friday, we get a free lunch for engineering and some external guy is presenting something. There were talks from the people who invented MySql, Python, … This friday we got Barbecue and the inventor of CockroachDB presented his masterpiece. Afterwards it was time for beer, even more snacks, kicker and billard. :-)
2014-09-05 11.48.57 2014-09-05 17.45.37


2014-09-02 12.38.35

Let’s get this party started…

As I'm also here in the US to improve my language skills, so I decided to write some blog posts in english if I'm in the mood for it.

Me in San DiegoFirst things first: I had a great roadtrip on the US Westcoast. The stops were in Las Vegas, Death Valley, Yosimite National Park, San Francisco, Santa Cruz, Santa Barbara, Venice Beach (Los Angeles) and San Diego. That’s quite a lot for only two weeks time! It was exhausting but also so nice, too! Thanks for my mates Lisa and Andres for making this amazing trip possible! Most of the Pictures you find here. But one I provide exclusive to my readers here on this blog ;-)

Thats the view from the top (25th) Floor of our Hotel Apartment.

But now to the interesting facts. Today was my first day at Yelp! Oh boy, I was so under tension and so excited. But I was also good prepared. Yelp had provided me a lot of information in the last few weeks. They sent me e-mails with things to when I arrive. They helped me find a good Apartment. They even told me the directions from my home to the workplace and what are common clothes at work. And many many more. I always had three emails or more each week since I agreed on my contract. Very impressive!

So I arrived at 9:30 in the lobby of this high riser, right in the financial district of San Francisco. The Security checked my Passport and requested my a elevator to the lobby of Yelp. There I got a photo-ID badge with included NFC Chip to open the doors. Then I got picked up by a nice lady of the internship team, to show me every floor and all facilities. The tour ended at my new desk where she introduced me to Anthony, my Mentor.

At my Desk I found a pretty decent hardware setup:

15" Macbook Pro Retina, zwei Monitore und eine Nerf Gun
15″ Macbook Pro Retina with SSD, two external Displays and a Nerf Gun

Additionally there were some other Goodies like a Yelp T-Shirt, a bag and branded gloves. I also got a welcome letter with passwords and what to do first. And, as I would learn over the day, which was just the beginning of a whole lot of documentation for getting started. But no time to read only one line of it: The first meeting is approaching! It was a very good information meeting about the basics of Yelp and and the development department. I was there together with all the other newbies of the day. Unfortunately I can’t remember how many people were with me in this meeting, but definitely more then 5! A whole lot of people when you hear, that next week already the next newbies arrive. But maybe those are normal figures for about 250 employees in development alone. (And a Dog called Darwin)

The bootcamp itself was very good because it contained all the information needed, compressed in one hour. That is something that is also reflected in the documentation. It is just detailed enough to show you the point and not bloated with information about stuff that could also be interesting.

2014-09-02 12.38.35But then was still not the time to get my hands dirty. Lunch Time! Today all Interns went together to a sandwich restaurant a few streets away and came back to eat it together in the “all hands” area. There are a lot of interns currently at Yelp…

Pew, … I still got so much stuff to tell! But it is already after midnight. I promise to continue this post in the near future. Apparently not tomorrow because we (Interns) go on a cable car ride and having burger after work. Yeay!

Las Vegas Sign in Airport

Nächster Halt: Vegas

So, da sitz ich nun im Flieger… Krass!

Aber vielleicht eins nach dem anderen: Nachdem Visum abgehackt war, habe ich mich um die Unterkünfte gekümmert. Ich brauche ja in San Francisco ein Bett um mich nach einem harten Tag wieder ausruhen zu können. Und meine Wohnung in München ist zu teuer um sie leer stehen zu lassen. Um die Wohnung in SF hat sich netterweise eine Agentur gekümmert, die von Yelp gezahlt wird. Ich habe dort eine Wohnung in zentralster Lage, die ich mir mit drei anderen Yelp Interns teile. Sehr geil, wäre da nicht der Preis: $2000!!! Für ein Zimmer! Im Monat!!! WTF! Naja, in den USA ist eben alles etwas größer.

Meine Wohnung in München habe ich auch vermietet. An die zwei Paulos aus Portugal. Beide machen einen guten Eindruck. Ich bin guter Dinge, dass sie gut auf mein Hab und Gut aufpassen.

Wow, war ich die letzten zwei Wochen aufgeregt! Ich hatte aber keine Angst oder Zweifel. Ganz im Gegenteil, ich hab mich gefreut und wollte, dass es endlich los geht. Aber in meinem Kopf war zu der Zeit wenig Platz für etwas anderes. Außer vielleicht für meine wunderbare neue Freundin Mara. Wie das Schicksal doch immer spielt: Da ist man nicht mehr auf der Suche nach einer Dame, prompt findet man ein ganz tolles Exemplar.

Mara hat mir auch sehr geholfen meine Aufregung hin und wieder zu vergessen. Genauso wie meine Freunde, die ich in den letzten Tage alle noch einmal sehen wollte. Man Leute, ihr seid der Wahnsinn! Ich hätte nie erwartet, so viele gute Wünsche zu bekommen und noch mal so eine großartige Zeit mit euch zu haben! Ihr seid der Wahnsinn! Ich werde euch vermissen!

Wie gesagt: gerade bin ich im Flieger Richtung. Er fliegt von Frankfurt Richtung Seattle und bin gerade über Grönland. In Seattle steige ich um in einen Flug nach Las Vegas, wo ich Andres und Lisa treffe. Mein Flieger hatte anderthalb Stunden Verspätung! Hoffentlich klappt alles mit meinem Anschlussflug!

Las Vegas Sign in AirportIn Vegas startet mit Andres und Lisa unser Road Trip an der Westküste. Also erstmal Urlaub, bis die Arbeit los geht. Ich freue mich riesig darauf. Das wird bestimmt eine tolle Zeit!

Eine kleine Randnotiz: Wir leben schon in einer bekloppten Zeit! Hier hat jeder einen IPad großen Bildschirm vor sich, schaut irgendwas, ich hab noch zusätzlich ein Notebook, viele fummeln an ihren Handys rum. Überall flimmert es. Und das in einem fliegenden(!!!) Metallklumpen über dem ewigen Eis Grönlands. Ach und jetzt wird auch noch Wein serviert… Irgendwie bescheuert, oder?

Yelp Logo

Yelp! – mein Praktikum im Silicon Valley wird wahr!

TLDR: Mein Traum wird wahr! Ich geh ins Silicon Valley um dort zu Arbeiten!

Was bisher geschah:
Schon als kleines Kind habe ich vom Silicon Valley gehört. Der Nabel der IT Welt – dort wo die Technologien von morgen entwickelt werden. Damals war das für mich noch alles sehr abstrakt und ich habe mir vorgestellt, dass da wirklich alles aus Silicon sei.

Naja irgendwann habe ich dann herausgefunden wo dieses ominöse Silicon Valley liegt. Nämlich an der Ostküste der USA in und um San FranciscoSilicon Valley Map

Dort sind die Hauptsitze aller IT Firmen, die aktuell Rang und Namen haben. Google, Apple, Facebook, Twitter, … Das ist vor allem deswegen so, weil sich dort eine Startup Kultur entwickelt hat, die es auf der Welt nirgendwo ein zweites Mal gibt.

Die Faszination dieses Fleckchens Erde hat sich also für mich gehalten, ist sogar immer weiter angewachsen. Da ich ja ein spontaner Mensch bin, hab ich also ohne lange zu überlegen, mich dazu entschlossen mal zu schauen ob ich dort ein Praktikum bekomme. Das war im Sommer letzten Jahres (2013). Ich habe mich bei den 17 für mich interessantesten Firmen dort beworben und leider reihenweiße Absagen bekommen. Zumeist mit dem gleichen Inhalt: Die Visas für dieses Jahr sind leider bereits alle vergeben, bitte probieren sie es nächstes Jahr wieder.

Also habe ich mich schlau gemacht, wie das mit den Visas läuft. Der Arbeitgeber ist dort in der Regel für die Visabeschaffung zuständig. Für ein Praktikum benötige ich ein J-1 Visum und jedes Unternehmen hat nur eine begrenzte Anzahl an Visas zu vergeben. Sind die aufgebraucht, kann man es noch über eine Tombola (ist es wohl im wahrsten Sinne des Wortes) versuchen … oder es gleich bleiben lassen, weil die Chancen wohl extrem gering sind.

Gleichzeitig habe ich versucht alle Register zu ziehen. Ich habe quasi jeden gefragt, der da schon mal hätte sein können ob er jemanden kennt, der mir helfen könnte. Am interessantesten waren Torsten Oelke vom You Is Now Incubator, der gerade mit Philipp Rösler in der Deutschen Delegation das Silicon Valley bereist hat und Andre Stark, der Geschäftsführer von AutoScout24. Andre hat mich mit Andreas Lieber – einem Bekannten bei Groupon – in Verbindung gebracht. Bei Groupon hatte man zwar kein Interesse an Praktikaten aus dem Ausland, aber Andreas konnte mir bei vielen Fragen Licht ins dunkel bringen. Ich bin allen riesig dankbar Ihre Hilfe!

Naja gut, habe ich also die Zeit bis Jahresende verstreichen lassen und es dann erneut probiert. Ich habe mich wieder bei einigen Firmen beworben, aber leider teilweise (bis heute) gar keine Antwort erhalten. LinkedIn hat sich recht schnell bei mir gemeldet und mich zum Telefoninterview geladen. Da die Ostküste der USA von der Zeit 9 Stunden hinten dran ist, war es also für mich schon am Abend und für den HR Mitarbeiter, das erste was er an dem Tag getan hat. Ich war extrem aufgeregt… Zu Recht! Die technischen Fragen, die mir gestellt wurden, waren schon allerhöchstes Niveau! Lange Rede, kurzer Sinn: Ich habs vergeigt!

Noch am selben Abend hatte ich aber noch ein anderes Skypeinterview ausgemacht. Mit Malea von Yelp! Inzwischen war es ungefähr 23 Uhr Deutscher Zeit. Wieder wurde ich über eine Stunde ausgequetscht. Aber dieses Mal haben mir die Fragen besser gelegen. Auch auf sehr hohem Niveau, aber praktischer! Über Dinge die man im Programmieralltag wirklich braucht, nicht wie das ARP Protokoll funktioniert.

Am nächsten Tag hatte ich dann wie erwartet eine Absage von LinkedIn. Aber auch glücklicherweise eine Einladung zum nächsten Interview mit Yelp. Dieses mal sollte mich ein Techi ausquetschen. Also habe ich mich wieder aufgeregt Abends vor den Rechner gesetzt und habe mich über Skype ausquetschen lassen. Was ich nicht erwartet habe, aber inzwischen echt eine nette Sache finde: Ich sollte über coderpad.io livecoding machen. Mir wurde also ein Problem gestellt und ich sollte eine Lösung programmieren. Coderpad ermöglicht es, dass mein Gegenüber in Echtzeit gesehen hat was ich eintippe und wir konnten den Code auch direkt ausführen und testen.

Es folgten noch mehrere solche Interviews. Bei Yelp waren es insgesamt sieben(!!!) Stück. Teilweise war es einfach nur nervig. Schließlich habe ich ja auch noch einen Vollzeit Job und ein Studium bei dem ich in der Zeit viele Prüfungen geschrieben habe. Dann wollte Malea noch ein paar mal mit mir telefonieren um grundlegende Dinge zu klären, bis ich dann endlich die Zusage bekommen habe! Das klang dann irgendwie alles viel zu gut um wahr zu sein. Ich kann selbst entscheiden wann ich komme, wie lange ich bleibe und wo ich wohne. Yelp kümmert sich um die Beschaffung des Visas, sie haben eine Agentur die mir Wohnungsvorschläge schickt und was sie noch so alles haben klang auch unglaublich: Filmabende, Coktail Happy Hours, Ausflüge, 5 Sterne Köche für die Mittagspause, ich werde als Praktikant voll im Hauptteam mitarbeiten ach und das Gehalt: Ich konnte es gar nicht glauben wieviel die an Gehalt zahlen!

So und da stehe ich nun: Inzwischen habe ich auch meine Zusage gegeben. Los gehts im September. Wie lange ich bleiben werde, weiß ich noch nicht. Auf jeden Fall kann ich es kaum erwarten! Ich würde am Liebsten sofort in den Flieger springen und anfangen!

Productivity Summary

Das Komische an der Produktivität

Anstoß dieses Blog Eintrags war einmal mehr ein hervorragender (weil auf den Punkt gebrachter) Blogeintrag von Scott Hanselman: http://www.hanselman.com/blog/ProductivityVsGuiltAndSelfLoathing.aspx

Die Tipps aus dem Absatz “Measure, then Cut”, kannte ich schon und habe vor einigen Monaten Rescue Time auf meinem Arbeitsrechner installiert. Inzwischen denke ich relativ representative Ergebnisse zu haben, die ich aber diese Woche zum ersten Mal ausgewertet habe. Der Grund warum ich noch nicht früher Auswertungen gefahren habe, war Angst vor den Ergebnissen. Immer wieder ertappe ich mich selbst auf facebook, Spiegel Online oder bei anderen Dingen, die ehr der Zerstreuung dienen. Desto mehr haben mich die Ergebnisse überrascht:

Ich meine 68% produktive Zeit ist viel mehr als was ich erwartet hätte.

Entscheidend ist natürlich wie viel Zeit ich mit was verbracht habe:

Wie man sieht kommt bereits an zweiter Stelle E-Mail! Das überrascht mich auf zwei unterschiedliche Weisen:

  1. Das E-Mail so einen großen Platz in meinem Arbeitsleben einnimmt
  2. Habe ich E-Mail als neutral eingestuft. Somit zählt es nicht auf mein Produktivitätskonto ein.

Aggregiert nach Sehr produktiv, produktiv, neutral, störend und sehr störend schaut die Verteilung folgendermaßen aus:Zeit nach Produktivitätskategorien

Very productive sind für mich die Dinge, die direkt mit meinem Jobprofil zu tun haben: Also Software Entwicklung und System Operations. Alles andere habe ich “nach bestem Gewissen” klassifiziert.

Wieder fällt der große neutrale Block ins Auge, was zum Großteil eben E-Mail ist. Zum anderen, dass sich Very Distracting mit Productive etwa die Waage hält. Also wenn ich Zerstreuung suche, dann richtig (Facebook, Spiegel Online) und nicht technische News Seiten wie Heise.de, Winfuture, etc. die ich als Distracting gekennzeichnet habe.

Was lernen wir daraus?

Offensichtlich ist, dass ich zu viel Zeit mit E-Mails verbringe und genauere darauf achten sollte ob diese Zeit tatsächlich notwendig ist.
Viel wichtiger für mich als Menschen ist aber die Erkenntnis, dass ich mich nicht schuldig fühlen brauche weil ich mal Zerstreuung. Offensichtlich scheint die Menge noch im Rahmen zu sein. Ein Großteil der Very Distracting Zeit ist sicherlich auch in der Mittagspause oder nach Feierabend entstanden (RescueTime hat keine Anbindung an Toggle, welches ich als Timetracking Tool verwende).

Ich habe noch viel weiter kleinere Erkenntnisse gewonnen. Zum Beispiel, dass ich heraus finden sollte warum ich Nachmittags produktiver als Vormittags bin (E-Mail?). Ich habe jetzt die Bestätigung Montags deutlich produktiver zu sein als Freitags. Und: Ich verbringe durchschnittlich nur etwa 3 1/2 Stunden am Tag an meinem Rechner. Wobei dies natürlich auch dem geschuldet ist, dass es Teil meines Jobs ist zu Kollegen zu gehen und mit ihnen Lösungen zu finden, bzw. PairProgramming bei der Software Entwicklung.

Jedenfalls kann ich nur jedem der sein “Getting Things done” verbessern möchte, empfehlen dieses oder ähnliche Tools zu installieren. Man kann auch seine Selbstverbesserung noch optimieren, indem man weiß wo es am meisten Zwickt! Vor allem aber sollten man sich keinesfalls selbst schuldig fühlen weil man das Gefühl hat selbst nicht produktiv zu sein. Oder zumindest nicht so produktiv wie Andere. Jeder Mensch nimmt sich regelmäßig zu viel vor und muss Deadlines verschieben oder Dinge komplett sein lassen. Überstunden zu schieben oder sich selbst Vorwürfe zu machen bewirken nur, dass man noch unproduktiver wird, weil man nicht klar im Kopf ist!


Stell dir vor du hättest unendlich viel Urlaub…

Stell dir vor du fragst dein Urlaubskonto ab und siehst folgendes:

unlimited vacation


Klingt gut, oder? Denkst du jetzt so was wie: Ja aber dann würde doch gar keiner mehr arbeiten? Habe ich auch im ersten Moment. Aber das ist eine veraltete Denke, dass man die Menschen mit Zuckerbrot und Peitsche zur Arbeit zwingen muss und sie ansonsten nur faul rum sitzen. Diese Menschen gibt es natürlich aber es gibt auch die Menschen, die etwas bewegen wollen. Die aus freien Stücken und mit Leidenschaft zur Arbeit gehen. Ich verweise hier noch einmal auf die X-Y-Theorie von McGregor. Wer also Menschen anstellt, die ihre Arbeit gerne tun, dürfen – nein müssen! – auch wie Erwachsene behandelt werden! Keine Vorschriften, wo sie nicht unbedingt notwendig sind.

Dass diese Aussage auch auf die Urlaubsregel zutrifft und sogar die Produktivität steigert, zeigt folgender Artikel: Why unlimited vacation ensures productivity


On my GitHub Account I uploaded a project of me. The idea was, to have a something like a Ramdisk but with more comfort. A ramdisk is something like a virtual hard drive, which all of the stored files are only stored in memory. But – as you probably know –  every time you reboot your PC all the data in the memory are lost. So always after a new boot, you have to copy the files to the ramdisk.

With the cachedrive I want to solve this issue and took another approach. I wrap a real physical harddrive with a caching layer. So every first read to a file is as slow as your harddrive is. But the data is cached, so every other access to that file is very fast, because the data is read from memory.

Technically I work on the user mode filesystem layer, like for example Antivirus applications do. Because this layer has direct connections to the Windows Kernel, it is written in unmanaged code. To get access from C# I used the Dokan.NET Library from Hiroki Asakawa.

Actually the project is not finished. I proved that it could work, than I lost the motivation… Mostly there are some bugs waiting for fixing, functional “it should work”. A new version of the Dokan.NET Library is released and should be used.

Please, please, please give me feedback and I would be very glad if you fork the project and make some improvement.
Maybe I get rich very soon, quit my job and have the time to resume development.

Cachedrive on GitHub by Sebastian Müller

Hadoop, Cassandra, MongoDB – Ein Zwischenbericht

Ich habe mich die letzte Zeit viel mit Datenbanken beschäftigt, die mit richtig viel Daten (BigData DBs) umgehen können. Ich möchte mal kurz zusammen schreiben, was ich bisher herausgefunden habe:

scaleArbeitet man mit großen Datenmengen, sind die klassischen, relationalen RDBMS gänzlich ungeeignet. Das ist wohl die wichtigste Erkenntnis, die ich aus meinen Experimenten gezogen habe. Die Ursache ist ganz einfach: Relationale Datenbanken skalieren sehr schlecht. Irgendwann kann man nicht mehr noch bessere Hardware in den Server stecken (ScaleUp), sondern muss die Last auf mehrere Server verteilen (ScaleOut). RDBMS bieten hier nur die Möglichkeit der Replikationen (1-Master, n-Slave Systeme), wobei Schreibzugriffe zumeist auf dem Master ausgeführt werden und dieser somit zum Flaschenhals wird.

Distributed Databases

Was man braucht sind also echte verteilte Datenbankserver. Entweder managed oder unmanaged. Managed heißt, es gibt eine Software, die die Verwaltungsaufgaben übernimmt. Verwaltungsaufgaben ist z.B. neue Server zu registrieren, sicherstellen, dass alle Daten redundant vorhanden sind, Jobs verteilen. Hadoop wäre z.B. so ein managed System. Die Verwaltungsaufgaben übernimmt der Zookeeper aus dem Hadoop Ecosystem.
eventualCassandra und Mongo sind zwar beide unmanaged, aber trotzdem unterschiedlich. Während Cassandra das Gossip Protokoll nutzt um sich selbst zu managen, verlässt sich Mongo ganz auf den System Administrator. Über das Gossip Protokoll unterhalten sich die Server untereinander. Kommt z.B. ein neuer Server hinzu, muss nur ein weiterer Server davon wissen, der sagt es dann wieder einem anderen Server und der wiederrum sagt es auch wieder allen Servern die er kennt. So kommt es allerdings bei jeder Änderung zu kleinen Verzögerungen, die aber berechenbare Dauer haben und es ist sichergestellt, dass die Infos aber irgendwann bei allen Servern ankommen. Das nennt man dann Eventual Consistency.
MongoDB macht es sich da einfacher. Mongo verlässt sich nur auf das was in den Config-Dateien steht, Writes finden alle gleichzeitig auf allen Servern statt und Loadbalancing muss über spezielle Hardware geregelt werden.

BigData –> NoSQL (Not only SQL)

nosqlInteressant finde ich, dass wenn man über BigData Datenbanken auch automatisch von NoSQL Datenbanken spricht. Es ist also nicht nur die Topologie anders als bei Klassischen Datenbanken, sondern auch die Daten werden anders gespeichert und abgefragt. Die Daten sind zumeist in Key/Value Tabellen abgelegt, die zumindest bei Hadoop und Cassandra von Googles BigTable inspiriert sind. Das hat viele ganz grundlegende Auswirkungen:

  • Daten werden denormalisiert abgelegt (Ja, liebe Leser, stellt ruhig in Frage ob alles richtig ist, was ihr im Studium/Ausbildung gelernt habt!)
  • Daten werden intern Spaltenorientierten und nicht Zeilenbasiert abgelegt
  • MapReduce um Abfragen zu machen

Näher gehe ich auf die Punkte nicht ein, da es sonst den Rahmen sprengen würde.


Sobald man von verteilten System redet, wird das Echtzeit oder nicht interessant. Zum einen beim Schreiben, was ich oben schon mit Eventual Consistency u.ä. behandelt habe, aber zum anderen auch mit Lesenden Zugriffen.
mapreduce-714818Bei MapReduce werden auch die Lese-Jobs auf mehrere Systeme verteilt. So steigt zwar die Response Time nicht mehr mit signifikant mit der Datenmenge, aber es gibt mehrere Delays zwischen den Servern. Das führt dazu, dass Queries unter 1 Sekunde nur schwerlich zu erreichen sind. Hadoop ist dazu nicht gemacht. Hadoop wurde ursprünglich von Facebook verwendet um eine Datenbank für das neue E-Mail System zu haben. Als Facebook eine Suche für die E-Mails bauen wollte, haben sie gemerkt, dass die Reaktionszeit von Hadoop einfach nicht schnell genug ist. Also haben sie Cassandra ins Leben gerufen um MapReduce, BigData und Echtzeitabfragen zu ermöglichen. Dazu mussten einige Kompromisse eingegangen werden –> Siehe Eventual Consistency!

solrCassandra bedeutet übrigens nicht, dass man damit sofort die perfekte Datenbank mit Volltextsuche hat. Cassandra ist nur das perfekte Backend für einen Suchserver, wie z.B. Apache Solr. Zusammen mit Cassandra, schimpft sich das Packet dann Solandra.