[Kolab-devel] redis vs. MongoDB for zpush kolab backend
Gunnar Wrobel
wrobel at kolabsys.com
Fri Jan 7 20:32:14 CET 2011
Zitat von Bogomil Shopov <shopov at kolabsys.com>:
> On Friday, January 07, 2011 03:44:25 pm Gunnar Wrobel wrote:
>> Hi Bogo,
>>
>> Zitat von Bogomil Shopov <shopov at kolabsys.com>:
>> > Hi all,
>> > I am actively testing MongoDB + PHP driver on my machine right now and I
>> > am getting better results than Redis.
>>
>> Sounds good.
>>
>> > In fact MongoDB is what we need:
>> I wonder if this is really so much a question of the backend
>> technology. I admit I don't have much experience with something like
>> MongoDB but my assumption is that there are different technologies
>> around that provide the same feature set. Do we really need to choose
>> a single one?
>
> redis is not working at all, just ignore it. But you are right. I am thinking
> also to create a different layer for that and user can choose what to use.
Could that layer be Horde_Cache or is there anything that prevents you
from using that?
Cheers,
Gunnar
>
>>
>> I looked at the code you added in the "backend-mongodb" branch and so
>> far this is a key-value store. That is something you get from many
>> backend technologies and in fact the interface for such services is
>> near to trivial. It boils down to what you established in
>> mongoDBcache.php.
>>
>> "backend-redis" wasn't very different concerning the interface. So I
>> would suggest to complete the abstraction at that point and really
>> rely on a simple interface. In the long term you'll be able to switch
>> to any newer technology that suites your needs better than what might
>> perform best right now.
>>
>> Of course there are already interfaces like that around. Horde_Cache
>> is one of them (it abstracts about 10 key-value storage backend
>> types). And in fact I'd be very happy if we could keep such code
>> segments together.
>>
>> I much rather convert your code into modules to Horde_Cache and add
>> support for both Redis and MongoDB there (both are missing from
>> Horde_Cache at the moment).
>>
>> What is the advantage of keeping such code consolidated: We can use
>> the same caching backend for other applications as well. Did you know
>> that we use the db functions Alain used initially in the Kolab
>> free/busy code as well?
>>
>> You obviously found them to be too slow for our needs. If Redis and/or
>> MongoDB is a better solution I'd like to use it for other systems as
>> well.
>>
>> Does any of this make sense to you and would that be a direction you'd
>> be willing to go into?
>>
>> > - We can make queries (it's usefull for Calendar)
>> > - We can create indexes on whatever we want
>> > - We can use authentication (salt+md5) (with Redis we don't (we should
>> > use "trusted environment"));
>> > - There are more than 10 language drivers
>> > (http://www.mongodb.org/display/DOCS/Drivers) - we can access the
>> > data in more
>> > than 10 languages
>>
>> I'm aware that many of these are features that are not part of the
>> simple key-value interface I mentioned above. But that doesn't change
>> the fact that the key-value aspect is part of what is required. All
>> other parts can be handled separately from that.
>>
>> Cheers,
>>
>> Gunnar
>>
>> > I have tried xCache (lighttpd project) under PHP, but it does almost the
>> > same like current DB and it's not so good for real chaching, but for
>> > opcode optimization.
>> >
>> >
>> >
>> > --
>> > Bogomil "Bogo" Shopov
>> > Senior Web Engineer
>> >
>> >
>> > Kolab Systems AG
>> > Zürich, Switzerland
>> >
>> > e: shopov at kolabsys.com
>> > t: +41 43 5016691 (ext. 2115 649)
>> > w: http://kolabsys.com
>> > b:http://talkweb.eu
>> >
>> > pgp: E69A226A Bogomil "Bogo" Shopov
>> >
>> > _______________________________________________
>> > Kolab-devel mailing list
>> > Kolab-devel at kolab.org
>> > https://kolab.org/mailman/listinfo/kolab-devel
>>
>> --
>> Gunnar Wrobel
>> Developer, Kolab Systems AG
>>
>> e: wrobel at kolabsys.com
>> t: +49 700 6245 0000
>> w: http://www.kolabsys.com
>>
>> pgp: 9703 43BE
>>
>> ----------------------------------------------------------------
>> This message was sent using IMP, the Internet Messaging Program.
>>
>> _______________________________________________
>> Kolab-devel mailing list
>> Kolab-devel at kolab.org
>> https://kolab.org/mailman/listinfo/kolab-devel
>
> --
>
> Bogomil "Bogo" Shopov
> Senior Web Engineer
>
>
> Kolab Systems AG
> Zürich, Switzerland
>
> e: shopov at kolabsys.com
> t: +41 43 5016691 (ext. 2115 649)
> w: http://kolabsys.com
> b:http://talkweb.eu
>
> pgp: E69A226A Bogomil "Bogo" Shopov
>
> _______________________________________________
> Kolab-devel mailing list
> Kolab-devel at kolab.org
> https://kolab.org/mailman/listinfo/kolab-devel
>
--
Gunnar Wrobel
Developer, Kolab Systems AG
e: wrobel at kolabsys.com
t: +49 700 6245 0000
w: http://www.kolabsys.com
pgp: 9703 43BE
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
More information about the devel
mailing list