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

Re: [MirageOS-devel] Custom KV_RO Implementation



Hi,

First, thanks for your effort!

So I don't know if "mirage configure" actually supports your case of referring to another module from within config.ml

No it doen't (yet), but we had some ideas to make it work (see http://lists.xenproject.org/archives/html/mirageos-devel/2014-11/msg00078.html)

What I would like to start off with is a new implementation of the KV_RO module but using Redis instead of crunch or the file system.  

I think I need three things:  one is the actual implementation module that implements the KV_RO interface / module, one module that provides the packages and libraries you need ( the Impl module? ) and then another for tie those together.

This is indeed what is needed to have a fully supported backend. Before that, I think the first step (the harder one) is to get your implementation working on Linux. Just write complete https://github.com/bbrietzke/sad_butter/blob/redis_kv/src/rediskv.ml to make it work locally for you (compile it as a normal OCaml project, using ocamlbuild for instance), but everytime you want to do a syscall (network or disk access) call a function from a parameter of your functor instead of the one provided by the Unix module.

Once this is working fine locally for you, test it manually be applying different implementations for the functor arguments. Then extend unikernel.ml to use your functor. And finally we can discuss on how to integrate it properly in the mirage tool :p

Best,
Thomas



I think I'm struggling with the part of tying things together and making them work.  

I started with the crunch kv_ro example since it was close enough to what I want to do.  I have a module named Kv that provides the libraries/packages/configure roughed out and had ( and will add it back ) a module for the redis kv_ro.

I've had functors and just normal functions that try to create the modules based on the what is done for crunch ( impl kv_ro host (module Kv/KvRoRedis/etc )) and I'm told that impl cannot be found.  When i try to use Kv or KvRoRedis directly, i receive an unbound constructor error.

Code can be found at:

Any help or guidance would be appreciated.

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.