Designing an application with Ceph

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

 



Hi,
I am planning to use Ceph as a database storage for a webmail
client/server application, and I am thinking to store the data as
key/value pair instead of using any RDBMSs, for speed. The webmail
will manage companies, and each company will have many users, users
will end/receive emails and store them in their inboxes, kind of like
Gmail, but per company. The server will be developed in C, client code
in HTML/Javascript and binary client (standalone app) in C++
So, my question is, how would you recommend me to design the backend ?

I have thought of these choices:

1. Use Ceph as filesystem and BerkeleyDB as the database engine.
Berekley DB uses 2 files per table, so I will have 1 directory per
company and a 2 files per each table, I think there will be no more
than 20 tables in my whole app. Ceph will be used here as a remote
filesystem where BerkeleyDB will do all the data organization. The
RADOS interface of Ceph (to store key/pair values) will be not used,
since Berkeley DB will write and read to the OSDs directly and
Berkeley DB is a key/value pair database. But I have never used a DB
one a remote filesystem not sure if it will work well. Advantages of
this architecture: quick & easy.
Disadvantages: lower performance (overhead in CephFS and BerkeleyDB),
also I will not be able to write plugins for RADOS in C++ to combine
many data modifications in a single call to the server.

2. Use librados C api and write all the 'queries' hardcoded in C
specifically for the
application. Since the application is pretty standard and is not
supposed to change
much, I can do this. I would create a RADOS object for each
application object (like for example 'user' record, 'email' record,
'chat message' record, etc...).
Advantages: high performance. Disadvantages: a bit more to code ,
specially the data search functions.

I am interested in performance, so I am thinking to go for the option
2, what do you think? Can RADOS fully replace a database engine ? (I
mean, NoSQL engine, like Berkeley for example)

Will appreciate very much your comments.
TIA
Nulik
_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com



[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Ceph Dev]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux