Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Caml-list] Wink releases caching library

1 view
Skip to first unread message

Gerd Stolpmann

unread,
Nov 9, 2007, 3:33:01 PM11/9/07
to caml-list, Mika Illouz
Hi list,

Wink Technologies, Inc., the makers of the soon-to-be-famous people
search engine (http://wink.com), have just released another OCaml
library, this time for caching data:

"Cache implements a caching service for storing arbitrary strings that
can be located by string keys. The caching service is reachable over
TCP. The cache can be distributed over several nodes. The cache can be
saved to disk in regular intervals. A client module is included. Both
synchronous and asynchronous access methods are defined."

Downloadable at http://oss.wink.com/cache/. There is also a manual:
http://oss.wink.com/cache/cache-1.0/doc/html/index.html

There is also a GODI package for it (godi-cache).

N.B. The library has been in production for more than a year. It's
rock-stable and fast, and runs 24x7 without any problems.

Gerd
--
------------------------------------------------------------
Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany
ge...@gerd-stolpmann.de http://www.gerd-stolpmann.de
Phone: +49-6151-153855 Fax: +49-6151-997714
------------------------------------------------------------

_______________________________________________
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

Joel Reymont

unread,
Nov 9, 2007, 5:17:22 PM11/9/07
to Gerd Stolpmann, Mika Illouz, caml-list
Gerd,

Why did you guys roll your own instead of using memcached?

Thanks, Joel

On Nov 9, 2007, at 8:32 PM, Gerd Stolpmann wrote:

> "Cache implements a caching service for storing arbitrary strings that
> can be located by string keys. The caching service is reachable over
> TCP. The cache can be distributed over several nodes. The cache can be
> saved to disk in regular intervals. A client module is included. Both
> synchronous and asynchronous access methods are defined."

--
http://wagerlabs.com

Edgar Friendly

unread,
Nov 9, 2007, 5:49:52 PM11/9/07
to Joel Reymont, Gerd Stolpmann, Mika Illouz, caml-list
Joel Reymont wrote:
> Gerd,
> Why did you guys roll your own instead of using memcached?
> Thanks, Joel
>
> On Nov 9, 2007, at 8:32 PM, Gerd Stolpmann wrote:
>
>> "Cache implements a caching service for storing arbitrary strings that
>> can be located by string keys. The caching service is reachable over
>> TCP. The cache can be distributed over several nodes. The cache can be
>> saved to disk in regular intervals. A client module is included. Both
>> synchronous and asynchronous access methods are defined."
>


I can't find any OCaml client for memcached. If noone interrupts me by
pointing out a client that google didn't find, I think I'll go ahead and
write one and see about comparing Cache with memcached.

E.

Joel Reymont

unread,
Nov 9, 2007, 6:08:10 PM11/9/07
to Edgar Friendly, Gerd Stolpmann, Mika Illouz, caml-list

On Nov 9, 2007, at 10:49 PM, Edgar Friendly wrote:

> I can't find any OCaml client for memcached. If noone interrupts me
> by
> pointing out a client that google didn't find, I think I'll go ahead
> and
> write one and see about comparing Cache with memcached.


That's the essence of my question. I assume it wouldn't have taken
long to write a memcached client but Wink chose to write a less
featured memcached of their own. I really wonder why.

--
http://wagerlabs.com

Edgar Friendly

unread,
Nov 10, 2007, 12:41:00 AM11/10/07
to Joel Reymont, Gerd Stolpmann, Mika Illouz, caml-list
Joel Reymont wrote:
> That's the essence of my question. I assume it wouldn't have taken long
> to write a memcached client but Wink chose to write a less featured
> memcached of their own. I really wonder why.
>

It does seem to have features that memcached doesn't. For example:

* saving the cache to disk (and, I assume, loading it on startup)
* undelete of entries scheduled for deletion on modify
* get if: modified < x, data_hash != x (otherwise not found)
* async requests

It seems to lack:

* append/prepend insertion-into-cache commands
* increment/decrement modifies 64-bit counters in the cache
* UDP protocol support

E.

Gerd Stolpmann

unread,
Nov 10, 2007, 10:08:26 AM11/10/07
to Joel Reymont, Mika Illouz, caml-list
Am Freitag, den 09.11.2007, 22:16 +0000 schrieb Joel Reymont:
> Gerd,
>
> Why did you guys roll your own instead of using memcached?

We considered using memcached. However, there is no client for OCaml,
and especially no asynchronous client, so we would have had to write
one. I looked at the protocol, and it turned out to be weird, ad-hoc,
and not very extensible. It would have been no fun developing such a
client.

In contrast, for developing our own caching server, it was not necessary
to write any new networking code: By using the SunRPC library of
Ocamlnet we got the whole communication stuff for free, and the protocol
is now well-structured and easily extensible. Furthermore, we could
tailor the features to our requirements, and have the guarantee that we
can adapt the server to any changes.

Actually, we needed only 1 day for developing the library, and another
day for integrating it. This is what other companies spend for
evaluating external software they might want to use. So the costs were
justified, and we now have exactly the software we wanted.

So the essence is: By using good tools (OCaml, Ocamlnet, etc.) we can
develop the software ourselves with the same costs as the integration of
an external component would have taken. Plus, we have perfectly adapted
software, and are on the safe side for the future. Sounds like a good
deal, right?

Gerd

--
------------------------------------------------------------
Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany
ge...@gerd-stolpmann.de http://www.gerd-stolpmann.de
Phone: +49-6151-153855 Fax: +49-6151-997714
------------------------------------------------------------

_______________________________________________

0 new messages