Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
207 commits
Select commit Hold shift + click to select a range
1252a0e
feat(ha-raft): add Maven module skeleton with Ratis dependencies
robfrank Feb 15, 2026
2663a2a
feat(ha-raft): add HA_IMPLEMENTATION, HA_RAFT_PORT, HA_REPLICATION_LA…
robfrank Feb 15, 2026
624b5be
feat(ha-raft): add RaftLogEntryCodec for TX and SCHEMA entry serializ…
robfrank Feb 15, 2026
972243f
feat(ha-raft): add ArcadeStateMachine with WAL and schema entry appli…
robfrank Feb 15, 2026
6edc6a1
feat(ha-raft): add ClusterMonitor for replication lag tracking
robfrank Feb 15, 2026
0bb9518
feat(ha-raft): add RaftHAServer wrapping Ratis RaftServer with peer l…
robfrank Feb 15, 2026
d2834da
feat(ha-raft): add SnapshotManager with checksum-based incremental sync
robfrank Feb 15, 2026
091f17a
feat(ha-raft): add RaftReplicatedDatabase wrapping LocalDatabase with…
robfrank Feb 15, 2026
0856098
feat(ha-raft): add RaftHAPlugin with ServiceLoader registration and c…
robfrank Feb 15, 2026
505b59b
docs: add HA Raft redesign design doc and implementation plan
robfrank Feb 15, 2026
2fbfb6b
feat(ha-raft): wire Raft HA plugin into server startup with database …
robfrank Feb 15, 2026
1973889
feat(ha-raft): wire end-to-end Raft pipeline, 2-node integration test…
robfrank Feb 15, 2026
1b6416f
feat(ha-raft): add 3-node majority quorum integration test
robfrank Feb 15, 2026
25660df
test(ha-raft): add failure scenario, schema replication, and quorum l…
robfrank Feb 16, 2026
bc46503
add notex to ignore
robfrank Feb 16, 2026
b1ec177
wip
robfrank Feb 20, 2026
f7e6dc0
feat(ha-raft): make Raft gRPC port configurable via HA_RAFT_PORT
robfrank Feb 20, 2026
552bde3
fixed pom
robfrank Feb 20, 2026
397bdf7
wip
robfrank Feb 23, 2026
0067f68
feat(ha-raft): replica-to-leader auth forwarding with cluster token
robfrank Feb 24, 2026
61f1d90
test(ha-raft): add ratis-test dependency for MiniRaftCluster support
robfrank Feb 24, 2026
5f133d1
feat(ha-raft): add HA_RAFT_PERSIST_STORAGE and HA_RAFT_SNAPSHOT_THRES…
robfrank Feb 24, 2026
b9be666
test(ha-raft): add persistentRaftStorage() + restartServer() to BaseR…
robfrank Feb 24, 2026
6089d23
feat(ha-raft): replica crash-and-recover test with Raft log replay
robfrank Feb 25, 2026
f0f40ad
test(ha-raft): add RaftLeaderCrashAndRecoverIT with leader rejoin and…
robfrank Feb 25, 2026
1725fe2
feat(ha-raft): add takeSnapshot() for log compaction + RaftFullSnapsh…
robfrank Feb 25, 2026
2357800
fix(ha-raft): code quality fixes from review
robfrank Feb 25, 2026
6c53faa
test(ha-raft): add BaseMiniRaftTest using MiniRaftClusterWithGrpc
robfrank Feb 25, 2026
bb0ec89
test(ha-raft): implement split-brain tests via MiniRaftClusterWithGrpc
robfrank Feb 25, 2026
eccac4a
test params increased
robfrank Feb 25, 2026
d80cf99
wip
robfrank Feb 28, 2026
dca6456
version fix
robfrank Mar 10, 2026
a2b8cbf
feat(ha-raft): implement leader command forwarding via HTTP and fix p…
robfrank Mar 24, 2026
23a40f7
feat(ha-raft): improve Raft log readability with clean cluster event …
robfrank Mar 25, 2026
2adec5c
test parameters
robfrank Mar 25, 2026
7d99aba
feat(e2e-ha): add TestContainers + Toxiproxy e2e tests for Raft HA
robfrank Mar 25, 2026
ecee378
fix(e2e-ha): use Docker network disconnect for partition tests
robfrank Mar 25, 2026
3777a6d
fix(e2e-ha): use DNS-valid container hostnames and improve test resil…
robfrank Mar 26, 2026
2b61fe0
add workflow for e2e-ha tests
robfrank Mar 26, 2026
d7e24b2
fix sha
robfrank Mar 26, 2026
b399e05
remove duplicated server dependency
robfrank Mar 26, 2026
46197e3
try to have the wf visible on pr
robfrank Mar 26, 2026
f8fb6d3
add logback conf to ha-tests
robfrank Mar 26, 2026
382ca51
fix(ha-raft): suppress Ratis DEBUG noise and fix missing root passwor…
robfrank Mar 26, 2026
ecbaeda
fix npe
robfrank Mar 26, 2026
15a31c4
fix npe
robfrank Mar 26, 2026
47084ac
fix tentative
robfrank Mar 26, 2026
1140fad
fix tentative
robfrank Mar 27, 2026
8658200
fix(ha-raft): refresh RaftClient gRPC channels on leader change to re…
robfrank Mar 28, 2026
e4a1775
fix(e2e-ha): wait for Raft leader election before writing during roll…
robfrank Mar 28, 2026
89c6b69
fix(e2e-ha): retry assertThatUserCountIs to tolerate Raft replication…
robfrank Apr 1, 2026
c7d369b
rebasewd
robfrank Apr 3, 2026
3c6fafc
build the image in workflow
robfrank Apr 3, 2026
fa98251
fix(e2e-ha): fix flaky ConditionTimeoutException in NetworkPartitionI…
robfrank Apr 3, 2026
5a1ca8d
docs: add HA-raft test porting design spec
robfrank Apr 4, 2026
a6d3f2e
docs: add ha-raft test porting implementation plan
robfrank Apr 4, 2026
981aef9
test(ha-raft): port HTTP layer IT tests from server/ha
robfrank Apr 4, 2026
32a6db2
fix(ha-raft-tests): fix AssertJ withFailMessage ordering and add cros…
robfrank Apr 4, 2026
edaa7e6
fix(ha-raft-tests): fix thread exit on null, port literal, replicatio…
robfrank Apr 4, 2026
a64a7b6
test(ha-raft): port write forwarding and schema/view IT tests from se…
robfrank Apr 4, 2026
349a861
fix(ha-raft): throw ServerIsNotTheLeaderException for schema changes …
robfrank Apr 4, 2026
b8ad44b
fix(ha-raft-tests): replace ArrayIndexOutOfBoundsException assertion …
robfrank Apr 4, 2026
de97699
test(ha-raft): port index compaction and operations IT tests from ser…
robfrank Apr 4, 2026
c90ec80
test(ha-raft): re-enable index tests that don't require compaction re…
robfrank Apr 5, 2026
26653b0
refactor(ha-raft-tests): promote findLeaderIndex to BaseRaftHATest, i…
robfrank Apr 5, 2026
89f8c57
test(ha-raft): port database utilities, config validation, and chaos …
robfrank Apr 5, 2026
6b305e2
fix(ha-raft-tests): address code quality issues in Task 4 tests and p…
robfrank Apr 5, 2026
5e4d320
fix(ha-raft): restore arcadedb-integration test dependency for backup…
robfrank Apr 5, 2026
bd55250
style(ha-raft): replace em dashes with regular dashes in Task 4 files
robfrank Apr 5, 2026
32c8cb7
test(ha-raft): port HAInsertBenchmark from apache-ratis branch as Raf…
robfrank Apr 5, 2026
cb86d33
fix(benchmark): add 1s port-release delay between benchmark scenarios
robfrank Apr 5, 2026
3aa6c37
fix(benchmark): move to port range 3480/3434 to avoid Oracle port con…
robfrank Apr 5, 2026
4a2365f
fix(test): write only via leader in RaftServerDatabaseSqlScriptIT
robfrank Apr 5, 2026
3788d53
docs: add design spec for porting apache-ratis improvements to ha-red…
robfrank Apr 5, 2026
52a3321
docs: add implementation plan for porting apache-ratis improvements
robfrank Apr 5, 2026
bdf5649
feat(ha-raft): add HALog verbose logging utility with configurable le…
robfrank Apr 5, 2026
a94993c
feat(ha-raft): add LZ4 compression for WAL data in Raft log entries
robfrank Apr 5, 2026
89f6c1b
feat(ha-raft): add Quorum enum replacing string-based HA_QUORUM config
robfrank Apr 5, 2026
3f0a8cd
perf(ha-raft): capture group-commit baseline benchmark numbers
robfrank Apr 5, 2026
9683955
feat(ha-raft): upgrade ArcadeStateMachine to SimpleStateMachineStorag…
robfrank Apr 5, 2026
e5703d1
feat(ha-raft): add RaftGroupCommitter for batched Raft submissions
robfrank Apr 5, 2026
f928c28
fix(ha-raft): update ArcadeStateMachineTest for BaseStateMachine INIT…
robfrank Apr 6, 2026
8419b72
feat(studio): port enhanced cluster monitor UI from apache-ratis branch
robfrank Apr 6, 2026
debe705
feat(ha-raft): wire snapshot install to Ratis + migrate debug logging…
robfrank Apr 6, 2026
9f1f783
test(ha-raft): add RaftReadConsistencyIT for linearizable read verifi…
robfrank Apr 6, 2026
1f2ee84
docs: add ha-redesign vs apache-ratis branch comparison report
robfrank Apr 6, 2026
49524d9
docs: update ha-redesign vs apache-ratis comparison with latest changes
robfrank Apr 6, 2026
67fe7d5
fix(ha-raft): fix ALL quorum race in group committer, add HALog level…
robfrank Apr 6, 2026
9b1ed5c
fix(ha-raft): add cluster token auth for snapshots, NIO zip-slip, WAL…
robfrank Apr 6, 2026
664d7d8
fix(ha-raft): PBKDF2 cluster token, configurable election timeouts an…
robfrank Apr 6, 2026
e8b3a34
docs: update branch comparison after porting security and config fixes
robfrank Apr 6, 2026
d97b7dc
fix(ha-raft): guard against null raftHAServer during server restart
robfrank Apr 6, 2026
3a49eb1
fix(ha-raft): propagate ArcadeDB exceptions from Raft commit instead …
robfrank Apr 6, 2026
9280eba
- docs: Ratis version bump in comparison doc U
robfrank Apr 6, 2026
a3a091f
fix(ha-raft): fix stale raftHAServer reference after server restart
robfrank Apr 6, 2026
b1853d8
fix(ha-raft): wait for Raft replication before database comparison in…
robfrank Apr 6, 2026
60711fd
fix(ha-raft): use 3 nodes in snapshot resync test so writes succeed w…
robfrank Apr 6, 2026
3d08f44
docs(ha-raft): update @Disabled message for lsmVectorReplication test
robfrank Apr 6, 2026
1a8e021
fix(ha-raft): prevent Raft log purging in crash test that causes infi…
robfrank Apr 6, 2026
add1794
fix(ha-raft): force leadership transfer after crash restart to fix st…
robfrank Apr 6, 2026
ba36a6d
fix(ha-raft): disable persistent Raft storage in crash test to avoid …
robfrank Apr 6, 2026
8a0feb8
test diaabled
robfrank Apr 6, 2026
6b59017
refactor(server): relocate ServerSocketFactory to com.arcadedb.server…
robfrank Apr 6, 2026
88221d3
feat(ha): remove legacy HA implementation
robfrank Apr 6, 2026
0e86a9a
chore(config): remove legacy-only HA configuration entries
robfrank Apr 7, 2026
89e86ea
feat(ha-raft): add dynamic membership, K8s auto-join, and read consis…
robfrank Apr 7, 2026
4f8d427
fix(ha-raft): bounded Raft client retry and robust membership/leaders…
robfrank Apr 7, 2026
68ce256
fix(ha-raft): fix verify database checksum comparison for cluster con…
robfrank Apr 7, 2026
3ca0fe5
fix(ha): forward server write commands to leader and make client clus…
robfrank Apr 7, 2026
502ec51
fix(e2e-ha): force leadership transfer after partition heals to refre…
robfrank Apr 7, 2026
6560019
fix(e2e-ha): restore Docker network aliases on reconnect after partition
robfrank Apr 7, 2026
5d4e321
fix(e2e-ha): replace unsupported 'none' quorum with 'majority' in Raf…
robfrank Apr 7, 2026
5f223d5
fix(network): remove redundant Authenticator from HttpClient to fix 4…
robfrank Apr 7, 2026
ccfe44e
fix(e2e-ha): increase PacketLossIT convergence timeouts to 180s
robfrank Apr 7, 2026
6bea24a
fix(server): fix RaftHAPlugin auto-discovery when not in server.plugi…
robfrank Apr 7, 2026
307dbe9
fix(server): include X-ArcadeDB-Forwarded-User header when forwarding…
robfrank Apr 7, 2026
b071e4c
fix(server): forward Basic auth as-is instead of using cluster token …
robfrank Apr 8, 2026
e243373
docs: add 3-phase commit port design spec
robfrank Apr 8, 2026
8ea170c
docs: add 3-phase commit port implementation plan
robfrank Apr 8, 2026
1f75a05
refactor(ha-raft): add ReplicationPayload record for 3-phase commit
robfrank Apr 8, 2026
3e2420f
docs: update branch comparison after 3-phase commit port
robfrank Apr 8, 2026
809b43d
fix(ha-raft): persist deferred schema save for read-only leader trans…
robfrank Apr 8, 2026
ee79011
fix(ha-raft): fix schema save under lock and exception propagation in…
robfrank Apr 8, 2026
7740e09
add benchmark results
robfrank Apr 8, 2026
932cfb7
feat(ha-raft): port logging improvements from apache-ratis branch
robfrank Apr 9, 2026
98bff51
fix(e2e-ha): fix schema comparison and test timeouts in HA e2e tests
robfrank Apr 9, 2026
e7e3c02
fix(e2e-ha): restart isolated nodes after partition to fix gRPC chann…
robfrank Apr 9, 2026
f09c00d
feat(ha-raft): save benchmark results to target/reports/RaftHAInsertB…
robfrank Apr 9, 2026
a978763
fix(e2e-ha): remove compareAllDatabases from HA test tearDown
robfrank Apr 9, 2026
af458bc
feat(ha-raft): add DROP_DATABASE_ENTRY and SECURITY_USERS_ENTRY log e…
robfrank Apr 10, 2026
a6153cf
refactor(ha-raft): extend DecodedEntry with usersJson and forceSnapsh…
robfrank Apr 10, 2026
716ee37
feat(ha-raft): encode/decode DROP_DATABASE_ENTRY
robfrank Apr 10, 2026
7878b22
feat(ha-raft): add forceSnapshot flag to INSTALL_DATABASE_ENTRY codec
robfrank Apr 10, 2026
6830009
feat(ha-raft): encode/decode SECURITY_USERS_ENTRY
robfrank Apr 10, 2026
c43c8f8
feat(server): add HAReplicatedDatabase.dropInReplicas() interface method
robfrank Apr 10, 2026
d8650a7
feat(ha-raft): implement dropInReplicas and createInReplicas(forceSna…
robfrank Apr 10, 2026
66c91c8
feat(ha-raft): apply DROP_DATABASE_ENTRY in state machine
robfrank Apr 10, 2026
bd347ac
feat(server): route drop database through Raft when HA is enabled
robfrank Apr 10, 2026
d58a832
test(ha-raft): integration test for drop database propagation across …
robfrank Apr 10, 2026
da99ac7
feat(ha-raft): honour forceSnapshot flag in applyInstallDatabaseEntry
robfrank Apr 10, 2026
4e07771
feat(server): replicate restored database to replicas via forceSnapsh…
robfrank Apr 10, 2026
9414ec1
fix(ha-raft): fix snapshot install for drop+restore and concurrent re…
robfrank Apr 10, 2026
08b366b
test(ha-raft): integration test for restore database propagation
robfrank Apr 10, 2026
74aa399
feat(server): create imported database via Raft before running importer
robfrank Apr 10, 2026
ddbf2cf
fix(engine): unwrap database in ImportDatabaseStatement for HA replic…
robfrank Apr 10, 2026
23f7d2a
test(ha-raft): integration test for import database propagation
robfrank Apr 10, 2026
541892c
feat(security): expose JSON payload helpers for HA user replication
robfrank Apr 10, 2026
a10aae3
feat(server): add HAServerPlugin.replicateSecurityUsers default method
robfrank Apr 10, 2026
e6a11b5
feat(ha-raft): implement RaftHAPlugin.replicateSecurityUsers
robfrank Apr 10, 2026
a52dd7e
feat(ha-raft): apply SECURITY_USERS_ENTRY in state machine
robfrank Apr 10, 2026
7478829
feat(server): route create user through Raft when HA is enabled
robfrank Apr 10, 2026
50aef59
feat(server): route drop user through Raft when HA is enabled
robfrank Apr 10, 2026
308059d
test(ha-raft): integration test for user replication across 3 nodes
robfrank Apr 11, 2026
0f768af
fix(security): drop synchronized on ServerSecurity users hooks to unb…
robfrank Apr 11, 2026
9ba04cb
feat(ha-raft): seed new peer with current users after peer-add
robfrank Apr 11, 2026
15667da
test(ha-raft): integration test for peer-add user seed
robfrank Apr 11, 2026
9758810
test(e2e-ha): container scenario for drop database propagation
robfrank Apr 11, 2026
25786f2
test(e2e-ha): container scenario for restore database propagation
robfrank Apr 11, 2026
a2247ed
test(e2e-ha): container scenario for import database propagation
robfrank Apr 11, 2026
6e7c675
test(e2e-ha): container scenario for user management propagation
robfrank Apr 11, 2026
c32ea8a
test(e2e-ha): container smoke test for peer-add seed endpoint wiring
robfrank Apr 11, 2026
637a9df
feat(ha): port production-resilience features from apache-ratis branch
robfrank Apr 12, 2026
2641996
fix(server): share single LeaderProxy per HttpServer instead of per h…
robfrank Apr 12, 2026
eaaac21
fix(ha-raft): disable HealthMonitor in tests to prevent thread exhaus…
robfrank Apr 12, 2026
d77cd91
fix(server): unwrap ServerDatabase to find HAReplicatedDatabase for r…
robfrank Apr 13, 2026
91abb31
fix(ha): prevent shared config file race in applyReplicatedUsers
robfrank Apr 13, 2026
c430592
fix(ha-raft): reduce record count in index operations test to prevent…
robfrank Apr 13, 2026
38cade2
feat(ha-raft): add GlobalConfiguration entries for snapshot install r…
robfrank Apr 14, 2026
2cf5728
feat(ha-raft): add SnapshotInstaller with crash-safe recovery logic
robfrank Apr 14, 2026
2e08c53
test(ha-raft): add SnapshotInstallerRetryTest for exponential backoff…
robfrank Apr 14, 2026
dc08bfa
docs(ha-raft): add design rationale Javadoc to ArcadeStateMachine
robfrank Apr 14, 2026
a2bab39
docs(ha-raft): add design rationale Javadoc to RaftReplicatedDatabase…
robfrank Apr 14, 2026
f49b866
test(ha-raft): port RaftHAServerAddressParsingTest edge cases from ap…
robfrank Apr 14, 2026
9057b5b
test(ha-raft): port HAConfigDefaultsTest from apache-ratis with new c…
robfrank Apr 14, 2026
13a8edd
test(ha-raft): add SnapshotInstallerIntegrationIT for end-to-end cras…
robfrank Apr 14, 2026
e2cfcd3
test(ha-raft): port RaftReplicaFailureIT for replica long-absence rec…
robfrank Apr 14, 2026
8002e88
fix(ha-raft): remove unused Files import from SnapshotInstallerIntegr…
robfrank Apr 14, 2026
39921c9
docs(ha-raft): add spec and implementation plan for snapshot installe…
robfrank Apr 14, 2026
d067f3c
docs(ha-raft): add spec and implementation plan for apache-ratis pari…
robfrank Apr 14, 2026
89bb97c
feat(engine): add WALVersionGapException for version gap detection
robfrank Apr 14, 2026
be4dbcc
feat(ha-raft): add MajorityCommittedAllFailedException and Replicatio…
robfrank Apr 14, 2026
6b16a18
feat(ha-raft): throw MajorityCommittedAllFailedException on ALL-quoru…
robfrank Apr 14, 2026
426b88a
fix(ha-raft): add ALL-quorum recovery and phase-2 failure escalation …
robfrank Apr 14, 2026
5a7c061
fix(ha-raft): add WAL version gap handling, persisted applied-index, …
robfrank Apr 14, 2026
647f508
fix(ha-raft): add emergency stop to ALL-quorum recovery, snapshot dow…
robfrank Apr 14, 2026
d106a7e
refactor(ha-raft): extract RaftPeerAddressResolver from RaftHAServer
robfrank Apr 14, 2026
54a1e0e
refactor(ha-raft): extract RaftPropertiesBuilder from RaftHAServer
robfrank Apr 14, 2026
03a5139
refactor(ha-raft): extract RaftClusterManager from RaftHAServer
robfrank Apr 14, 2026
9d89693
refactor(ha-raft): complete P3 architecture extraction from RaftHAServer
robfrank Apr 15, 2026
f802dc1
fix(ha-raft): harden SnapshotInstaller with symlink, zip-bomb, and SS…
robfrank Apr 15, 2026
dbe5cec
fix(ha-raft): harden SnapshotHttpHandler with auth, validation, and t…
robfrank Apr 15, 2026
5779b58
feat(ha-raft): wire ClusterTokenProvider into all cluster token call …
robfrank Apr 15, 2026
2491e0e
fix(ha-raft): return null for unknown RaftLogEntryType IDs
robfrank Apr 15, 2026
d730b32
test(ha-raft): port correctness-level tests from apache-ratis (P6)
robfrank Apr 15, 2026
c6538e7
chore(ha-raft): P7 polish - ForkJoinPool docs + linter formatting
robfrank Apr 15, 2026
0bb060c
fix: port 5 bug fixes from apache-ratis branch
robfrank Apr 15, 2026
8ea9e98
fix(ha-raft): prevent leader-skip for unapplied entries after restart
robfrank Apr 15, 2026
e74de1a
fix(ha-raft): fix RaftReplicationIT server list and follower write test
robfrank Apr 15, 2026
b6063e6
docs: add RaftTransactionBroker port design spec
robfrank Apr 15, 2026
c67b66f
docs: add RaftTransactionBroker implementation plan
robfrank Apr 15, 2026
61721be
feat(ha-raft): add CancellablePendingEntry to RaftGroupCommitter
robfrank Apr 15, 2026
6c836f0
fix(ha-raft): make CancellablePendingEntry private, remove unused get…
robfrank Apr 15, 2026
081b308
feat(ha-raft): add RaftTransactionBroker facade
robfrank Apr 15, 2026
3baf778
refactor(ha-raft): rewire all callers to use RaftTransactionBroker
robfrank Apr 15, 2026
08c7045
remove comparison doc
robfrank Apr 15, 2026
bc2ded1
fix(ha-raft): address code review findings - TOCTOU race, OOM bounds,…
robfrank Apr 15, 2026
68fc941
deleted
robfrank Apr 15, 2026
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
70 changes: 70 additions & 0 deletions .github/workflows/e2e-ha.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: E2E HA Tests

on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *" # Runs daily at midnight
pull_request:
branches:
- main


jobs:
setup:
runs-on: ubuntu-latest
permissions:
contents: write
packages: write
attestations: write
id-token: write

steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Ensure SHA pinned actions
uses: zgosalvez/github-actions-ensure-sha-pinned-actions@471d5ace1f08e3c4df1c4c2f7e6341aa75da434a # v5.0.3
- name: Run pre-commit
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: "3.13.0"
cache: "pip"
- uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1

- name: Set up JDK 21
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
distribution: "temurin"
java-version: 21

- name: Cache local Maven repository
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-

- name: Set up QEMU
uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0

- name: Build and package with Maven Docker profile
run: ./mvnw clean install -Pdocker -DskipTests --batch-mode --errors --show-version
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Run HA Tests
run: ./mvnw verify -DskipTests -Pintegration --batch-mode --errors --fail-never --show-version -pl e2e-ha
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Tests Reporter
uses: dorny/test-reporter@a43b3a5f7366b97d083190328d2c652e1a8b6aa2 # v3.0.0
if: success() || failure()
with:
name: IT Tests Report
path: "**/failsafe-reports/TEST*.xml"
list-tests: "failed"
list-suites: "failed"
reporter: java-junit
Comment thread Fixed
11 changes: 9 additions & 2 deletions .github/workflows/mvn-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,14 @@ jobs:
with:
distribution: "temurin"
java-version: 21
cache: "maven"

- name: Cache local Maven repository
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-

- name: Set up QEMU
uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0
Expand Down Expand Up @@ -223,7 +230,7 @@ jobs:
key: maven-repo-${{ github.run_id }}-${{ github.run_attempt }}

- name: Run Integration Tests with Coverage
run: ./mvnw verify -DskipTests -Pintegration -Pcoverage --batch-mode --errors --fail-never --show-version -pl !e2e,!load-tests
run: ./mvnw verify -DskipTests -Pintegration -Pcoverage --batch-mode --errors --fail-never --show-version -pl !e2e,!load-tests,!e2e-ha
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -557,6 +557,8 @@ dist
# Test database files
*.lsmvecidx
*.metadata.json

notes.txt
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The file notes.txt appears to be a personal note file. It's generally better to add such user-specific files to your global .gitignore file (e.g., ~/.config/git/ignore) or the repository's local exclude file (.git/info/exclude) rather than the project's shared .gitignore. This helps keep the project's ignore list clean and focused on project-specific generated files and artifacts.

/.claude/worktrees
/server/profiler
/server/chats
Expand Down
10 changes: 10 additions & 0 deletions ATTRIBUTIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,16 @@ The following table lists runtime dependencies bundled with ArcadeDB distributio
| io.undertow | undertow-core | ~2.3.x | Apache 2.0 | https://undertow.io/ |
| io.netty | netty-* | ~4.1.x | Apache 2.0 | https://netty.io/ |

### Apache Ratis (High Availability Module)

| Group ID | Artifact ID | Version | License | Homepage |
|----------|-------------|---------|---------|----------|
| org.apache.ratis | ratis-server | 3.2.2 | Apache 2.0 | https://ratis.apache.org/ |
| org.apache.ratis | ratis-grpc | 3.2.2 | Apache 2.0 | https://ratis.apache.org/ |
| org.apache.ratis | ratis-metrics-default | 3.2.2 | Apache 2.0 | https://ratis.apache.org/ |

**Apache Ratis Notice:** Apache Ratis is a Java library that implements the Raft consensus protocol. See the NOTICE file for Ratis's own third-party attributions.

### Apache TinkerPop / Gremlin (Optional Module)

| Group ID | Artifact ID | Version | License | Homepage |
Expand Down
8 changes: 8 additions & 0 deletions NOTICE
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,14 @@ Copyright 1999-2024 The Apache Software Foundation

================================================================================

Apache Ratis
Copyright 2017-2024 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (https://www.apache.org/).

================================================================================

This product includes software developed by GraalVM (Oracle).

GraalVM SDK, Truffle API, and JavaScript implementation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
import com.arcadedb.log.LogManager;
import com.arcadedb.server.ArcadeDBServer;
import com.arcadedb.server.ServerException;
import com.arcadedb.server.ha.network.ServerSocketFactory;
import com.arcadedb.server.network.ServerSocketFactory;

import java.io.IOException;
import java.io.InputStream;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import com.arcadedb.GlobalConfiguration;
import com.arcadedb.server.ArcadeDBServer;
import com.arcadedb.server.ServerPlugin;
import com.arcadedb.server.ha.network.DefaultServerSocketFactory;
import com.arcadedb.server.network.DefaultServerSocketFactory;

/**
* Server plugin that enables Neo4j BOLT protocol support.
Expand Down
Loading
Loading