Discussion:
ceph performance call: buffer
Matt W. Benjamin
2014-10-16 18:00:32 UTC
Permalink
Hi Folks,

Per yesterday's Ceph performance call, we've pushed 2 wip branches for review and feedback to https://github.com/linuxbox2/linuxbox-ceph.git .

1. xio-v084-inline reorganizes ceph::buffer as a namespace, and (nearly) all of
buffer::hash, buffer::ptr and buffer::list as inline

2. xio-v084-inline-flat restores some raw encapsulation lost in the prior change,
then refactors buffer::raw to remove virtual methods

We've made some effort to measure the impact of the changes, but don't have
reliable data yet. (It's possible that our initial impression of improvement from the inlining change was not accurate, but more likely we need better workload tests.)

In addition, we've been working on an experiment to refactor buffer::ptr and buffer::raw to use boost::intrusive::list, to unify the interfaces of the two types to permit interning buffer::raw directly on the containing list when there is no sharing, and a slab allocator for both types. We plan to push a wip branch with these changes to when they've stabilized a bit more and/or we have real perf numbers.

Thanks,

Matt
--
Matt Benjamin
CohortFS, LLC.
206 South Fifth Ave. Suite 150
Ann Arbor, MI 48104

http://cohortfs.com

tel. 734-761-4689
fax. 734-769-8938
cel. 734-216-5309
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Loic Dachary
2014-10-16 18:16:47 UTC
Permalink
Hi Matt,

You will probably be interested in
Post by Matt W. Benjamin
Hi Folks,
Per yesterday's Ceph performance call, we've pushed 2 wip branches for review and feedback to https://github.com/linuxbox2/linuxbox-ceph.git .
1. xio-v084-inline reorganizes ceph::buffer as a namespace, and (nearly) all of
buffer::hash, buffer::ptr and buffer::list as inline
2. xio-v084-inline-flat restores some raw encapsulation lost in the prior change,
then refactors buffer::raw to remove virtual methods
We've made some effort to measure the impact of the changes, but don't have
reliable data yet. (It's possible that our initial impression of improvement from the inlining change was not accurate, but more likely we need better workload tests.)
In addition, we've been working on an experiment to refactor buffer::ptr and buffer::raw to use boost::intrusive::list, to unify the interfaces of the two types to permit interning buffer::raw directly on the containing list when there is no sharing, and a slab allocator for both types. We plan to push a wip branch with these changes to when they've stabilized a bit more and/or we have real perf numbers.
Thanks,
Matt
--
Loïc Dachary, Artisan Logiciel Libre
Loic Dachary
2014-10-16 18:21:00 UTC
Permalink
Hi Again,
Post by Loic Dachary
Hi Matt,
You will probably be interested in
(I have to find which sequence of keys send out the mail by accident... :-)

https://github.com/ceph/ceph/pull/2595

and

https://github.com/dachary/ceph/commit/734e555c640a3b5e9bbf0329bd524cffaca61c4f

in particular. It does not do anything performance wise but it's going to be merged in the not-to-distant future.

Cheers
Post by Loic Dachary
Post by Matt W. Benjamin
Hi Folks,
Per yesterday's Ceph performance call, we've pushed 2 wip branches for review and feedback to https://github.com/linuxbox2/linuxbox-ceph.git .
1. xio-v084-inline reorganizes ceph::buffer as a namespace, and (nearly) all of
buffer::hash, buffer::ptr and buffer::list as inline
2. xio-v084-inline-flat restores some raw encapsulation lost in the prior change,
then refactors buffer::raw to remove virtual methods
We've made some effort to measure the impact of the changes, but don't have
reliable data yet. (It's possible that our initial impression of improvement from the inlining change was not accurate, but more likely we need better workload tests.)
In addition, we've been working on an experiment to refactor buffer::ptr and buffer::raw to use boost::intrusive::list, to unify the interfaces of the two types to permit interning buffer::raw directly on the containing list when there is no sharing, and a slab allocator for both types. We plan to push a wip branch with these changes to when they've stabilized a bit more and/or we have real perf numbers.
Thanks,
Matt
--
Loïc Dachary, Artisan Logiciel Libre
Matt W. Benjamin
2014-10-16 18:42:27 UTC
Permalink
Ack, very interested in that :).

Matt
Post by Loic Dachary
Hi Again,
=20
Post by Loic Dachary
Hi Matt,
=20
You will probably be interested in
=20
(I have to find which sequence of keys send out the mail by
accident... :-)
=20
https://github.com/ceph/ceph/pull/2595
=20
and
=20
https://github.com/dachary/ceph/commit/734e555c640a3b5e9bbf0329bd524c=
ffaca61c4f
Post by Loic Dachary
=20
in particular. It does not do anything performance wise but it's goin=
g
Post by Loic Dachary
to be merged in the not-to-distant future.
=20
Cheers
=20
Post by Loic Dachary
=20
Post by Matt W. Benjamin
Hi Folks,
Per yesterday's Ceph performance call, we've pushed 2 wip branches
for review and feedback to
https://github.com/linuxbox2/linuxbox-ceph.git .
Post by Loic Dachary
Post by Matt W. Benjamin
1. xio-v084-inline reorganizes ceph::buffer as a namespace, and
(nearly) all of
Post by Loic Dachary
Post by Matt W. Benjamin
buffer::hash, buffer::ptr and buffer::list as inline
2. xio-v084-inline-flat restores some raw encapsulation lost in th=
e
Post by Loic Dachary
prior change,
Post by Loic Dachary
Post by Matt W. Benjamin
then refactors buffer::raw to remove virtual methods
We've made some effort to measure the impact of the changes, but
don't have
Post by Loic Dachary
Post by Matt W. Benjamin
reliable data yet. (It's possible that our initial impression of
improvement from the inlining change was not accurate, but more likel=
y
Post by Loic Dachary
we need better workload tests.)
Post by Loic Dachary
Post by Matt W. Benjamin
In addition, we've been working on an experiment to refactor
buffer::ptr and buffer::raw to use boost::intrusive::list, to unify
the interfaces of the two types to permit interning buffer::raw
directly on the containing list when there is no sharing, and a slab
allocator for both types. We plan to push a wip branch with these
changes to when they've stabilized a bit more and/or we have real per=
f
Post by Loic Dachary
numbers.
Post by Loic Dachary
Post by Matt W. Benjamin
Thanks,
Matt
=20
=20
--=20
Lo=C3=AFc Dachary, Artisan Logiciel Libre
--=20
Matt Benjamin
CohortFS, LLC.
206 South Fifth Ave. Suite 150
Ann Arbor, MI 48104

http://cohortfs.com

tel. 734-761-4689=20
fax. 734-769-8938=20
cel. 734-216-5309=20
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" i=
n
the body of a message to ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Loading...