Thursday, July 26, 2012

MongoDb 2.2 RC0 Güzel Yenilikler

MongoDb 2.2 versiyonu jira.mongo'daki konular ekseninde bir suredir beta olarak gelistiriliyordu.
Simdi gönül rahatlığıyla güncelleyip kullanabilirsiniz.
Genel yenilikler icin http://docs.mongodb.org/manual/release-notes/2.2/


En bekledigim ozellik TTL collections idi. Redis'de olan TTL index mevzusu epey ozendigimiz bir mevzuydu. Mevzunun detaylarina surdan bakabilirsiniz http://docs.mongodb.org/manual/tutorial/expire-data

Var olan indexlerinize TTL atamak istiyorsaniz silip tekrar olusturmalisiniz.
Capped collection'lar uzerinde uygulayamiyorsunuz (Capped collectionlar hala ayni havadalar. dokunulmaz ama performansli.).

Sunun gibi bir TTL index olusturabilirsiniz.
db.logs.ensureIndex( { "time": 1 }, { expireAfterSeconds: 3600 } )


- Onceki versiyonda bu islemi dakikalik calisan cron scriptlerim ile yapiyordum. Bu scriptlerim expire olmus dokumanlari grup grup siliyor ve saatte bir de collection uzerinde "repair" komutu calistiriyordu.

Onemli bir not "_id" uzerine TTL index olusturamazsiniz.

Konuyu iredelemek icin
Release Notes : http://docs.mongodb.org/manual/release-notes/2.2/
All JIRA Issues resolved in 2.2 :  https://jira.mongodb.org/secure/IssueNavigator.jspa?mode=hide&requestId=10907

2 comments:

Anonymous said...

Hocam yazınız için teşekkürler. Sormak istediğim TTL kullanmanın performansa etkisi veya başka konuda sorunlar olabilir mi?

Unknown said...

Bu yazının bahsettiği mongodb 2.2 versiyonunun üzerine bir çok versiyon çıktı. Şu an 2.6 sürümünde.

TTL indexler o zamanlar bazı performans sorunlarına sahipti. Ancak mevcut versiyonda performans ile ilgili herhangi bir sorunu bulunmuyor.

Ancak yine d edoğru kullanımı ile ilgili http://docs.mongodb.org/manual/core/index-ttl/ sayfasını incelemekte fayda var.