[ https://issues.apache.org/jira/browse/IGNITE-13154?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17142947#comment-17142947 ]
Ignite TC Bot commented on IGNITE-13154: ---------------------------------------- {panel:title=Branch: [pull/7936/head] Base: [master] : Possible Blockers (1)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1} {color:#d04437}Binary Objects{color} [[tests 1|https://ci.ignite.apache.org/viewLog.html?buildId=5410148]] * IgniteBinaryObjectsTestSuite: BinaryMetadataRemoveWithPersistenceTest.testRemoveTypeAndClusterRestart - New test duration 68s is more that 1 minute {panel} {panel:title=Branch: [pull/7936/head] Base: [master] : New Tests (21)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1} {color:#00008b}Cache 7{color} [tests 6] * {color:#013220}IgniteCacheWithIndexingAndPersistenceTestSuite: GridCommandHandlerMetadataTest.testMetadataDetails - PASSED{color} * {color:#013220}IgniteCacheWithIndexingAndPersistenceTestSuite: GridCommandHandlerMetadataTest.testMetadataList - PASSED{color} * {color:#013220}IgniteCacheWithIndexingAndPersistenceTestSuite: GridCommandHandlerMetadataTest.testDropJdbcThinConnectionsOnRemove - PASSED{color} * {color:#013220}IgniteCacheWithIndexingAndPersistenceTestSuite: GridCommandHandlerMetadataTest.testInvalidArguments - PASSED{color} * {color:#013220}IgniteCacheWithIndexingAndPersistenceTestSuite: GridCommandHandlerMetadataTest.testRemoveUpdate - PASSED{color} * {color:#013220}IgniteCacheWithIndexingAndPersistenceTestSuite: GridCommandHandlerMetadataTest.testDropThinConnectionsOnRemove - PASSED{color} {color:#00008b}Service Grid (legacy mode){color} [tests 4] * {color:#013220}IgniteServiceGridTestSuite: ServiceDeploymentProcessIdSelfTest.topologyVersion[Test event=IgniteBiTuple [val1=DiscoveryEvent [evtNode=8d2ec1b5-c0b4-4c38-a6b0-f1118b3f62a2, topVer=0, nodeId8=3e4a66c9, msg=, type=NODE_JOINED, tstamp=1592830998672], val2=AffinityTopologyVersion [topVer=-8281822966745144678, minorTopVer=0]]] - PASSED{color} * {color:#013220}IgniteServiceGridTestSuite: ServiceDeploymentProcessIdSelfTest.requestId[Test event=IgniteBiTuple [val1=DiscoveryEvent [evtNode=8d2ec1b5-c0b4-4c38-a6b0-f1118b3f62a2, topVer=0, nodeId8=3e4a66c9, msg=, type=NODE_JOINED, tstamp=1592830998672], val2=AffinityTopologyVersion [topVer=-8281822966745144678, minorTopVer=0]]] - PASSED{color} * {color:#013220}IgniteServiceGridTestSuite: ServiceDeploymentProcessIdSelfTest.topologyVersion[Test event=IgniteBiTuple [val1=DiscoveryCustomEvent [customMsg=ServiceChangeBatchRequest [id=498302cd271-2933ee5e-fe25-4d03-9783-c1b576d29701, reqs=SingletonList [ServiceUndeploymentRequest []]], affTopVer=null, super=DiscoveryEvent [evtNode=f64161f5-e63d-4694-8109-887dde4fb805, topVer=0, nodeId8=f64161f5, msg=null, type=DISCOVERY_CUSTOM_EVT, tstamp=1592830998672]], val2=AffinityTopologyVersion [topVer=4960202716760150737, minorTopVer=0]]] - PASSED{color} * {color:#013220}IgniteServiceGridTestSuite: ServiceDeploymentProcessIdSelfTest.requestId[Test event=IgniteBiTuple [val1=DiscoveryCustomEvent [customMsg=ServiceChangeBatchRequest [id=498302cd271-2933ee5e-fe25-4d03-9783-c1b576d29701, reqs=SingletonList [ServiceUndeploymentRequest []]], affTopVer=null, super=DiscoveryEvent [evtNode=f64161f5-e63d-4694-8109-887dde4fb805, topVer=0, nodeId8=f64161f5, msg=null, type=DISCOVERY_CUSTOM_EVT, tstamp=1592830998672]], val2=AffinityTopologyVersion [topVer=4960202716760150737, minorTopVer=0]]] - PASSED{color} {color:#00008b}Service Grid{color} [tests 4] * {color:#013220}IgniteServiceGridTestSuite: ServiceDeploymentProcessIdSelfTest.requestId[Test event=IgniteBiTuple [val1=DiscoveryEvent [evtNode=ae5ccaaa-9faa-4e76-ba6a-012bda1a486e, topVer=0, nodeId8=960612cf, msg=, type=NODE_JOINED, tstamp=1592831016351], val2=AffinityTopologyVersion [topVer=6230885601264143063, minorTopVer=0]]] - PASSED{color} * {color:#013220}IgniteServiceGridTestSuite: ServiceDeploymentProcessIdSelfTest.topologyVersion[Test event=IgniteBiTuple [val1=DiscoveryCustomEvent [customMsg=ServiceChangeBatchRequest [id=3ad702cd271-3d0b6d17-6fa8-4d3f-9821-a01807fef461, reqs=SingletonList [ServiceUndeploymentRequest []]], affTopVer=null, super=DiscoveryEvent [evtNode=c254a185-5ca3-4ee3-a213-b96443a3dcf7, topVer=0, nodeId8=c254a185, msg=null, type=DISCOVERY_CUSTOM_EVT, tstamp=1592831016351]], val2=AffinityTopologyVersion [topVer=-616247404138074378, minorTopVer=0]]] - PASSED{color} * {color:#013220}IgniteServiceGridTestSuite: ServiceDeploymentProcessIdSelfTest.requestId[Test event=IgniteBiTuple [val1=DiscoveryCustomEvent [customMsg=ServiceChangeBatchRequest [id=3ad702cd271-3d0b6d17-6fa8-4d3f-9821-a01807fef461, reqs=SingletonList [ServiceUndeploymentRequest []]], affTopVer=null, super=DiscoveryEvent [evtNode=c254a185-5ca3-4ee3-a213-b96443a3dcf7, topVer=0, nodeId8=c254a185, msg=null, type=DISCOVERY_CUSTOM_EVT, tstamp=1592831016351]], val2=AffinityTopologyVersion [topVer=-616247404138074378, minorTopVer=0]]] - PASSED{color} * {color:#013220}IgniteServiceGridTestSuite: ServiceDeploymentProcessIdSelfTest.topologyVersion[Test event=IgniteBiTuple [val1=DiscoveryEvent [evtNode=ae5ccaaa-9faa-4e76-ba6a-012bda1a486e, topVer=0, nodeId8=960612cf, msg=, type=NODE_JOINED, tstamp=1592831016351], val2=AffinityTopologyVersion [topVer=6230885601264143063, minorTopVer=0]]] - PASSED{color} {color:#00008b}Binary Objects{color} [tests 7] * {color:#013220}IgniteBinaryObjectsTestSuite: BinaryMetadataRemoveWithPersistenceTest.testRemoveNotExistentType - PASSED{color} * {color:#013220}IgniteBinaryObjectsTestSuite: BinaryMetadataRemoveTest.testRemoveNotExistentType - PASSED{color} * {color:#013220}IgniteBinaryObjectsTestSuite: BinaryMetadataRemoveWithPersistenceTest.testRemoveTypeOnNodes - PASSED{color} * {color:#013220}IgniteBinaryObjectsTestSuite: BinaryMetadataRemoveWithPersistenceTest.testChangeMetaWhenTypeRemoving - PASSED{color} * {color:#013220}IgniteBinaryObjectsTestSuite: BinaryMetadataRemoveWithPersistenceTest.testRemoveTypeAndClusterRestart - PASSED{color} * {color:#013220}IgniteBinaryObjectsTestSuite: BinaryMetadataRemoveTest.testRemoveTypeOnNodes - PASSED{color} * {color:#013220}IgniteBinaryObjectsTestSuite: BinaryMetadataRemoveTest.testChangeMetaWhenTypeRemoving - PASSED{color} {panel} [TeamCity *--> Run :: All* Results|https://ci.ignite.apache.org/viewLog.html?buildId=5409534&buildTypeId=IgniteTests24Java8_RunAll] > Introduce the ability for a user to manage binary types > ------------------------------------------------------- > > Key: IGNITE-13154 > URL: https://issues.apache.org/jira/browse/IGNITE-13154 > Project: Ignite > Issue Type: Improvement > Components: binary > Reporter: Taras Ledkov > Assignee: Taras Ledkov > Priority: Major > Fix For: 2.9 > > Time Spent: 5h 10m > Remaining Estimate: 0h > > We need a way to change schema (including unsupported changes, such as column > type change) without cluster restart. This is for the case when all data > associated with the binary type has been removed, so removing the old schema > is safe. > Now users must stop the cluster and remove the folder with binary metadata > manually. > The proposed way is to introduce internal API to manage binary types and > public command line interface (via control.sh). That way one can remove a > cache from the cluster, then unregister corresponding binary types, then > launch a new version of an application that would register the new schema and > reload the data. > *The current implementation has restrictions:* > - all cluster nodes must support remove type feature. > - the cluster must not contains data with type to remove. > - operation of the update type must not be launched on the cluster for the > type to remove (operation examples: put into cache, > BinaryObjectBuilder#build). > - client nodes process metadata operation asynchronously so type may be > removed at the client after any delay after the remove type operation is > completed. > - if the node that contains the old version of the type joins to the cluster > where type was removed the type is propagated to cluster metadata (because > metadata tombstone not supported). > - if the node that contains the old version of the type cannot join to the > cluster where type was removed and then updated to the new version (because > metadata versioned tombstone not supported). > So, user scenarios looks like: > # Be sure that all server nodes supports remove type feature. > # Remove caches contains the data with type to remove. > # Stops the client node with older version. > # Stops all operation with type to remove (don't create binary objects, don't > run compute jobs with type to remove). > # Remove the type on the stable topology (and production destination topolog). > # Waits any delay (depends on the cluster size and clients count) > # Produce operations with new version of the type. > *Proposed command line interface* > New commands (all commands are _experimental_ ): > - {{--meta list}} prints info about all available binary types: > {{typeId=<ID>, typeName=<name>, fields=<fields_count>, > schemas=<schemas_count>, isEnum=<bool>}} > - {{\-\-meta details (\-\- typeId <ID>| \-\-typeName <name>)}} prints > detailed info info about specified type. The type may be specified by type > name or type ID. > output example: > {code} > typeId=0x1FBFBC0C (532659212) > typeName=TypeName1 > Fields: > name=fld3, type=long[], fieldId=0x2FFF95 (3145621) > name=fld2, type=double, fieldId=0x2FFF94 (3145620) > name=fld1, type=Date, fieldId=0x2FFF93 (3145619) > name=fld0, type=int, fieldId=0x2FFF92 (3145618) > Schemas: > schemaId=0x6C5CC179 (1818018169), fields=[fld0] > schemaId=0x70E46431 (1894016049), fields=[fld0, fld1, fld2, fld3] > {code} > - {{\-\-meta remove (\-\- typeId <ID>| \-\-typeName <name>) [\-\-out > <file_name>]}} removes metadata for specified type form cluster and saves the > removed metadata to the specified file. If the file name isn't specified the > output file name is: {{<typeId>.bin}} > The command requires confirmation. > *N.B.*: The all session of thin clients (ODBC, JDBC, thin client) are closed > (to cleanup local cache of the binary metadata). > - {{\-\-meta update \-\-in <file_name>]}} update cluster metadata from > specified file (file name is required) > The command requires confirmation. -- This message was sent by Atlassian Jira (v8.3.4#803005)