[ceph-users] will open() system call block on Ceph ?
Hi, I am developing an application in C and it opens, reads, writes and closes many files, kind of like a custom database. I am using Linux's io_submit() system call, so all the read()/write() operations are asynchronous. But I don't know about the open() system call, so I have the following questions to the group: 1) Will the open() block if Ceph's cluster goes off line completely ? I understand the write() or read() will, but I am not worried because it is done with io_submit(), no locking will occur in my application. 2) Will I experience some delay during the execution of open() system call even if it is called with O_NONBLIOCK flag and Ceph's cluster working without failures ? Thanks in advance Nulik ___ ceph-users mailing list ceph-users@lists.ceph.com http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
[ceph-users] Designing an application with Ceph
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@lists.ceph.com http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
Re: [ceph-users] minimum object size in ceph
thanks Dan, i meant like PRIMARY KEY in a RDBMS, or Key for NoSQL (key-value pair) database to perform put() get() operations. Well, if it is string then it's ok, I can print binary keys in HEX or uuencode or something like that. Is there a limit on maximum string length for object name? Regards Nulik On Tue, Aug 6, 2013 at 4:08 PM, Dan Mick dan.m...@inktank.com wrote: No minumum object size. As for key, not sure what you mean; the closest thing to an object 'key' is its name, but it's obvious from routines like rados_read() and rados_write() that that's a const char *. Did you mean some other key? On 08/06/2013 12:13 PM, Nulik Nol wrote: Hi, when using the C api (RADOS) what is the minimum object size ? And what is the key type ? (uint64_t, char[], or something like that ?) TIA Nulik ___ ceph-users mailing list ceph-users@lists.ceph.com http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com -- Dan Mick, Filesystem Engineering Inktank Storage, Inc. http://inktank.com Ceph docs: http://ceph.com/docs ___ ceph-users mailing list ceph-users@lists.ceph.com http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com ___ ceph-users mailing list ceph-users@lists.ceph.com http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
[ceph-users] minimum object size in ceph
Hi, when using the C api (RADOS) what is the minimum object size ? And what is the key type ? (uint64_t, char[], or something like that ?) TIA Nulik ___ ceph-users mailing list ceph-users@lists.ceph.com http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com