Skip to content

Commit

Permalink
Upgraded jakcson-core to 2.15.4
Browse files Browse the repository at this point in the history
  • Loading branch information
Mariamalmesfer authored and Mariam Almesfer committed Oct 16, 2024
1 parent 27eb666 commit 882df2c
Show file tree
Hide file tree
Showing 25 changed files with 313 additions and 51 deletions.
55 changes: 54 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@
<dep.ratis.version>2.2.0</dep.ratis.version>
<dep.errorprone.version>2.18.0</dep.errorprone.version>
<dep.guava.version>32.1.0-jre</dep.guava.version>
<dep.jackson.version>2.11.0</dep.jackson.version>
<dep.jackson.version>2.15.4</dep.jackson.version>
<dep.j2objc.version>2.8</dep.j2objc.version>
<dep.avro.version>1.11.3</dep.avro.version>
<dep.commons.compress.version>1.23.0</dep.commons.compress.version>
Expand Down Expand Up @@ -204,6 +204,12 @@

<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-handler</artifactId>
<version>4.1.107.Final</version>
</dependency>

<dependency>
<groupId>com.facebook.presto</groupId>
<artifactId>presto-testing-docker</artifactId>
Expand Down Expand Up @@ -771,6 +777,24 @@
<version>${dep.jackson.version}</version>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${dep.jackson.version}</version>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${dep.jackson.version}</version>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${dep.jackson.version}</version>
</dependency>

<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
Expand Down Expand Up @@ -2340,6 +2364,14 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.3.0</version>
<dependencies>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>extra-enforcer-rules</artifactId>
<version>1.6.2</version>
</dependency>
</dependencies>
<configuration>
<rules>
<requireUpperBoundDeps>
Expand All @@ -2351,6 +2383,7 @@
<exclude>com.fasterxml.jackson.core:jackson-annotations</exclude>
<exclude>com.fasterxml.jackson.core:jackson-core</exclude>
<exclude>com.fasterxml.jackson.core:jackson-databind</exclude>
<exclude>com.google.api.grpc:proto-google-common-protos</exclude>
</excludes>
</requireUpperBoundDeps>
</rules>
Expand Down Expand Up @@ -2394,6 +2427,26 @@
</pluginManagement>

<plugins>

<plugin>
<groupId>org.basepom.maven</groupId>
<artifactId>duplicate-finder-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
<configuration>
<ignoredClassPatterns combine.children="append">
<ignoredClassPattern>module-info</ignoredClassPattern>
<ignoredClassPattern>META-INF.versions.9.module-info</ignoredClassPattern>
</ignoredClassPatterns>
</configuration>
</plugin>
<plugin>
<groupId>com.facebook.presto</groupId>
<artifactId>presto-maven-plugin</artifactId>
Expand Down
11 changes: 0 additions & 11 deletions presto-cassandra/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -185,17 +185,6 @@
</dependency>
</dependencies>

<dependencyManagement>
<!-- This is to fix the upper bound issues arising out of different components-->
<dependencies>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-handler</artifactId>
<version>4.1.107.Final</version>
</dependency>
</dependencies>
</dependencyManagement>

<build>
<plugins>
<plugin>
Expand Down
27 changes: 27 additions & 0 deletions presto-docs/src/main/sphinx/overview/concepts.rst
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,33 @@ that statement. A query encompasses stages, tasks, splits, connectors,
and other components and data sources working in concert to produce a
result.

Query Plan
^^^^^^^^^^

A query plan is a sequence of steps used to access and manipulate data
according to the SQL query. It is represented as a tree of nodes, with
each node loosely representing an `operator <https://prestodb.io/docs/current/overview/concepts.html#operator>`_.
Since SQL is declarative, multiple query plans can be generated to execute
a given query. Because query plans can have different performance behavior,
Presto uses a query optimizer to choose an efficient plan.

There are two phases of optimization: logical and physical. The logical
phase of optimization transforms plans by only considering algorithmic
complexity. The logically optimized query plan is then converted into
a physical query plan, which is optimized for distributed execution and
includes details such as the number and
`types <https://prestodb.io/docs/current/overview/concepts.html#server-types>`_
of Presto servers which should process a query plan node, and how data is
`exchanged <https://prestodb.io/docs/current/overview/concepts.html#exchange>`_
between them.

Plan Fragment
^^^^^^^^^^^^^

A plan fragment is a section of the physical query plan executed by
`tasks <https://prestodb.io/docs/current/overview/concepts.html#task>`_ on different
`Presto servers <https://prestodb.io/docs/current/overview/concepts.html#server-types>`_.

Stage
^^^^^

Expand Down
8 changes: 4 additions & 4 deletions presto-docs/src/main/sphinx/sql/explain.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ Description
-----------

Show the logical or distributed execution plan of a statement, or validate the statement.
Use ``TYPE DISTRIBUTED`` option to display fragmented plan. Each plan fragment is executed by
a single or multiple Presto nodes. Fragments separation represent the data exchange between Presto nodes.
Fragment type specifies how the fragment is executed by Presto nodes and how the data is
distributed between fragments:
Use ``TYPE DISTRIBUTED`` option to display fragmented plan. Each
`plan fragment <https://prestodb.io/docs/current/overview/concepts.html#plan-fragment>`_
is executed by a single or multiple Presto nodes. Fragment type specifies how the fragment
is executed by Presto nodes and how the data is distributed between fragments:

``SINGLE``
Fragment is executed on a single node.
Expand Down
1 change: 0 additions & 1 deletion presto-iceberg/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -459,7 +459,6 @@
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.10.2</version>
<scope>provided</scope>
</dependency>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,12 +66,6 @@ protected boolean supportsNotNullColumns()
return false;
}

@Override
public void testRenameTable()
{
// Rename table are not supported by the connector
}

@Override
public void testUpdate()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,10 @@ protected boolean supportsViews()
{
return false;
}

