From user-return-19300-archive-asf-public=cust-asf.ponee.io@ignite.apache.org Wed May 16 09:22:27 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id CF751180669 for ; Wed, 16 May 2018 09:22:26 +0200 (CEST) Received: (qmail 99224 invoked by uid 500); 16 May 2018 07:22:24 -0000 Mailing-List: contact user-help@ignite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@ignite.apache.org Delivered-To: mailing list user@ignite.apache.org Received: (qmail 99214 invoked by uid 99); 16 May 2018 07:22:24 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 16 May 2018 07:22:24 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 523FC1A076B for ; Wed, 16 May 2018 07:22:24 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.98 X-Spam-Level: * X-Spam-Status: No, score=1.98 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=trimble-com.20150623.gappssmtp.com Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id nxs6ZT1af7QX for ; Wed, 16 May 2018 07:22:22 +0000 (UTC) Received: from mail-wm0-f53.google.com (mail-wm0-f53.google.com [74.125.82.53]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id D5E145F3F4 for ; Wed, 16 May 2018 07:22:21 +0000 (UTC) Received: by mail-wm0-f53.google.com with SMTP id l1-v6so5532705wmb.2 for ; Wed, 16 May 2018 00:22:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=trimble-com.20150623.gappssmtp.com; s=20150623; h=from:references:in-reply-to:mime-version:thread-index:date :message-id:subject:to; bh=jr/z0y6g6jw8OFZKheJOaxkMFp4PwM+SaY6X4UFBYAg=; b=Lm2gOSd/3BItuxFjs276ZYEDkjsECu+2D+4vwN98HFqaYqWFDABKrcov7MCzkc13Ed 8vC9y8pyUAru1GfUKo+3sFZKCz5ur0COo4renC63WZ+G9Bp8mpyanN9BPkSTYn76g6Lh PWDLmt3r29HtKz4fYa42Hg7KXZEWcP9DrnMYUPG5QWrXPOgFXTu7rzWlQCf0tmcUGLjq X3SzX0RntSd4LR5NavbNs5+oSWuFFpuZQV86PVK+pGDJgroFV0TyVlasekXV8iJbPXo3 SudVDuejzAmotCDqbnvuvemFUHL0uK6PJfA7Tjn3PWA2Qht9rkd8Ap8EqWgi1dDYG8cw /k/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:references:in-reply-to:mime-version :thread-index:date:message-id:subject:to; bh=jr/z0y6g6jw8OFZKheJOaxkMFp4PwM+SaY6X4UFBYAg=; b=iNQ71GBOuPMQY9dYTfGwPZO/2b9PubLKvO+EgEgDgVjIoFP6mZQa+pQO9uUibKsEWc HB1bWhjIhCaUmI/hsxGG4P3B4IjAWSOcDEnD2S0tszXAvdwR1OSthPa4KiwWzwk4aoaj efANAmTmFxMtSy14VMgm9i/fy0AfnkB5OrXSd6KunyjuYmBviaKcJq2LHXnzc4RqovqR ZwjcBMg4r8bgdT2Ra5ba04H+PsbSosZaYlgk7pWAkH+a4K5s0GEY77IyQi/TXp3OmIHM 9DVIlB512m+20PGQZbWaDir3jrAgr1kr1hQEINUlydM/5KrwoGyMh4f1soEGdzKIXvdC PXdw== X-Gm-Message-State: ALKqPwdfgn5avio+ee8PyijZIR2QGdC2sR+w/Md23G7eJp7cK5d9Iq7r RfazEBAbAKN7AUveU2ui8DgLjFKB5OamlvOnq4Ln5YLw X-Google-Smtp-Source: AB8JxZq5zKphqmUmolwcaNSTt9eOEDfd6UI4c/CcBEkV65/3NW7QM9uZ+xX6lQhKUBToDHlZb0ziLYsjup2rtukCdVk= X-Received: by 2002:a50:f4ca:: with SMTP id v10-v6mr22210352edm.162.1526455340468; Wed, 16 May 2018 00:22:20 -0700 (PDT) From: Raymond Wilson References: <2c1355e8cda9f54b76a7d5b92745bef8@mail.gmail.com> In-Reply-To: MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQEOV+VEFtyKO6VqLrYnrrSieAcQJgIuT7YjpauqvfA= Date: Wed, 16 May 2018 19:22:13 +1200 Message-ID: Subject: RE: Binary type has different fields error To: user@ignite.apache.org Content-Type: multipart/alternative; boundary="00000000000055e8b1056c4d94e3" --00000000000055e8b1056c4d94e3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Thanks Pavel. I guess I=E2=80=99m confused that the type in question is not persisted, it= is ephemeral. Is Ignite persisting knowledge about these types behind the scenes? Raymond. *From:* Pavel Tupitsyn [mailto:ptupitsyn@apache.org] *Sent:* Wednesday, May 16, 2018 7:02 PM *To:* user@ignite.apache.org *Subject:* Re: Binary type has different fields error In general, Ignite is tolerant to changes within your types, adding fields, removing them. But field type change is a breaking change. You have to use a new field name. Other Ignite experts may give advice on how to update schema, I'm a bit out of the loop on this. Thanks, Pavel On Wed, May 16, 2018 at 7:06 AM, Raymond Wilson wrote: I just changed a field in a class from a long to a Guid. The class in question is marked [Serializable] and is passed to Ignite compute functions as a part of an argument to the compute function and is not saved to the persistent store. When I run the modified code against an Ignite grid with a persistent data store I get the following error. Is this intentional? How should type evolution ephemeral constructs handed to compute functions in Ignite be handled? Exception: System.AggregateException: One or more errors occurred. ---> Apache.Ignite.Core.Binary.BinaryObjectException: Binary type has different field types [typeName=3DVSS.TRex.Filters.CellPassAttributeFilter, fieldName=3DElevationRangeDesignID, fieldTypeName1=3Dlong, fieldTypeName2= =3DUUID] ---> Apache.Ignite.Core.Common.JavaException: class org.apache.ignite.binary.BinaryObjectException: Binary type has different field types [typeName=3DVSS.TRex.Filters.CellPassAttributeFilter, fieldName=3DElevationRangeDesignID, fieldTypeName1=3Dlong, fieldTypeName2= =3DUUID] at org.apache.ignite.internal.binary.BinaryUtils.mergeMetadata(BinaryUtils.jav= a:1033) at org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcess= orImpl.addMeta(CacheObjectBinaryProcessorImpl.java:444) at org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcess= orImpl$2.addMeta(CacheObjectBinaryProcessorImpl.java:186) at org.apache.ignite.internal.binary.BinaryContext.updateMetadata(BinaryContex= t.java:1303) at org.apache.ignite.internal.processors.platform.PlatformContextImpl.processM= etadata(PlatformContextImpl.java:336) at org.apache.ignite.internal.processors.platform.binary.PlatformBinaryProcess= or.processInStreamOutLong(PlatformBinaryProcessor.java:70) at org.apache.ignite.internal.processors.platform.PlatformAbstractTarget.proce= ssInStreamOutLong(PlatformAbstractTarget.java:87) at org.apache.ignite.internal.processors.platform.PlatformTargetProxyImpl.inSt= reamOutLong(PlatformTargetProxyImpl.java:67) at Apache.Ignite.Core.Impl.Unmanaged.Jni.Env.ExceptionCheck() at Apache.Ignite.Core.Impl.Unmanaged.Jni.Env.CallLongMethod(GlobalRef obj, IntPtr methodId, Int64* argsPtr) at Apache.Ignite.Core.Impl.Unmanaged.UnmanagedUtils.TargetInStreamOutLong(Glob= alRef target, Int32 opType, Int64 memPtr) at Apache.Ignite.Core.Impl.PlatformJniTarget.InStreamOutLong(Int32 type, Action`1 writeAction) --- End of inner exception stack trace --- Etc=E2=80=A6.. Thanks, Raymond. --00000000000055e8b1056c4d94e3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

Thanks Pavel.

=C2=A0

I guess I=E2=80=99m confused th= at the type in question is not persisted, it is ephemeral. Is Ignite persis= ting knowledge about these types behind the scenes?

=C2=A0

Raymond.

=C2= =A0

From: Pavel Tupitsyn [mailto:ptupitsyn@apache.org]
Sent:= Wednesday, May 16, 2018 7:02 PM
To: user@ignite.apache.org
Subject: Re: Binary type= has different fields error

=C2=A0

<= p class=3D"MsoNormal">In general, Ignite is tolerant to changes within your= types, adding fields, removing them.

But f= ield type change is a breaking change.

=C2= =A0

You have to use a new field name.

=C2=A0

Other Ignite experts may give advice on how to update sche= ma, I'm a bit out of the loop on this.

=C2=A0

Thanks,

Pavel

=C2=A0<= /p>

On Wed, May 16, 2018 at 7:06 AM, Raymond Wil= son <ray= mond_wilson@trimble.com> wrote:

I just changed a field in a class fro= m a long to a Guid.

=C2=A0

The class in question is= marked [Serializable] and is passed to Ignite compute functions as a part = of an argument to the compute function and is not saved to the persistent s= tore.

=C2=A0

When I run the modified code against a= n Ignite grid with a persistent data store I get the following error. Is th= is intentional? How should type evolution ephemeral constructs handed to co= mpute functions in Ignite be handled?

=C2=A0

=C2=A0=

Exception: System.AggregateException: One or more errors occur= red. ---> Apache.Ignite.Core.Binary.BinaryObjectException: Binary type h= as different field types [typeName=3DVSS.TRex.Filters.CellPassAttributeFilt= er, fieldName=3DElevationRangeDesignID, fieldTypeName1=3Dlong, fieldTypeNam= e2=3DUUID] ---> Apache.Ignite.Core.Common.JavaException: class org.apach= e.ignite.binary.BinaryObjectException: Binary type has different field type= s [typeName=3DVSS.TRex.Filters.CellPassAttributeFilter, fieldName=3DElevati= onRangeDesignID, fieldTypeName1=3Dlong, fieldTypeName2=3DUUID]

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0 at org.apache.ignite.internal.binary.BinaryUtils.mergeMe= tadata(BinaryUtils.java:1033)

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.ign= ite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl.addMeta= (CacheObjectBinaryProcessorImpl.java:444)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 at= org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProces= sorImpl$2.addMeta(CacheObjectBinaryProcessorImpl.java:186)

=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0 at org.apache.ignite.internal.binary.BinaryContext.updateMetad= ata(BinaryContext.java:1303)

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.ign= ite.internal.processors.platform.PlatformContextImpl.processMetadata(Platfo= rmContextImpl.java:336)

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 at org.apache.ignite.in= ternal.processors.platform.binary.PlatformBinaryProcessor.processInStreamOu= tLong(PlatformBinaryProcessor.java:70)

=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 at org.a= pache.ignite.internal.processors.platform.PlatformAbstractTarget.processInS= treamOutLong(PlatformAbstractTarget.java:87)

=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 at= org.apache.ignite.internal.processors.platform.PlatformTargetProxyImpl.inS= treamOutLong(PlatformTargetProxyImpl.java:67)

=C2=A0

=C2=A0

=C2=A0=C2=A0 at Apache.Ignite.Core.Impl.Unmanaged.Jni.= Env.ExceptionCheck()

=C2=A0=C2=A0 at Apache.Ignite.Core.Impl.Un= managed.Jni.Env.CallLongMethod(GlobalRef obj, IntPtr methodId, Int64* argsP= tr)

=C2=A0=C2=A0 at Apache.Ignite.Core.Impl.Unmanaged.Unmanaged= Utils.TargetInStreamOutLong(GlobalRef target, Int32 opType, Int64 memPtr)

=C2=A0=C2=A0 at Apache.Ignite.Core.Impl.PlatformJniTarget.InStre= amOutLong(Int32 type, Action`1 writeAction)

=C2=A0=C2=A0 --- En= d of inner exception stack trace ---

Etc=E2=80=A6..

=C2=A0

Thanks,

Raymond.

=C2=A0

--00000000000055e8b1056c4d94e3--