Skip to content
Merged
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
11 changes: 10 additions & 1 deletion .github/workflows/pd-store-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,11 @@ jobs:
mvn test -pl hugegraph-store/hg-store-test -am \
-P store-raftcore-test -Djacoco.sessionId=store-raftcore-test

- name: Run core test
run: |
mvn test -pl hugegraph-store/hg-store-test -am \
-P store-core-test -Djacoco.sessionId=store-core-test

- name: Generate aggregate coverage report
run: |
mvn verify -pl hugegraph-store/hg-store-test -am -P jacoco \
Expand All @@ -311,15 +316,19 @@ jobs:
"$TEST_REPORT_DIR/TEST-org.apache.hugegraph.store.rocksdb.RocksDbSuiteTest.xml" \
--require-test-report \
"$TEST_REPORT_DIR/TEST-org.apache.hugegraph.store.raftcore.RaftSuiteTest.xml" \
--require-test-report \
"$TEST_REPORT_DIR/TEST-org.apache.hugegraph.store.core.CoreSuiteTest.xml" \
--require-covered-group hg-store-common \
--require-covered-group hg-store-client \
--require-covered-group hg-store-rocksdb \
--require-covered-group hg-store-core \
--require-session store-common-test \
--require-session store-client-test \
--require-session store-rocksdb-test \
--require-session store-raftcore-test \
--require-session store-core-test \
"$REPORT_FILE" \
hg-store-grpc hg-store-common hg-store-client hg-store-rocksdb
hg-store-grpc hg-store-common hg-store-client hg-store-rocksdb hg-store-core

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -499,21 +499,22 @@ assert "mvn verify -pl hugegraph-store/hg-store-test -am -P jacoco \\ " \
"-DskipTests -Deditorconfig.skip=true -ntp" in " ".join(store_job.split())
assert selected_profiles(store_job, "store") == {
"store-common-test", "store-client-test", "store-rocksdb-test",
"store-raftcore-test",
"store-raftcore-test", "store-core-test",
}
assert reports_for_option(store_job, "--require-test-report") == {
"TEST-org.apache.hugegraph.store.common.CommonSuiteTest.xml",
"TEST-org.apache.hugegraph.store.client.ClientSuiteTest.xml",
"TEST-org.apache.hugegraph.store.rocksdb.RocksDbSuiteTest.xml",
"TEST-org.apache.hugegraph.store.raftcore.RaftSuiteTest.xml",
"TEST-org.apache.hugegraph.store.core.CoreSuiteTest.xml",
}
assert not reports_for_option(store_job, "--require-suite-report")
assert values_for_option(store_job, "--require-covered-group") == {
"hg-store-common", "hg-store-client", "hg-store-rocksdb",
"hg-store-common", "hg-store-client", "hg-store-rocksdb", "hg-store-core",
}
assert required_modules(store_job) == {
"hg-store-grpc", "hg-store-common", "hg-store-client",
"hg-store-rocksdb",
"hg-store-rocksdb", "hg-store-core",
}

print("PASS: JaCoCo aggregation configuration contract")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,22 @@ void lock(String path) throws InterruptedException,

void unlock(String path);

/**
* Non-blocking attempt to reserve the compactRange() window for partition {@code id}.
* Returns false if a compaction is actively running for that partition right now.
* Default throws, like {@link #scanOrdered}, so adding this compaction-lock helper does
* not break downstream implementations of this public interface that predate it.
*/
default boolean tryLockCompactionRange(int id) {
throw new UnsupportedOperationException(
"Compaction-range locking is not supported");
}

default void unlockCompactionRange(int id) {
throw new UnsupportedOperationException(
"Compaction-range locking is not supported");
}

void awaitAndSetLock(int id, int expectedValue, int value) throws InterruptedException,
TimeoutException;

Expand All @@ -239,6 +255,18 @@ void awaitAndSetLock(int id, int expectedValue, int value) throws InterruptedExc

String getLockPath(int partitionId);

/**
* The path lock state for {@code path} as set by {@link #lock} / {@link #unlock}
* ({@link #compactionCanStart} or {@link #doing}), or {@code null} if {@code path} has
* never been locked. Default throws, like {@link #scanOrdered}, so adding this
* compaction-lock helper does not break downstream implementations of this public
* interface that predate it.
*/
default AtomicInteger getPathLockState(String path) {
throw new UnsupportedOperationException(
"Compaction-range locking is not supported");
}

List<Integer> getPartitionIds(String graph);

@NotThreadSafe
Expand Down
Loading
Loading