[ovs-dev] Multi-threaded OVSDB

Andy Zhou azhou at ovn.org
Thu Mar 16 21:28:09 UTC 2017


On Thu, Mar 16, 2017 at 1:52 PM, Ben Pfaff <blp at ovn.org> wrote:
> On Thu, Mar 16, 2017 at 11:38:19PM +0500, Valentine Sinitsyn wrote:
>> On 16.03.2017 20:56, Ben Pfaff wrote:
>> >On Tue, Mar 14, 2017 at 07:08:54PM +0500, Valentine Sinitsyn wrote:
>> >>Recently, I was evaluating a multi-threaded OVSDB/ovn-northd design, and
>> >>came across the patchset [1].
>> >>
>> >>Looks like this RFC patchset was received well, but never completed. What's
>> >>the reason? No real performance benefits, lack of interest, other
>> >>high-priority tasks or whatever?
>> >
>> >It's kind of a combination of those.  Andy got preempted by other
>> >higher-priority work, plus it's unclear whether threading ovsdb-server
>> >solves an important problem at this time.  I'm currently working on
>> >adding clustering support to OVSDB, which ought to allow scaling out
>> >reads, which are most of the OVN workload, so that might solve the same
>> >problem in a different way.
>> This sounds promising. Are you planning something Mongo-like, that is, one
>> server writes should be directed to, and all servers serving reads?
>
> That's essentially the planned approach.  This should allow better
> scaling out reads.  Half an hour isn't really acceptable and OVN should
> aim to do much better than that.
>
>> In our tests, it takes about half an hour (and a few hundred
>> reconnects) to send an initial snapshot of a large southbound database
>> to 1000+ OVN 2.7 controllers. This makes disaster recovery plan a
>> pain. Should we expect things to get better here (we can probably
>> contribute to this, if feasible)?
>
> I'd expect that the clustered database design should scale pretty well
> for reads, which are most of the OVN workload.  I'll have to have
> something actually working before we can test and tune it, though.
>
>> As for multi-threaded OVSDB, the latest patch series I found in Andy's fork
>> segfaults just after startup, so we can't even do a quick test to check if
>> it makes things better for us or not.
>
> I don't know whether Andy thought it was ready for testing.

It was work-in-progress, not ready for testing. I have since worked a
bit more to
multi-thread all OVSDB sever features and found the changes will make OVSDB
server quite more complex.

Given that Ben is working on clustering, it may not be wise to make
two major changes
at the same time. I plan to revisit multi-threading after the
clustering changes are in.


More information about the dev mailing list