@Override
public void testRenameTable()
{
// Rename table are not supported by hadoop catalog
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,10 @@ public TestIcebergHiveCatalogDistributedQueries()
{
super(HIVE, ImmutableMap.of("iceberg.hive-statistics-merge-strategy", Joiner.on(",").join(NUMBER_OF_DISTINCT_VALUES.name(), TOTAL_SIZE_IN_BYTES.name())));
}

@Override
public void testRenameTable()
{
// Rename table are not supported by hive catalog
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ public class OperatorContext
private final DriverContext driverContext;
private final Executor executor;

private final OperationTiming isBlockedTiming = new OperationTiming();

private final CounterStat rawInputDataSize = new CounterStat();
private final CounterStat rawInputPositions = new CounterStat();

Expand Down Expand Up @@ -536,6 +538,11 @@ public OperatorStats getOperatorStats()

1,

isBlockedTiming.getCalls(),
succinctNanos(isBlockedTiming.getWallNanos()),
succinctNanos(isBlockedTiming.getCpuNanos()),
succinctBytes(isBlockedTiming.getAllocationBytes()),

addInputTiming.getCalls(),
succinctNanos(addInputTiming.getWallNanos()),
succinctNanos(addInputTiming.getCpuNanos()),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,11 @@ public class OperatorStats

private final long totalDrivers;

private final long isBlockedCalls;
private final Duration isBlockedWall;
private final Duration isBlockedCpu;
private final DataSize isBlockedAllocation;

private final long addInputCalls;
private final Duration addInputWall;
private final Duration addInputCpu;
Expand Down Expand Up @@ -113,6 +118,11 @@ public OperatorStats(

@JsonProperty("totalDrivers") long totalDrivers,

@JsonProperty("isBlockedCalls") long isBlockedCalls,
@JsonProperty("isBlockedWall") Duration isBlockedWall,
@JsonProperty("isBlockedCpu") Duration isBlockedCpu,
@JsonProperty("isBlockedAllocation") DataSize isBlockedAllocation,

@JsonProperty("addInputCalls") long addInputCalls,
@JsonProperty("addInputWall") Duration addInputWall,
@JsonProperty("addInputCpu") Duration addInputCpu,
Expand Down Expand Up @@ -171,6 +181,11 @@ public OperatorStats(

this.totalDrivers = totalDrivers;

this.isBlockedCalls = isBlockedCalls;
this.isBlockedWall = requireNonNull(isBlockedWall, "isBlockedWall is null");
this.isBlockedCpu = requireNonNull(isBlockedCpu, "isBlockedCpu is null");
this.isBlockedAllocation = requireNonNull(isBlockedAllocation, "isBlockedAllocation is null");

this.addInputCalls = addInputCalls;
this.addInputWall = requireNonNull(addInputWall, "addInputWall is null");
this.addInputCpu = requireNonNull(addInputCpu, "addInputCpu is null");
Expand Down Expand Up @@ -235,6 +250,11 @@ public OperatorStats(

long totalDrivers,

long isBlockedCalls,
Duration isBlockedWall,
Duration isBlockedCpu,
DataSize isBlockedAllocation,

long addInputCalls,
Duration addInputWall,
Duration addInputCpu,
Expand Down Expand Up @@ -293,6 +313,11 @@ public OperatorStats(

this.totalDrivers = totalDrivers;

this.isBlockedCalls = isBlockedCalls;
this.isBlockedWall = requireNonNull(isBlockedWall, "isBlockedWall is null");
this.isBlockedCpu = requireNonNull(isBlockedCpu, "isBlockedCpu is null");
this.isBlockedAllocation = requireNonNull(isBlockedAllocation, "isBlockedAllocation is null");

this.addInputCalls = addInputCalls;
this.addInputWall = requireNonNull(addInputWall, "addInputWall is null");
this.addInputCpu = requireNonNull(addInputCpu, "addInputCpu is null");
Expand Down Expand Up @@ -663,6 +688,34 @@ public DynamicFilterStats getDynamicFilterStats()
return dynamicFilterStats;
}

@JsonProperty
@ThriftField(45)
public long getIsBlockedCalls()
{
return isBlockedCalls;
}

@JsonProperty
@ThriftField(46)
public Duration getIsBlockedWall()
{
return isBlockedWall;
}

@JsonProperty
@ThriftField(47)
public Duration getIsBlockedCpu()
{
return isBlockedCpu;
}

@JsonProperty
@ThriftField(48)
public DataSize getIsBlockedAllocation()
{
return isBlockedAllocation;
}

public OperatorStats add(OperatorStats operatorStats)
{
return add(ImmutableList.of(operatorStats));
Expand All @@ -672,6 +725,11 @@ public OperatorStats add(Iterable<OperatorStats> operators)
{
long totalDrivers = this.totalDrivers;

long isBlockedCalls = this.isBlockedCalls;
long isBlockedWall = this.isBlockedWall.roundTo(NANOSECONDS);
long isBlockedCpu = this.isBlockedCpu.roundTo(NANOSECONDS);
long isBlockedAllocation = this.isBlockedAllocation.toBytes();

long addInputCalls = this.addInputCalls;
long addInputWall = this.addInputWall.roundTo(NANOSECONDS);
long addInputCpu = this.addInputCpu.roundTo(NANOSECONDS);
Expand Down Expand Up @@ -724,6 +782,11 @@ public OperatorStats add(Iterable<OperatorStats> operators)

totalDrivers += operator.totalDrivers;

isBlockedCalls += operator.getGetOutputCalls();
isBlockedWall += operator.getGetOutputWall().roundTo(NANOSECONDS);
isBlockedCpu += operator.getGetOutputCpu().roundTo(NANOSECONDS);
isBlockedAllocation += operator.getIsBlockedAllocation().toBytes();

addInputCalls += operator.getAddInputCalls();
addInputWall += operator.getAddInputWall().roundTo(NANOSECONDS);
addInputCpu += operator.getAddInputCpu().roundTo(NANOSECONDS);
Expand Down Expand Up @@ -789,6 +852,11 @@ public OperatorStats add(Iterable<OperatorStats> operators)

totalDrivers,

isBlockedCalls,
succinctNanos(isBlockedWall),
succinctNanos(isBlockedCpu),
succinctBytes(isBlockedAllocation),

addInputCalls,
succinctNanos(addInputWall),
succinctNanos(addInputCpu),
Expand Down Expand Up @@ -866,6 +934,10 @@ public OperatorStats summarize()
planNodeId,
operatorType,
totalDrivers,
isBlockedCalls,
isBlockedWall,
isBlockedCpu,
isBlockedAllocation,
addInputCalls,
addInputWall,
addInputCpu,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,10 @@ private static OperatorStats convertToThriftOperatorStats(OperatorStats operator
operatorStats.getPlanNodeId(),
operatorStats.getOperatorType(),
operatorStats.getTotalDrivers(),
operatorStats.getIsBlockedCalls(),
operatorStats.getIsBlockedWall(),
operatorStats.getIsBlockedCpu(),
operatorStats.getIsBlockedAllocation(),
operatorStats.getAddInputCalls(),
operatorStats.getAddInputWall(),
operatorStats.getAddInputCpu(),
Expand Down Expand Up @@ -452,6 +456,10 @@ private static OperatorStats convertFromThriftOperatorStats(OperatorStats thrift
thriftOperatorStats.getPlanNodeId(),
thriftOperatorStats.getOperatorType(),
thriftOperatorStats.getTotalDrivers(),
thriftOperatorStats.getIsBlockedCalls(),
thriftOperatorStats.getIsBlockedWall(),
thriftOperatorStats.getIsBlockedCpu(),
thriftOperatorStats.getIsBlockedAllocation(),
thriftOperatorStats.getAddInputCalls(),
thriftOperatorStats.getAddInputWall(),
thriftOperatorStats.getAddInputCpu(),
Expand Down
Loading

0 comments on commit 882df2c

Please sign in to comment.