Hi, Mr Walker,
I'm
Peidong Xie, a third year master student from Institute of Software, Chinese Academy of Sciences.
Sorry to communicate with you so late, I want to express my interest in the idea "
Implement a Cassandra/NoSQL Connector or Translator for GlusterFS ".
I have read the documents in the
GlusterFS website, from where I got the knowledge of
GlusterFS architecture and the way of writing translators.
Also, I roughly read the code of posix translator and bdb translator, and figured out the skeleton of a storage translator.
I noticed that GlusterFS had bdb as one of its storage
backends, but it's obsoleted. To implement a Cassandra translator for Glusterfs, I think the bdb translator is a good reference.
Cassandra doesn't provide native interface for C, there is a C++ client (libQtCassandra) which involves 3rd party libraries, so I think it's better to use raw Thrift API in Glusterfs.
I have participated in some projects, most of my work is related with file system:
(1) In 2011, I together with another student, developed a shared
fs based on FUSE, it's used to store
libvirt checkpoint file and image file, then multiple
VMs could
read/write a checkpoint or image simultaneously. The key idea is
parting the whole file into small blocks and cache them in memory, so that
VMs
could share the file blocks. COW is used to make sure a
VM's write
won't influence others.
(2) During last year's
GSoC, I made the
smbfs(
CIFS client) in
illumos support
mmap. Firstly, I implemented
mmap with block i/o, the main work it to implement the
VFS interfaces, such as
smbfs_
mmap,
smbfs_
getpage,
smbfsputpage. Secondly, I add page cache support to file i/o, mainly modified
smbfs_read,
smbfs_write. With
mmap,
smbfs could cache file in memory and reduce the i/o request over the wire, so the efficiency of i/o increases.
(3) In last year, I spent some time porting
ecryptfs-
utils to
RedFlag Linux, making it work with
ecryptfs, to support encrypted home directory.
Currently, I concentrate on the storage issues in big data. I have done study on some distributed systems such as
hdfs,
hbase,
mongodb,
cassandra, and storage engines such as
bdb and
leveldb.
I hope my project experience and background knowledge could help in "Implement a Cassandra/
NoSQL Connector or Translator for
GlusterFS ".
I haven't finished my proposal yet, I will finish it in one or two days.
Best regards,
Peidong