This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Sun Nov 15 02:40:05 -0800 2009 | |
| |
Makefile | Fri Nov 13 19:29:51 -0800 2009 | |
| |
README.markdown | Thu Nov 12 15:13:52 -0800 2009 | |
| |
byte_manipulation.go | Thu Nov 12 23:07:36 -0800 2009 | |
| |
gocache.go | Thu Nov 12 10:23:48 -0800 2009 | |
| |
mc_conn_handler.go | Thu Nov 12 23:07:36 -0800 2009 | |
| |
mc_constants.go | Thu Nov 12 08:50:46 -0800 2009 | |
| |
mc_storage.go | Thu Nov 12 23:07:36 -0800 2009 |
README.markdown
gomemcached
This is a memcached server in go.
It's currently exceedingly simple, but I'll make it do something useful over time as I play with the language more.
Design
The basic design can be seen in gocache. A storage
server is run as a goroutine that receives a MCRequest on
a channel, and then issues an MCResponse to a channel contained
within the request.
Each connection is a separate goroutine, of course, and is responsible
for all IO for that connection until the connection drops or the
dataServer decides it's stupid and sends a fatal response back over
the channel.
There is currently no work at all in making the thing perform (there are specific areas I know need work). This is just my attempt to learn the language somewhat.







