MongoDB 3.0

Sitecore a MongoDB 3.0 – co byste měli vědět

MongoDB nedávno uvedlo svoji nejnovější verzi – MongoDB 3.0 (3.0.1 abych byl přesný). Jaký je největší rozdíl oproti předchozím verzím a co potřebujete vědět, abyste plně využili upgradu? Pojďme se do toho pustit.

V MongoDB 3.0 je mnoho inovací, ale v tomto článku se chci zaměřit pouze na jednu z nich, která je velmi důležitá, pokud provozujete xDB ve velkém měřítku – nový storage engine WiredTiger. Počínaje verzí 3.0, je v MongoDB možné zvolit jaký storage engine použít. MongoDB je dodáváno hned se dvěma enginy – MMAPv1 a WiredTiger. MMAPv1 byl storage engine, který poháněl MongoDB od prvopočátku a dosud byl jedinou možností, se kterou fungovat. Nyní si ale můžete storage engine zvolit. Je dobré počítat s tím, že i v MongoDB 3.0 se ve výchozím stavu instaluje originální engine MMAPv1. Tak proč byste měli chtít jít do WiredTigeru? Jednoduše ze dvou důvodů:

  1. Výkon – z důvodu, jak zapisuje soubory na disk, dosahuje WiredTiger vyššího výkonu proti MMAPv1. Multi-úrovňová cache rovněž pomáhá při vyprazdňování dat z paměti na disk (oproti MMAPv1, který se v podstatě pouze spoléhá na operační systém, který se stará o perzistentní zápis na disk).
  2. Komprese – Na MMAPv1 neexistuje komprese, zatímco ve WiredTiger je možné volit ze dvou úrovní komprese. Ve výchozím stavu je aktivní snappy compression metoda, je možné ale aktivovat i silnější a CPU-žíznivější metodu zlib compression. Samozřejmě je možné veškerou kompresi i deaktivovat.

Jaké změny vyžaduje WiredTiger na xDB?

Naštěstí žádné. Storage engine se stará o ukládání obsahu z databáze a nemá dopad na to, jak aplikace s databází komunikuje. Jedná se tedy pouze o aktivaci storage enginu. Pokud provozujete existující instalaci xDB a chtěli byste přejít na WiredTiger, je potřeba projít migrační procedurou.

UPDATE 14.4.2015: I přesto, že na straně xDB není potřeba nic měnit, díky úpravám v security modelu MongoDB 3.0 (nehledě na WiredTiger), budete nejspíš potřebovat updatovat C# Mongo drivery v Sitecore. K dnešnímu dni obsahuje Sitecore 8 Update 2 driver verze 1.8.3.9, který není zcela kompatibilní s MongoDB 3.0. Díky přispěvatelům komentářů (v anglické verzi článku), zejména Richardovi, za zmínění.

Je k dispozici nějaká automatizace pro sandbox prostředí?

Ale jistě! Pokud instalujete Sitecore sandbox prostředí a chcete použít MongoDB 3.0 s WiredTigerem, můžete použít tento PowerShell konfigurační skript který nastaví MongoDB Windows service, za použití WiredTigeru:

 

One thought on “Sitecore a MongoDB 3.0 – co byste měli vědět”

Leave a Reply

Your email address will not be published. Required fields are marked *