qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (Jira)" <j...@apache.org>
Subject [jira] [Commented] (DISPATCH-1532) Reimplement mobile-sync as a core module
Date Tue, 14 Jan 2020 18:09:00 GMT

    [ https://issues.apache.org/jira/browse/DISPATCH-1532?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17015268#comment-17015268
] 

ASF GitHub Bot commented on DISPATCH-1532:
------------------------------------------

ted-ross commented on pull request #654: DISPATCH-1532 - Reimplemented mobile-address-synchronization
as a cor…
URL: https://github.com/apache/qpid-dispatch/pull/654#discussion_r366491710
 
 

 ##########
 File path: src/router_core/modules/mobile_sync/mobile.c
 ##########
 @@ -0,0 +1,860 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#include "module.h"
+#include "router_core_private.h"
+#include "core_events.h"
+#include "route_control.h"
+#include <qpid/dispatch/ctools.h>
+#include <qpid/dispatch/log.h>
+#include <qpid/dispatch/compose.h>
+#include <qpid/dispatch/message.h>
+#include <stdio.h>
+#include <inttypes.h>
+
+#define PROTOCOL_VERSION 1
+static const char *OPCODE     = "opcode";
+static const char *MAR        = "MAR";
+static const char *MAU        = "MAU";
+static const char *ID         = "id";
+static const char *PV         = "pv";
+static const char *AREA       = "area";
+static const char *MOBILE_SEQ = "mobile_seq";
+static const char *HINTS      = "hints";
+static const char *ADD        = "add";
+static const char *DEL        = "del";
+static const char *EXIST      = "exist";
+static const char *HAVE_SEQ   = "have_seq";
+
+//
+// Address.sync_mask bit values
+//
+#define ADDR_SYNC_DELETION_WAS_BLOCKED  0x00000001
 
 Review comment:
   Thank you for this suggestion.  It has been incorporated in the latest squash/rebase.
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> Reimplement mobile-sync as a core module
> ----------------------------------------
>
>                 Key: DISPATCH-1532
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-1532
>             Project: Qpid Dispatch
>          Issue Type: Improvement
>          Components: Routing Engine
>            Reporter: Ted Ross
>            Assignee: Ted Ross
>            Priority: Major
>             Fix For: 1.11.0
>
>
> The code in Qpid Dispatch Router currently does mobile address synchronization between
routers in the Python router module.  This has a couple of drawbacks in cases where there
are large numbers of addresses:
>  * The address strings are stored twice:  once in the main address lookup hash table
and again in the Python mobile address module.
>  * Address lookup on the Python side is inefficient and has been a bottleneck (improved
recently by a patch from Gordon Sim).
>  * Python processing is single threaded.  A large mobile address update can cause delays
in processing management requests and link-state topology maintenance.
> The python router module was intended to be an on-the-side control-plane moduel that
was not in the critical path for any performance-related activities.  With large numbers
of addresses in a network, synchronizing address locations becomes performance-related.
> To address these issues, mobile address synchronization can be moved into a core module
where it can use and share the same address table that is used by the router core for make
high speed routing decisions.  In the process, it will leave the python modules alone to
process management requests and topology maintenance uninterrupted.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


Mime
View raw message