public IdealStateBuilderUtil(String tableNameWithType) { _tableName = tableNameWithType; _rawTableName = TableNameBuilder.extractRawTableName(tableNameWithType); _idealState = new IdealState(tableNameWithType); }
public static IdealState cloneIdealState(IdealState idealState) { return new IdealState( (ZNRecord) ZN_RECORD_SERIALIZER.deserialize(ZN_RECORD_SERIALIZER.serialize(idealState.getRecord()))); }
@BeforeMethod public void setup() { current = new IdealState("rebalance"); current.setPartitionState(segmentId, "host1", "ONLINE"); current.setPartitionState(segmentId, "host2", "ONLINE"); downtime.setProperty(RebalanceUserConfigConstants.DOWNTIME, true); noDowntime.setProperty(RebalanceUserConfigConstants.DOWNTIME, false); }
ZNRecordSerializer znRecordSerializer = new ZNRecordSerializer(); IdealState idealStateCopy = new IdealState((ZNRecord) znRecordSerializer.deserialize(znRecordSerializer.serialize(idealState.getRecord()))); Map<String, Map<String, String>> oldMapFields = idealStateCopy.getRecord().getMapFields(); Map<String, LLCRealtimeSegmentZKMetadata> oldMetadataMap = new HashMap<>(segmentManager._metadataMap.size());
IdealState idealState = new IdealState(tableName);
IdealState idealState = new IdealState(tableName); idealState.setReplicas(nReplicasStr); idealState.setRebalanceMode(IdealState.RebalanceMode.CUSTOMIZED);
List<String> allTableNames = new ArrayList<String>(); allTableNames.add(tableName); IdealState idealState = new IdealState(tableName); idealState.setPartitionState("myTable_0", "pinot1", "OFFLINE"); idealState.setPartitionState("myTable_0", "pinot2", "OFFLINE");
List<String> allTableNames = new ArrayList<String>(); allTableNames.add(tableName); IdealState idealState = new IdealState(tableName);
List<String> allTableNames = new ArrayList<String>(); allTableNames.add(tableName); IdealState idealState = new IdealState(tableName); idealState.setPartitionState("myTable_0", "pinot1", "ONLINE"); idealState.setPartitionState("myTable_0", "pinot2", "ONLINE");
/** * Regression test for large ideal state updates failing silently */ @Test public void testWriteLargeIdealState() { final int numSegments = 20000; IdealState idealState = new IdealState(RESOURCE_NAME); idealState.setStateModelDefRef("OnlineOffline"); idealState.setRebalanceMode(IdealState.RebalanceMode.CUSTOMIZED); idealState.setReplicas("0"); String helixClusterName = getHelixClusterName(); _helixAdmin.addResource(helixClusterName, RESOURCE_NAME, idealState); HelixHelper.updateIdealState(_helixManager, RESOURCE_NAME, new Function<IdealState, IdealState>() { @Override public IdealState apply(@Nullable IdealState idealState) { Assert.assertNotNull(idealState); for (int i = 0; i < numSegments; i++) { idealState.setPartitionState("segment_" + i, INSTANCE_NAME, "ONLINE"); } return idealState; } }, RetryPolicies.noDelayRetryPolicy(1)); IdealState resourceIdealState = _helixAdmin.getResourceIdealState(helixClusterName, RESOURCE_NAME); for (int i = 0; i < numSegments; i++) { Assert.assertEquals(resourceIdealState.getInstanceStateMap("segment_" + i).get(INSTANCE_NAME), "ONLINE"); } }
_realtimeSegmentRelocator.setTagToInstance(serverTenantCompleted, completedInstanceList); IdealState prevIdealState = new IdealState((ZNRecord) znRecordSerializer.deserialize(znRecordSerializer.serialize(idealState.getRecord()))); _realtimeSegmentRelocator.relocateSegments(realtimeTagConfig, idealState); Assert.assertEquals(idealState, prevIdealState); idealState.setInstanceStateMap("segment0", instanceStateMap0); prevIdealState = new IdealState((ZNRecord) znRecordSerializer.deserialize(znRecordSerializer.serialize(idealState.getRecord()))); _realtimeSegmentRelocator.relocateSegments(realtimeTagConfig, idealState); Assert.assertEquals(idealState, prevIdealState); new IdealState((ZNRecord) znRecordSerializer.deserialize(znRecordSerializer.serialize(idealState.getRecord()))); _realtimeSegmentRelocator.relocateSegments(realtimeTagConfig, idealState); Assert.assertEquals(idealState, prevIdealState); new IdealState((ZNRecord) znRecordSerializer.deserialize(znRecordSerializer.serialize(idealState.getRecord()))); _realtimeSegmentRelocator.relocateSegments(realtimeTagConfig, idealState); Assert.assertEquals(idealState, prevIdealState); new IdealState((ZNRecord) znRecordSerializer.deserialize(znRecordSerializer.serialize(idealState.getRecord()))); _realtimeSegmentRelocator.relocateSegments(realtimeTagConfig, idealState); Assert.assertNotSame(idealState, prevIdealState); new IdealState((ZNRecord) znRecordSerializer.deserialize(znRecordSerializer.serialize(idealState.getRecord()))); _realtimeSegmentRelocator.relocateSegments(realtimeTagConfig, idealState); Assert.assertNotSame(idealState, prevIdealState); _realtimeSegmentRelocator.setTagToInstance(serverTenantCompleted, completedInstanceList);
List<String> allTableNames = new ArrayList<String>(); allTableNames.add(tableName); IdealState idealState = new IdealState(tableName); idealState.setPartitionState("myTable_0", "pinot1", "ONLINE"); idealState.setPartitionState("myTable_0", "pinot2", "ONLINE");
List<String> allTableNames = new ArrayList<String>(); allTableNames.add(tableName); IdealState idealState = new IdealState(tableName); idealState.setPartitionState("myTable_0", "pinot1", "ONLINE"); idealState.setPartitionState("myTable_1", "pinot1", "ONLINE");
List<String> allTableNames = new ArrayList<String>(); allTableNames.add(tableName); IdealState idealState = new IdealState(tableName); idealState.setPartitionState("myTable_0", "pinot1", "ONLINE"); idealState.setPartitionState("myTable_0", "pinot2", "ONLINE");
callback.setIdealState(new IdealState(TABLE_NAME)); assertEquals(callback.getServiceStatus(), ServiceStatus.Status.STARTING); callback.setIdealState(new IdealState(TABLE_NAME)); callback.setExternalView(new ExternalView(TABLE_NAME)); assertEquals(callback.getServiceStatus(), ServiceStatus.Status.GOOD); IdealState idealState = new IdealState(TABLE_NAME); idealState.setRebalanceMode(IdealState.RebalanceMode.CUSTOMIZED); idealState.setPartitionState("mySegment", INSTANCE_NAME, "ONLINE"); idealState = new IdealState(TABLE_NAME); idealState.setRebalanceMode(IdealState.RebalanceMode.CUSTOMIZED); idealState.setPartitionState("mySegment_1", INSTANCE_NAME, "ONLINE"); idealState = new IdealState(TABLE_NAME); idealState.setRebalanceMode(IdealState.RebalanceMode.CUSTOMIZED); idealState.setPartitionState("mySegment_1", INSTANCE_NAME, "ONLINE"); idealState = new IdealState(TABLE_NAME); idealState.setRebalanceMode(IdealState.RebalanceMode.CUSTOMIZED); idealState.setPartitionState("mySegment_1", INSTANCE_NAME, "ONLINE");
final LLCSegmentName seg2 = new LLCSegmentName(rawTableName, 1, 1, System.currentTimeMillis()); final LLCSegmentName seg3 = new LLCSegmentName(rawTableName, 2, 1, System.currentTimeMillis()); IdealState idealState = new IdealState(tableName); idealState.setPartitionState(seg1.getSegmentName(), "pinot1", "ONLINE"); idealState.setPartitionState(seg1.getSegmentName(), "pinot2", "ONLINE");
IdealState idealStateCopy = new IdealState( (ZNRecord) znRecordSerializer.deserialize(znRecordSerializer.serialize(idealState.getRecord()))); Map<String, Map<String, String>> oldMapFields = idealStateCopy.getRecord().getMapFields(); IdealState idealStateCopy = new IdealState( (ZNRecord) znRecordSerializer.deserialize(znRecordSerializer.serialize(idealState.getRecord()))); Map<String, Map<String, String>> oldMapFields = idealStateCopy.getRecord().getMapFields(); IdealState idealStateCopy = new IdealState( (ZNRecord) znRecordSerializer.deserialize(znRecordSerializer.serialize(idealState.getRecord()))); Map<String, Map<String, String>> oldMapFields = idealStateCopy.getRecord().getMapFields(); IdealState idealStateCopy = new IdealState( (ZNRecord) znRecordSerializer.deserialize(znRecordSerializer.serialize(idealState.getRecord()))); Map<String, Map<String, String>> oldMapFields = idealStateCopy.getRecord().getMapFields(); IdealState idealStateCopy = new IdealState( (ZNRecord) znRecordSerializer.deserialize(znRecordSerializer.serialize(idealState.getRecord()))); Map<String, Map<String, String>> oldMapFields = idealStateCopy.getRecord().getMapFields(); IdealState idealStateCopy = new IdealState( (ZNRecord) znRecordSerializer.deserialize(znRecordSerializer.serialize(idealState.getRecord()))); Map<String, Map<String, String>> oldMapFields = idealStateCopy.getRecord().getMapFields();
@Override public ZNRecord update(ZNRecord znRecord) { // Need to swap again in case there are added partition with old instance swapInstanceInIdealState(new IdealState(znRecord), oldInstanceName, newInstanceName); return znRecord; } }, resourceIdealState);
@Override public ZNRecord update(ZNRecord currentData) { if (currentData == null) { throw new HelixException( "Cluster: " + clusterName + ", resource: " + resourceName + ", ideal-state is null"); } IdealState idealState = new IdealState(currentData); idealState.enable(enabled); return idealState.getRecord(); } }, AccessOption.PERSISTENT);
@Override public void addIdealState(String clusterName, String resourceName, String idealStateFile) throws IOException { logger.info("Add IdealState for resource {} to cluster {} by file name {}.", resourceName, clusterName, idealStateFile); ZNRecord idealStateRecord = (ZNRecord) (new ZNRecordSerializer().deserialize(readFile(idealStateFile))); if (idealStateRecord.getId() == null || !idealStateRecord.getId().equals(resourceName)) { throw new IllegalArgumentException("ideal state must have same id as resource name"); } setResourceIdealState(clusterName, resourceName, new IdealState(idealStateRecord)); }