Beste Lösung für ein Cache-system unterstützt, Splitter -, Replikations-und hat eine niedrige Latenz

Wir sind in den Prozess der Bereitstellung einer hoch dynamischen website. Über 20.000 Artikel sind verarbeitet und jede minute aktualisiert am peak-Kapazität. Jedes Element kann zwischen einer Größe von 1 Kb bis 500 Kb. Diese Elemente abgerufen werden müssen, bearbeitet und aktualisiert im cache jede minute.

Erwarten wir einen traffic von bis zu 1000 Benutzer in den ersten zwei-drei Monate. Da jeder Nutzer landet auf der website, Sie können angefordert werden einige der beliebtesten Inhalte, aber andere können verlangen missliebiger Inhalte. Alle Inhalte einer höheren Ebene verarbeitet form von was sitzt in der persistent store. Daher ist es absolut notwendig, um alle verarbeiteten Elemente sitzen in einem low-latency-Speicher für hervorragende user-experience, sei es populär oder unpopulär ist.

Wir haben versucht, Memcache, Redis und Couchbase getrennt.

Memcache ist super schnell, aber wir lief in Probleme, bei denen bestimmte Platten ran out of memory und aktive Elemente begann immer vertrieben.

Redis, relativ langsamer als Memcache, ist großartig, wenn Sie wollen Beharrlichkeit in den Positionen.

Aber bald stellten wir fest, wir wollten Splitter und Replikation.

Couchbase angeboten, die out of the box.. Die Moxi-client-Schnittstellen mit dem Couchbase server hat seine eigenen Probleme nicht in der Lage, schwer zu handhaben gleichzeitige Prozesse. Es beginnt fehlenden sets und bekommt jedes jetzt und dann. Bewegt über das Python-SDK-Schnittstellen mit ihm. Er durchgeführt schlecht in dem Falle, wenn einer der Knoten im cluster ging, es war nicht in der Lage zu entdecken, die neue Topologie an alle. Landete verlieren einige Daten im cache und der Inaktivität auf der Website für mehrere kostbare Stunden.

An einem Punkt, wo wir erkennen, dass es kein perfektes Produkt gibt, die suite, die unsere Bedürfnisse. Sie müssen sich bewusst sein, alle Technologien und Ihre eigenen Bedürfnisse. Sie müssen vorhersehen, wie sich Ihre Daten entwickeln werden und entsprechend vorbereitet werden. Die beste Lösung ist wahrscheinlich eine Mischung von Technologien. Allerdings setzen diese in der Hoffnung, dass es vielleicht etwas anderes gibt. Wir nähern uns dem Ende von 2012. Wie schwer kann es sein für eine out-of-the-box-Lösung gesichert, die mit leistungsfähiger hardware zu liefern, was wir brauchen.

Gedanken und links zu aufschlussreichen Artikeln würde sehr geschätzt werden. Danke!

  • Warum würden Sie müssen die Replikation auf einem cache-system? Du hast einfach nicht genug Speicher in Ihrem memcache-cluster?
  • Wir brauchen Replikation, da Zeit zu Zeit unser Server down gegangen aufgrund von hardware-Ausfällen auf dem hosting-Anbieter Ende. In einem solchen Fall müssen wir einen Notfallplan in Kraft. Ja, anfangs hatten wir nicht genügend Speicher vorhanden, aber auch da hatten wir zu viele Elemente von der gleichen Größe und nicht genug Platten zugewiesen, um Sie zu halten.
  • Ok nur scheint seltsam zu wollen, dass die Ebene der Beharrlichkeit, in einem cache. Scheint, dass Sie wirklich suchen, für horizontal skalierbaren, persistenten Speicher, wenn Sie don ' T haben keine Toleranz für den Aufbau eines high-speed-cache. Vielleicht mongodb, dynamodb, oder ähnlich könnte Ihre Bedürfnisse zu erfüllen, aber sicherlich würden Sie nicht so schnell wie in-memory-caching. Natürlich können Sie auch Blick auf die Verwendung in Speicher-caching-zusammen mit einigen system zum Spülen der cache so reducec Latenz für die Fälle, wenn Sie benötigen, um den Wiederaufbau der cache zu outtage auf einer partition, Anwendungs-Implementierungen, usw.
  • ich bin auch Gebäude eine sehr dynamische website um couchbase. es scheint, dass das Hauptproblem das Sie haben, ist mit sank schreibt. was ist, wenn Sie zwei oder mehr identische parallele requests an die verschiedenen Server beim festlegen der Informationen? ich bin mir nicht sicher, ob Sie diese Art von setup, aber es würde die erforderliche Redundanz.
  • Ich schlage vor, Sie Blick auf ein paar Dinge: Riak, Hazelcast, und vielleicht VoltDB.
InformationsquelleAutor Shah W | 2012-10-26
Schreibe einen Kommentar