forked from opensearch-project/OpenSearch
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Bharathwaj G <bharath78910@gmail.com>
- Loading branch information
1 parent
fa1f2cd
commit da3d6ee
Showing
11 changed files
with
533 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
39 changes: 39 additions & 0 deletions
39
server/src/main/java/org/opensearch/action/search/GetAllPITNodeRequest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
/* | ||
* SPDX-License-Identifier: Apache-2.0 | ||
* | ||
* The OpenSearch Contributors require contributions made to | ||
* this file be licensed under the Apache-2.0 license or a | ||
* compatible open source license. | ||
*/ | ||
|
||
package org.opensearch.action.search; | ||
|
||
import org.opensearch.action.support.nodes.BaseNodeRequest; | ||
import org.opensearch.common.inject.Inject; | ||
import org.opensearch.common.io.stream.StreamInput; | ||
import org.opensearch.common.io.stream.StreamOutput; | ||
|
||
import java.io.IOException; | ||
|
||
/** | ||
* Request to get all active PITs in a node | ||
*/ | ||
public class GetAllPITNodeRequest extends BaseNodeRequest { | ||
GetAllPITNodesRequest request; | ||
|
||
@Inject | ||
public GetAllPITNodeRequest(GetAllPITNodesRequest request) { | ||
this.request = request; | ||
} | ||
|
||
public GetAllPITNodeRequest(StreamInput in) throws IOException { | ||
super(in); | ||
request = new GetAllPITNodesRequest(in); | ||
} | ||
|
||
@Override | ||
public void writeTo(StreamOutput out) throws IOException { | ||
super.writeTo(out); | ||
request.writeTo(out); | ||
} | ||
} |
67 changes: 67 additions & 0 deletions
67
server/src/main/java/org/opensearch/action/search/GetAllPITNodeResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
/* | ||
* SPDX-License-Identifier: Apache-2.0 | ||
* | ||
* The OpenSearch Contributors require contributions made to | ||
* this file be licensed under the Apache-2.0 license or a | ||
* compatible open source license. | ||
*/ | ||
|
||
package org.opensearch.action.search; | ||
|
||
import org.opensearch.action.support.nodes.BaseNodeResponse; | ||
import org.opensearch.cluster.node.DiscoveryNode; | ||
import org.opensearch.common.inject.Inject; | ||
import org.opensearch.common.io.stream.StreamInput; | ||
import org.opensearch.common.io.stream.StreamOutput; | ||
import org.opensearch.common.xcontent.ToXContentFragment; | ||
import org.opensearch.common.xcontent.XContentBuilder; | ||
|
||
import java.io.IOException; | ||
import java.util.Collections; | ||
import java.util.List; | ||
|
||
/** | ||
* Response which holds information about all PIT contexts in a node | ||
*/ | ||
public class GetAllPITNodeResponse extends BaseNodeResponse implements ToXContentFragment { | ||
private List<PitInfo> pitsInfo; | ||
|
||
@Inject | ||
public GetAllPITNodeResponse(StreamInput in, List<PitInfo> pitsInfo) throws IOException { | ||
super(in); | ||
this.pitsInfo = pitsInfo; | ||
} | ||
|
||
public GetAllPITNodeResponse(DiscoveryNode node, List<PitInfo> pitsInfo) { | ||
super(node); | ||
this.pitsInfo = pitsInfo; | ||
} | ||
|
||
public GetAllPITNodeResponse(StreamInput in) throws IOException { | ||
super(in); | ||
this.pitsInfo = Collections.unmodifiableList(in.readList(PitInfo::new)); | ||
} | ||
|
||
public List<PitInfo> getPitsInfo() { | ||
return pitsInfo; | ||
} | ||
|
||
@Override | ||
public void writeTo(StreamOutput out) throws IOException { | ||
super.writeTo(out); | ||
out.writeList(pitsInfo); | ||
} | ||
|
||
@Override | ||
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { | ||
builder.startObject(); | ||
builder.startArray("pitsInfo"); | ||
for (PitInfo pit : pitsInfo) { | ||
pit.toXContent(builder, params); | ||
} | ||
builder.endArray(); | ||
builder.endObject(); | ||
return builder; | ||
} | ||
|
||
} |
36 changes: 36 additions & 0 deletions
36
server/src/main/java/org/opensearch/action/search/GetAllPITNodesRequest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
/* | ||
* SPDX-License-Identifier: Apache-2.0 | ||
* | ||
* The OpenSearch Contributors require contributions made to | ||
* this file be licensed under the Apache-2.0 license or a | ||
* compatible open source license. | ||
*/ | ||
|
||
package org.opensearch.action.search; | ||
|
||
import org.opensearch.action.support.nodes.BaseNodesRequest; | ||
import org.opensearch.cluster.node.DiscoveryNode; | ||
import org.opensearch.common.inject.Inject; | ||
import org.opensearch.common.io.stream.StreamInput; | ||
import org.opensearch.common.io.stream.StreamOutput; | ||
|
||
import java.io.IOException; | ||
|
||
/** | ||
* Request to get all active PIT IDs in set of nodes | ||
*/ | ||
public class GetAllPITNodesRequest extends BaseNodesRequest<GetAllPITNodesRequest> { | ||
@Inject | ||
public GetAllPITNodesRequest(DiscoveryNode... concreteNodes) { | ||
super(concreteNodes); | ||
} | ||
|
||
public GetAllPITNodesRequest(StreamInput in) throws IOException { | ||
super(in); | ||
} | ||
|
||
@Override | ||
public void writeTo(StreamOutput out) throws IOException { | ||
super.writeTo(out); | ||
} | ||
} |
78 changes: 78 additions & 0 deletions
78
server/src/main/java/org/opensearch/action/search/GetAllPITNodesResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
/* | ||
* SPDX-License-Identifier: Apache-2.0 | ||
* | ||
* The OpenSearch Contributors require contributions made to | ||
* this file be licensed under the Apache-2.0 license or a | ||
* compatible open source license. | ||
*/ | ||
|
||
package org.opensearch.action.search; | ||
|
||
import org.opensearch.action.FailedNodeException; | ||
import org.opensearch.action.support.nodes.BaseNodesResponse; | ||
import org.opensearch.cluster.ClusterName; | ||
import org.opensearch.common.inject.Inject; | ||
import org.opensearch.common.io.stream.StreamInput; | ||
import org.opensearch.common.io.stream.StreamOutput; | ||
import org.opensearch.common.xcontent.ToXContentObject; | ||
import org.opensearch.common.xcontent.XContentBuilder; | ||
|
||
import java.io.IOException; | ||
import java.util.ArrayList; | ||
import java.util.HashSet; | ||
import java.util.List; | ||
import java.util.Set; | ||
import java.util.stream.Collectors; | ||
|
||
/** | ||
* Response structure to hold all active PIT contexts information from all nodes | ||
*/ | ||
public class GetAllPITNodesResponse extends BaseNodesResponse<GetAllPITNodeResponse> implements ToXContentObject { | ||
|
||
List<PitInfo> pitsInfo = new ArrayList<>(); | ||
|
||
@Inject | ||
public GetAllPITNodesResponse(StreamInput in) throws IOException { | ||
super(in); | ||
} | ||
|
||
public GetAllPITNodesResponse( | ||
ClusterName clusterName, | ||
List<GetAllPITNodeResponse> getAllPITNodeResponses, | ||
List<FailedNodeException> failures | ||
) { | ||
super(clusterName, getAllPITNodeResponses, failures); | ||
Set<String> uniquePitIds = new HashSet<>(); | ||
pitsInfo.addAll( | ||
getAllPITNodeResponses.stream() | ||
.flatMap(p -> p.getPitsInfo().stream().filter(t -> uniquePitIds.add(t.getPitId()))) | ||
.collect(Collectors.toList()) | ||
); | ||
} | ||
|
||
@Override | ||
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { | ||
builder.startObject(); | ||
builder.startArray("pitsInfo"); | ||
for (PitInfo pit : pitsInfo) { | ||
pit.toXContent(builder, params); | ||
} | ||
builder.endArray(); | ||
builder.endObject(); | ||
return builder; | ||
} | ||
|
||
@Override | ||
public List<GetAllPITNodeResponse> readNodesFrom(StreamInput in) throws IOException { | ||
return in.readList(GetAllPITNodeResponse::new); | ||
} | ||
|
||
@Override | ||
public void writeNodesTo(StreamOutput out, List<GetAllPITNodeResponse> nodes) throws IOException { | ||
out.writeList(nodes); | ||
} | ||
|
||
public List<PitInfo> getPITIDs() { | ||
return new ArrayList<>(pitsInfo); | ||
} | ||
} |
23 changes: 23 additions & 0 deletions
23
server/src/main/java/org/opensearch/action/search/GetAllPITsAction.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
/* | ||
* SPDX-License-Identifier: Apache-2.0 | ||
* | ||
* The OpenSearch Contributors require contributions made to | ||
* this file be licensed under the Apache-2.0 license or a | ||
* compatible open source license. | ||
*/ | ||
|
||
package org.opensearch.action.search; | ||
|
||
import org.opensearch.action.ActionType; | ||
|
||
/** | ||
* Action type for listing all PIT reader contexts | ||
*/ | ||
public class GetAllPITsAction extends ActionType<GetAllPITNodesResponse> { | ||
public static final GetAllPITsAction INSTANCE = new GetAllPITsAction(); | ||
public static final String NAME = "indices:data/readall/pit"; | ||
|
||
private GetAllPITsAction() { | ||
super(NAME, GetAllPITNodesResponse::new); | ||
} | ||
} |
58 changes: 58 additions & 0 deletions
58
server/src/main/java/org/opensearch/action/search/PitInfo.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
/* | ||
* SPDX-License-Identifier: Apache-2.0 | ||
* | ||
* The OpenSearch Contributors require contributions made to | ||
* this file be licensed under the Apache-2.0 license or a | ||
* compatible open source license. | ||
*/ | ||
|
||
package org.opensearch.action.search; | ||
|
||
import org.opensearch.common.io.stream.StreamInput; | ||
import org.opensearch.common.io.stream.StreamOutput; | ||
import org.opensearch.common.io.stream.Writeable; | ||
import org.opensearch.common.xcontent.ToXContentFragment; | ||
import org.opensearch.common.xcontent.XContentBuilder; | ||
|
||
import java.io.IOException; | ||
|
||
/** | ||
* This holds information about pit reader context such as pit id and creation time | ||
*/ | ||
public class PitInfo implements ToXContentFragment, Writeable { | ||
private final String pitId; | ||
private final long creationTime; | ||
|
||
public PitInfo(String pitId, long creationTime) { | ||
this.pitId = pitId; | ||
this.creationTime = creationTime; | ||
} | ||
|
||
public PitInfo(StreamInput in) throws IOException { | ||
this.pitId = in.readString(); | ||
this.creationTime = in.readLong(); | ||
} | ||
|
||
@Override | ||
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { | ||
builder.startObject(); | ||
builder.field("pitId", pitId); | ||
builder.field("creationTime", creationTime); | ||
builder.endObject(); | ||
return builder; | ||
} | ||
|
||
public String getPitId() { | ||
return pitId; | ||
} | ||
|
||
public long getCreationTime() { | ||
return creationTime; | ||
} | ||
|
||
@Override | ||
public void writeTo(StreamOutput out) throws IOException { | ||
out.writeString(pitId); | ||
out.writeLong(creationTime); | ||
} | ||
} |
Oops, something went wrong.