[ 
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)

Reply via email to