2008-12-29 7 views
33

Ich habe einige Aufmerksamkeit auf Microsofts relativ neue Förderung von Velocity als eine verteilte Caching-Lösung gelenkt, die mit Memcached konkurrieren würde.MS Velocity vs Memcached für Windows?

Ich habe nach einem 64bit version of Memcached for Windows for some time now ohne Glück gesucht, und da alles über das ASP.Net MVC-Projekt, an dem ich arbeite, 64bit ist, macht es keinen Sinn, irgendetwas außer 64bit zu verwenden.

Jetzt sichern wir bereits unsere Wetten mit ASP.NET MVC in der Beta ab (RTM hoffentlich bald), aber StackOverflow scheint nicht zu schlecht zu laufen, deshalb habe ich dort nur begrenzte Probleme. Aber Velocity ist immer noch eine sehr unbekannte Größe und wird immer noch Beta (oder CTP) sein - aber hat 64bit!

Hat jemand einschlägige Erfahrung oder Sichtweise in dieser Situation anzubieten? Sollten wir uns die Zeit für Velocity nehmen - ist es überhaupt irgendwo gut genug, um mit einem Giganten wie Memcached zu konkurrieren, oder sollten wir Zeit investieren, um eine 64-Bit-Version von Memcached zu bekommen?

+0

Große Frage - Ich würde gerne von Entwicklern hören, die mit diesen beiden Produkten erfahren sind. – Guy

+3

Hat jemand irgendwelche neuen Erfahrungen? Die akzeptierte Antwort basiert auf Informationen über 1 Jahr alt. – UpTheCreek

Antwort

22

Wir haben vor kurzem eine Menge Vergleiche von Velocity und Memcached gemacht. Kurz gesagt, Velocity ist 3x - 5x langsamer als Memcached und (noch wichtiger) hat es derzeit keine Unterstützung für eine Multi-Get-Operation. Im Moment würde ich empfehlen, mit Memcached zu gehen. Eine weitere Lektion, die wir gelernt haben, war, dass die langsamste Operation im verteilten Caching Serialisierung und Deserialisierung ist (zumindest in ASP.NET). Der prozessinterne ASP.NET-Cache ist in Größenordnungen schneller. Sie müssen daher die Caching-Strategien viel sorgfältiger wählen.

+5

Velocity bietet mehr Funktionen (Sperren, Replikation, Objektkennzeichnung, um einige leistungsbeeinträchtigende zu benennen) - oft wird nicht nur über die reine Put/Get-Performance des Cache entschieden – user8032

+5

Update. Neue Leistungsverbesserungen in New CTP –

+0

@ pcawa27: Dann sollten Sie sich fragen, ob Sie einen Cache oder ein entferntes und verteiltes Speichersystem wollen. Zwei verschiedene Probleme. – graffic

1

Memcached hat einige Open-Source-Bibliotheken, wenn ich mich nicht irre, also, wenn Sie die 64-Bit-Route gehen wollen, können Sie nicht nur neu kompilieren?

Ich bewertete Velocity, als es zuerst ankam, aber kam zu dem Schluss, dass es in dieser Phase ein bisschen unentwickelt war. Die Möglichkeit, Memcache auf Nicht-Windows-Servern auszuführen, ist ebenfalls ein Bonus.

+1

Sie haben recht, Libevent ist etwas, das es verwendet, aber leider, wenn es um Speicherverwaltung geht, können Sie es nicht einfach direkt auf 64bit kompilieren - einige Verbesserungen müssen von denen gemacht werden, die wissen, wie - ich bin keiner von diese leider :-) Ansonsten wird es sehr instabil. – RobertTheGrey

2

Wenn es Ihnen nichts ausmacht, für eine Lizenz zu bezahlen, können Sie use Scale Out State Server, which I talk about in my answer to a similar question here. Sie haben sowohl 32- als auch 64-Bit-Versionen.

EDIT: Trotz des Namens des Produkts behandelt es sowohl Sitzungsstatus als auch verteiltes Caching.

+1

Caching ist nicht dasselbe wie das ASP.NET-Sitzungs-Tracking in meinem Buch. Aber danke für den Vorschlag. –

+0

Einverstanden, aber SOSS macht beides. –

+0

Sitzung ist im Grunde ein Cache zum Zwischenspeichern der SessionID ... – alchemical