Skip to content

Commit

Permalink
Miscellaneous cleanup of load queue references (apache#16367)
Browse files Browse the repository at this point in the history
Changes:
- Rename `DataSegmentChangeRequestAndStatus` to `DataSegmentChangeResponse`
- Rename `SegmentLoadDropHandler.Status` to `SegmentChangeStatus`
- Remove method `CoordinatorRunStats.getSnapshotAndReset()` as it was used only in
load queue peon implementations. Using an atomic reference is much simpler.
- Remove `ServerTestHelper.MAPPER`. Use existing `TestHelper.makeJsonMapper()` instead.
  • Loading branch information
kfaraz authored May 2, 2024
1 parent 2d0e86c commit e5b40b0
Show file tree
Hide file tree
Showing 20 changed files with 251 additions and 292 deletions.
1 change: 0 additions & 1 deletion integration-tests/k8s/tiny-cluster.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@ spec:
druid.discovery.type=k8s
druid.discovery.k8s.clusterIdentifier=druid-it
druid.serverview.type=http
druid.coordinator.loadqueuepeon.type=http
druid.indexer.runner.type=httpRemote
# Metadata Store
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package org.apache.druid.server.coordination;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;

/**
* Response of a {@link DataSegmentChangeRequest}. Contains the request itself
* and the result {@link SegmentChangeStatus}.
*/
public class DataSegmentChangeResponse
{
private final DataSegmentChangeRequest request;
private final SegmentChangeStatus status;

@JsonCreator
public DataSegmentChangeResponse(
@JsonProperty("request") DataSegmentChangeRequest request,
@JsonProperty("status") SegmentChangeStatus status
)
{
this.request = request;
this.status = status;
}

@JsonProperty
public DataSegmentChangeRequest getRequest()
{
return request;
}

@JsonProperty
public SegmentChangeStatus getStatus()
{
return status;
}

@Override
public String toString()
{
return "DataSegmentChangeResponse{" +
"request=" + request +
", status=" + status +
'}';
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package org.apache.druid.server.coordination;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Preconditions;

import javax.annotation.Nullable;

/**
* Contains {@link State} of a {@link DataSegmentChangeRequest} and failure
* message, if any.
*/
public class SegmentChangeStatus
{
public enum State
{
SUCCESS, FAILED, PENDING
}

private final State state;
@Nullable
private final String failureCause;

public static final SegmentChangeStatus SUCCESS = new SegmentChangeStatus(State.SUCCESS, null);
public static final SegmentChangeStatus PENDING = new SegmentChangeStatus(State.PENDING, null);

public static SegmentChangeStatus failed(String cause)
{
return new SegmentChangeStatus(State.FAILED, cause);
}

@JsonCreator
private SegmentChangeStatus(
@JsonProperty("state") State state,
@JsonProperty("failureCause") @Nullable String failureCause
)
{
this.state = Preconditions.checkNotNull(state, "state must be non-null");
this.failureCause = failureCause;
}

@JsonProperty
public State getState()
{
return state;
}

@Nullable
@JsonProperty
public String getFailureCause()
{
return failureCause;
}

@Override
public String toString()
{
return "SegmentChangeStatus{" +
"state=" + state +
", failureCause='" + failureCause + '\'' +
'}';
}
}
Loading

0 comments on commit e5b40b0

Please sign in to comment.