* Question about librados @ 2011-04-04 11:33 Rutger ter Borg 2011-04-04 16:09 ` Gregory Farnum 0 siblings, 1 reply; 7+ messages in thread From: Rutger ter Borg @ 2011-04-04 11:33 UTC (permalink / raw) To: ceph-devel Hello, I'm in the progress of evaluating librados as an object store. I'm using Debian's latest packages as of today, and noted that I need to define NO_ATOMIC_OPS to get something compiled that includes librados.hpp. My actual question: is there a requirement/optimum on the relation between number of objects and number of pools? Or may this be chosen to be something completely arbitrary? I.e., is it a problem to have a couple of hundred IoCtxs active in one process? What is a reasonable/performance-wise-good object-size? TIA, Rutger ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Question about librados 2011-04-04 11:33 Question about librados Rutger ter Borg @ 2011-04-04 16:09 ` Gregory Farnum 2011-04-05 6:44 ` Rutger ter Borg 0 siblings, 1 reply; 7+ messages in thread From: Gregory Farnum @ 2011-04-04 16:09 UTC (permalink / raw) To: Rutger ter Borg; +Cc: ceph-devel On Mon, Apr 4, 2011 at 4:33 AM, Rutger ter Borg <rutger@terborg.net> wrote: > > Hello, > > I'm in the progress of evaluating librados as an object store. I'm using > Debian's latest packages as of today, and noted that I need to define > NO_ATOMIC_OPS to get something compiled that includes librados.hpp. Hmmm, that's not right! Can you elaborate? It just doesn't build librados.hpp unless you define NO_ATOMIC_OPS? Is there a build error at some point? > My actual question: is there a requirement/optimum on the relation between > number of objects and number of pools? Or may this be chosen to be something > completely arbitrary? There's no optimal relationship at all between the number of objects and the number of pools.Pools are logical groupings that have very little impact on performance. Placement groups are rather more important to performance, but again the number of objects/PG isn't terribly significant as long as #objects >> #PGs (for optimal performance you want ~100 PGs/OSD, but this number can vary significantly before it becomes a problem). > I.e., is it a problem to have a couple of hundred > IoCtxs active in one process? Not at all! > What is a reasonable/performance-wise-good object-size? Hmm, that depends on your specific hardware configuration. Ceph itself uses 4MB objects by default. In general the size of objects can vary a great deal without issue. There may still be some issues with very large objects (where object size is in the same order of magnitude as the OSD's RAM) but I think these have all been dealt with. In general the thing to be aware of is that objects are the atomic unit as far as librados and CRUSH are concerned -- placement within the cluster is pseudo-random by object, but if the size of your objects varies dramatically then the disk utilization can vary a lot without RADOS becoming aware of it. (There are mechanisms to deal with overloaded OSDs so it's not a dealbreaker, just something to be aware of.) Also, recovery and rebalancing and such, while logically handled by placement group, are largely dependent on the objects -- so if you have very large objects you may get strange behavior during recovery since the throttling and such are designed for objects in the several-MB range. -Greg ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Question about librados 2011-04-04 16:09 ` Gregory Farnum @ 2011-04-05 6:44 ` Rutger ter Borg 2011-04-05 13:42 ` Gregory Farnum 2011-04-05 16:57 ` Tommi Virtanen 0 siblings, 2 replies; 7+ messages in thread From: Rutger ter Borg @ 2011-04-05 6:44 UTC (permalink / raw) To: ceph-devel On 04/04/2011 06:09 PM, Gregory Farnum wrote: > On Mon, Apr 4, 2011 at 4:33 AM, Rutger ter Borg<rutger@terborg.net> wrote: >> >> Hello, >> >> I'm in the progress of evaluating librados as an object store. I'm using >> Debian's latest packages as of today, and noted that I need to define >> NO_ATOMIC_OPS to get something compiled that includes librados.hpp. > Hmmm, that's not right! Can you elaborate? It just doesn't build > librados.hpp unless you define NO_ATOMIC_OPS? Is there a build error > at some point? [snip] Hello Greg, thanks for the elaborate answer! With respect to the compile error, I got this in an empty file with just including rados/librados.hpp $ g++ ./rados.cpp In file included from /usr/include/rados/buffer.h:55:0, from /usr/include/rados/librados.hpp:10, from ./rados.cpp:6: /usr/include/rados/atomic.h:25:24: fatal error: atomic_ops.h: No such file or directory compilation terminated. Maybe it has to do with the .deb, apt pulled in librados2, $ dpkg --status librados-dev Version: 0.25.2-1 Cheers, Rutger ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Question about librados 2011-04-05 6:44 ` Rutger ter Borg @ 2011-04-05 13:42 ` Gregory Farnum 2011-04-05 13:50 ` Rutger ter Borg 2011-04-05 16:57 ` Tommi Virtanen 1 sibling, 1 reply; 7+ messages in thread From: Gregory Farnum @ 2011-04-05 13:42 UTC (permalink / raw) To: Rutger ter Borg; +Cc: ceph-devel On Mon, Apr 4, 2011 at 11:44 PM, Rutger ter Borg <rutger@terborg.net> wrote: > thanks for the elaborate answer! With respect to the compile error, I got > this in an empty file with just including rados/librados.hpp > > $ g++ ./rados.cpp > In file included from /usr/include/rados/buffer.h:55:0, > from /usr/include/rados/librados.hpp:10, > from ./rados.cpp:6: > /usr/include/rados/atomic.h:25:24: fatal error: atomic_ops.h: No such file > or directory > compilation terminated. Have you tried using the full make system (go to src dir, ./autogen.sh; ./configure; make)? All the required headers should get pulled in when you install the package, but they might not be in your default include paths. -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Question about librados 2011-04-05 13:42 ` Gregory Farnum @ 2011-04-05 13:50 ` Rutger ter Borg 2011-04-05 14:07 ` Wido den Hollander 0 siblings, 1 reply; 7+ messages in thread From: Rutger ter Borg @ 2011-04-05 13:50 UTC (permalink / raw) To: ceph-devel On 04/05/2011 03:42 PM, Gregory Farnum wrote: > > Have you tried using the full make system (go to src dir, > ./autogen.sh; ./configure; make)? All the required headers should get > pulled in when you install the package, but they might not be in your > default include paths. No, I haven't tried compiling from source (yet). I did try the following, though rutger@gonzo:~$ dpkg -S atomic_ops dpkg-query: no path found matching pattern *atomic_ops*. which made me conclude that I don't have the file. Probably a package thing; I'm using the deb http://ceph.newdream.net/debian/ sid main repository on Debian sid amd64. Cheers, Rutger ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Question about librados 2011-04-05 13:50 ` Rutger ter Borg @ 2011-04-05 14:07 ` Wido den Hollander 0 siblings, 0 replies; 7+ messages in thread From: Wido den Hollander @ 2011-04-05 14:07 UTC (permalink / raw) To: Rutger ter Borg, ceph-devel Hi, ----- Original message ----- > On 04/05/2011 03:42 PM, Gregory Farnum wrote: > > > > Have you tried using the full make system (go to src dir, > > ./autogen.sh; ./configure; make)? All the required headers should get > > pulled in when you install the package, but they might not be in your > > default include paths. > > No, I haven't tried compiling from source (yet). I did try the > following, though > > rutger@gonzo:~$ dpkg -S atomic_ops > dpkg-query: no path found matching pattern *atomic_ops*. > > which made me conclude that I don't have the file. Probably a package > thing; I'm using the > > deb http://ceph.newdream.net/debian/ sid main > > repository on Debian sid amd64. > On Debian/Ubuntu that file is in libatomic-ops-dev, it might be useful if librados-dev depended on that package. Wido ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Question about librados 2011-04-05 6:44 ` Rutger ter Borg 2011-04-05 13:42 ` Gregory Farnum @ 2011-04-05 16:57 ` Tommi Virtanen 1 sibling, 0 replies; 7+ messages in thread From: Tommi Virtanen @ 2011-04-05 16:57 UTC (permalink / raw) To: Rutger ter Borg; +Cc: ceph-devel On Tue, Apr 05, 2011 at 08:44:15AM +0200, Rutger ter Borg wrote: > >>I'm in the progress of evaluating librados as an object store. I'm using > >>Debian's latest packages as of today, and noted that I need to define > >>NO_ATOMIC_OPS to get something compiled that includes librados.hpp. > >Hmmm, that's not right! Can you elaborate? It just doesn't build > >librados.hpp unless you define NO_ATOMIC_OPS? Is there a build error > >at some point? > thanks for the elaborate answer! With respect to the compile error, > I got this in an empty file with just including rados/librados.hpp > > $ g++ ./rados.cpp > In file included from /usr/include/rados/buffer.h:55:0, > from /usr/include/rados/librados.hpp:10, > from ./rados.cpp:6: > /usr/include/rados/atomic.h:25:24: fatal error: atomic_ops.h: No > such file or directory > > compilation terminated. Ahhh, now I got it. You're not trying to compile Ceph, you're trying to build software using librados. The problem here is that whatever our autoconf setup detects, and whatever libraries it decides to use, might not be available at the time the external software using librados is compiles. That is, Ceph compilation environment is different from the end user compilation environment. And, even more so, we don't use the autoconfig results at all in the include files; nothing defines __CEPH__ in this case. 18 #ifdef __CEPH__ 19 # include "acconfig.h" 20 #endif So when atomic.h says: 23 #ifndef NO_ATOMIC_OPS 24 //libatomic_ops implementation 25 #include <atomic_ops.h> 26 namespace ceph { 27 Yup, that'll fail if you don't have atomic-ops development libraries available. And even if it compiles, there's no quarantee it works right! Because what if the actual Ceph compilation really was *without* atomic-ops. I need to file a few more bug reports next, but after that I'll look into this more and try to come up with a better recommendation. Short term, your best bet is to try to match the environment where the Deb was compiled; install the packages listed on the Build-Depends line at http://ceph.newdream.net/git/?p=ceph.git;a=blob;f=debian/control;hb=HEAD -- you can do that quickly with "sudo apt-get build-dep ceph" -- :(){ :|:&};: ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2011-04-05 16:58 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-04-04 11:33 Question about librados Rutger ter Borg 2011-04-04 16:09 ` Gregory Farnum 2011-04-05 6:44 ` Rutger ter Borg 2011-04-05 13:42 ` Gregory Farnum 2011-04-05 13:50 ` Rutger ter Borg 2011-04-05 14:07 ` Wido den Hollander 2011-04-05 16:57 ` Tommi Virtanen
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.