From dev-return-25851-apmail-tinkerpop-dev-archive=tinkerpop.apache.org@tinkerpop.apache.org Thu Sep 13 15:24:23 2018 Return-Path: X-Original-To: apmail-tinkerpop-dev-archive@minotaur.apache.org Delivered-To: apmail-tinkerpop-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id AC6461E93B for ; Thu, 13 Sep 2018 15:24:23 +0000 (UTC) Received: (qmail 27653 invoked by uid 500); 13 Sep 2018 15:24:23 -0000 Delivered-To: apmail-tinkerpop-dev-archive@tinkerpop.apache.org Received: (qmail 27615 invoked by uid 500); 13 Sep 2018 15:24:23 -0000 Mailing-List: contact dev-help@tinkerpop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@tinkerpop.apache.org Delivered-To: mailing list dev@tinkerpop.apache.org Received: (qmail 27604 invoked by uid 99); 13 Sep 2018 15:24:22 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 13 Sep 2018 15:24:22 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id CD3DDDFF92; Thu, 13 Sep 2018 15:24:22 +0000 (UTC) From: spmallette To: dev@tinkerpop.apache.org Reply-To: dev@tinkerpop.apache.org Message-ID: Subject: [GitHub] tinkerpop pull request #932: TINKERPOP-2033 Maintain order in profile() anno... Content-Type: text/plain Date: Thu, 13 Sep 2018 15:24:22 +0000 (UTC) GitHub user spmallette opened a pull request: https://github.com/apache/tinkerpop/pull/932 TINKERPOP-2033 Maintain order in profile() annotations https://issues.apache.org/jira/browse/TINKERPOP-2033 Used a synchronized map around a `LinkedHashMap` rather than `ConcurrentHashMap`. Not expecting a performance issue with this as its for `profile()` step which doesn't have to be "fast" necessarily as it is a debugging step. Tested manually for backward compatibility across a number of different versions. That was quite time consuming because I'd not realized that the we'd introduced a perhaps unintended break between 3.3.0 and 3.2.x when it comes to "metrics" serialization in Gryo 1.0. Ultimately, I should have just accepted the output i was seeing in the IO tests as being correct in terms of what the compatibility was. Note that while the Gryo 1.0 test file changed for 3.4.0 it still remains compatible with previous versions - there is just a different representation of a {{Map}} in the binary. All of this seems somehow a non-issue because Gryo 3.0 has been the default since 3.3.0 released. VOTE +1 You can merge this pull request into a Git repository by running: $ git pull https://github.com/apache/tinkerpop TINKERPOP-2033 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/tinkerpop/pull/932.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #932 ---- commit 788bf8703488f02ed1a609c6d2abf56cc4c24b3f Author: Stephen Mallette Date: 2018-09-11T16:44:07Z TINKERPOP-2033 Maintain order in profile() annotations Used a synchronized map around a LinkedHashMap rather than ConcurrentHashMap. Not expecting a performance issue with this as its for profile() step which doesn't have to be "fast" per se as it is a debugging step. Affected gryo more than graphson - specifically gryo 1.0 which didn't coerce "metrics" to an interfaces as it does in 3.0. Added a custom serializer to force the annotations to a regular LinkedHashMap and then back to synchronized LinkedHashMap during serder to keep compatibility. ---- ---