Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions frameworks/cardigan-grpc-tls/build.sh

This file was deleted.

15 changes: 0 additions & 15 deletions frameworks/cardigan-grpc-tls/meta.json

This file was deleted.

9 changes: 0 additions & 9 deletions frameworks/cardigan-grpc/build.sh

This file was deleted.

15 changes: 0 additions & 15 deletions frameworks/cardigan-grpc/meta.json

This file was deleted.

9 changes: 0 additions & 9 deletions frameworks/cardigan-h2/build.sh

This file was deleted.

16 changes: 0 additions & 16 deletions frameworks/cardigan-h2/meta.json

This file was deleted.

9 changes: 0 additions & 9 deletions frameworks/cardigan-h2c/build.sh

This file was deleted.

15 changes: 0 additions & 15 deletions frameworks/cardigan-h2c/meta.json

This file was deleted.

9 changes: 0 additions & 9 deletions frameworks/cardigan-json-tls/build.sh

This file was deleted.

15 changes: 0 additions & 15 deletions frameworks/cardigan-json-tls/meta.json

This file was deleted.

3 changes: 0 additions & 3 deletions frameworks/cardigan/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,6 @@ RUN apt-get update \
&& apt-get install -y --no-install-recommends libssl3 \
&& rm -rf /var/lib/apt/lists/*

ARG CARDIGAN_HTTPARENA_MODE=h1
ENV CARDIGAN_HTTPARENA_MODE=${CARDIGAN_HTTPARENA_MODE}

WORKDIR /app
COPY --from=build /src/target/cardigan-httparena.jar ./cardigan-httparena.jar
COPY --from=build /deps ./lib
Expand Down
4 changes: 1 addition & 3 deletions frameworks/cardigan/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,4 @@
set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd -P)"
docker build -t httparena-cardigan \
--build-arg CARDIGAN_HTTPARENA_MODE=h1 \
"$SCRIPT_DIR"
docker build -t httparena-cardigan "$SCRIPT_DIR"
8 changes: 7 additions & 1 deletion frameworks/cardigan/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,13 @@
"baseline",
"latency-1m", "latency-10k",
"pipelined",
"limited-conn"
"limited-conn",
"json-tls",
"baseline-h2",
"static-h2",
"baseline-h2c",
"unary-grpc",
"unary-grpc-tls"
],
"maintainers": [
"phjeltman"
Expand Down
2 changes: 1 addition & 1 deletion frameworks/cardigan/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
<maven.compiler.release>26</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.deploy.skip>true</maven.deploy.skip>
<cardigan.version>0.1.0-alpha.3</cardigan.version>
<cardigan.version>0.1.0-alpha.4</cardigan.version>
<junit.jupiter.version>5.11.0</junit.jupiter.version>
</properties>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public final class HttpArenaController {
public Response baseline11(
@QueryParam("a") int a,
@QueryParam("b") int b) {
return Response.text(Long.toString((long) a + b));
return Response.text((long) a + b);
}

@Post("/baseline11")
Expand All @@ -31,7 +31,7 @@ public Response baseline11(
MemorySegment scratch = arena.allocate(64);
sum += readLong(body, scratch);
}
return Response.text(Long.toString(sum));
return Response.text(sum);
}

@Get("/pipeline")
Expand All @@ -43,7 +43,7 @@ public Response pipeline() {
public Response baseline2(
@QueryParam("a") int a,
@QueryParam("b") int b) {
return Response.text(Long.toString((long) a + b));
return Response.text((long) a + b);
}

private static long readLong(RequestBody body, MemorySegment scratch) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ static HttpArenaDataset load(Path path) throws IOException {
throw new IllegalArgumentException(
"Dataset item is not a JSON object");
}
prefixes[index] = Arrays.copyOfRange(
prefixes[index] = compactJson(
source, range[0], close);
Value item = Serdes.parseOnDemand(
MemorySegment.ofArray(source),
Expand Down Expand Up @@ -159,6 +159,36 @@ private static List<int[]> itemRanges(byte[] source) {
return ranges;
}

private static byte[] compactJson(byte[] source, int start, int end) {
byte[] compacted = new byte[end - start];
int output = 0;
boolean string = false;
boolean escaped = false;
for (int index = start; index < end; index++) {
byte current = source[index];
if (string) {
compacted[output++] = current;
if (escaped) {
escaped = false;
} else if (current == '\\') {
escaped = true;
} else if (current == '"') {
string = false;
}
} else if (current == '"') {
string = true;
compacted[output++] = current;
} else if (!isWhitespace(current)) {
compacted[output++] = current;
}
}
if (string) {
throw new IllegalArgumentException("Malformed JSON dataset");
}
return output == compacted.length
? compacted : Arrays.copyOf(compacted, output);
}

private static int copy(byte[] source, long target, int offset) {
RawSegment.copy(source, 0, target + offset, source.length);
return offset + source.length;
Expand Down
Loading