[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: problems building, more docs?



On Thu, May 9, 2013 at 2:16 AM, Colin Percival <cperciva@tarsnap.com> wrote:
On 05/08/13 18:42, Alex Polvi wrote:
> I tried to build 1.2.0, and had to change a few things. Since the tarball is not
> under revision control, essentially I had to change any Makefile that read:
>
>   ${CC} -o ${PROG} ${LDADD} ${SRCS:.c=.o}
>
> to:
>
>   ${CC} -o ${PROG} ${SRCS:.c=.o} ${LDADD}

This is already fixed in SVN -- I haven't gotten around to rolling a release for
a while (mostly because AFAIK I'm the only person actually using this code...).

> I tried to checkout SVN to make a patch, but when I try to build that, I get:
>
>   polvi@ssd:~/kivaloo-read-only$ make
>   Makefile:11: *** missing separator.  Stop.
>
> gcc version:
>
>   gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1)
>
> Make version;
>
>   GNU Make 3.81

The code in SVN uses BSD make since that makes my life as a developer much
easier; I have a "make publish" target which creates POSIX Makefiles to go
into a tarball.

polvi@ssd:~/masstree-beta$ make publish
make: *** No rule to make target `publish'.  Stop.

Guess you need to be on BSD make there too?
 

> And finally, I got everything to build using the 1.2.0 tarball, and editing by
> hand the Makefiles... now I'm wondering are there any docs on what each binary
> does? Or any example clients? Just an explanation of the different services
> would be awesome, but the usage is pretty terse.

kivaloo-lbs is a logging block store -- it takes "APPEND", "READ", and "FREE"
requests over a socket and writes/reads/deletes data from local disk.

kivaloo-kvlds is a key-value store -- it takes "SET" and "DELETE" requests, plus
several conditional variants, as well as "GET" and "RANGE" requests.  Again, it
accepts requests over a socket; but it doesn't do any disk I/O itself -- rather,
it connects to a kivaloo-lbs for that.

kivaloo-mux is a multiplexer; if you want multiple clients to be able to talk to
the same kivaloo-kvlds, tell kivaloo-mux to talk to kivaloo-kvlds, and tell your
clients to talk to kivaloo-mux.

Example clients -- look in the /tests/ directory in SVN.  The Makefiles in there
are written for BSD make, but each of them is just main.c + a bunch of C files
from /lib/ + a bunch of -I flags to allow header files from /lib/ to be found.

> Thank you for any pointers!

Are you just exploring, or do you have an application in mind for this code?

I'm looking for a much simpler alternative to zookeeper or doozer for storing configuration data across groups of hosts. My end goal would be to have a service similar to EC2's magical 169. http server, but all hosts in the same group could read it. 

Do you think kivaloo would be a good base for something like this?

-Alex