Hi, So I really wanted to learn Clojure and get familiar with the functional programming. As a side project I decided to write a simple data structure server similar to Redis. It uses Redis protocol and already supports same data structures and main commands. So any standard redis client can be used to connect to it as well as standard redis-benchmark tool.
Eventually I'd want to make it fast, distributed and extensible (so you can easily add any data structures you want). But for now I'm solving very basic problems while learning the language. https://github.com/yankov/memobot Code must be very messy and not idiomatic - I never had experience with Lisps nor functional programming before. I kept cleaning it up, but figured it'd be better to try to get feedback first. Would be very grateful if you guy could point me some obvious weirdness and bad choices in code. Also some general questions: 1. *How to achieve good throughput?* I run the same benchmarking tool as for redis and for SET command I get ~200 operations per second (for Redis it's 30k/sec). To implement a server I used a very simple jboss netty example without any tweaking. What would be a bottle neck here? 2. What would be a best way to implement sorted sets (like in Redis)? I used sorted maps and sorting them by values which I highly doubt is a log(n) operation.. Thanks. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en