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
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.
> 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.
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.
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
------------------------------------------------------------
_______________________________________________