Robert Varga [Mon, 26 Jun 2023 16:28:19 +0000 (18:28 +0200)]
Clean up sal-remoterpc-connector dependencies
We have quite a few warnings, reign them in.
Change-Id: I8b35ee98a7dc3f5e00e5ff08a61339df11c3be6f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 26 Jun 2023 13:39:51 +0000 (15:39 +0200)]
Clean up javadoc links
Use HTTPS and modernize pointers.
Change-Id: I07352116ebe7b2f30d8db6c230ae14ce1c7593d6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 26 Jun 2023 13:22:50 +0000 (15:22 +0200)]
Fix sal-distributed-datastore dependencies
We need mdsal-binding-dom-codec as a testing dependency.
Change-Id: I7ba1a864f1b3bdcef5caf911fc2c2f84fc4e3f63
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 26 Jun 2023 11:45:34 +0000 (13:45 +0200)]
Bump upstreams
Adopt:
- odlparent-13.0.3
- yangtools-11.0.0
Change-Id: I8103c699e8217a5ab4e2393813009754295dbc2a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 21 Jun 2023 18:42:39 +0000 (20:42 +0200)]
Adjust to yang.binding.{Identifier,Identifiable} rename
We hare renamed classes here, adjust to those changes.
Change-Id: I5efe2eeeb2878dfac864bc6ebc3e08c98ace253a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 21 Jun 2023 18:57:38 +0000 (20:57 +0200)]
Adjust for DataTreeCandidateNode API change
The return types have changed, adjust to that.
Change-Id: I5c51659e9c0d30ff90cbfff7772d348af301f4f9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 21 Jun 2023 12:47:27 +0000 (14:47 +0200)]
Bump akka to 2.6.21
https://github.com/akka/akka/releases/tag/v2.6.21
Change-Id: I79d5d143ac6e8e35661568c439fa07acdf34f64b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 20 Jun 2023 16:52:22 +0000 (18:52 +0200)]
Clean up sal-clustering-commons dependencies
We have a ton of warnings, clean them up as much as possible.
Change-Id: I02f5a3049f6c97c4236847c395c99b6fd2380a88
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 20 Jun 2023 16:43:03 +0000 (18:43 +0200)]
Clean up sal-akka-segmented-journal dependencies
We have quite a few reports here, clean them up to a reasonable extent.
Change-Id: I81e063f349b942d311d96c384a37ba8b812ffd46
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 20 Jun 2023 16:39:43 +0000 (18:39 +0200)]
Clean up cds-access-api dependencies
We have some missing dependency declarations, fill them out.
Change-Id: Ie79414dd25a6e83d81b097c0909d43abd5ee889c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 20 Jun 2023 11:49:31 +0000 (13:49 +0200)]
Clean up dependencies
We have a ton of warnings about used/undeclared dependencies. Clean
these up.
Change-Id: I7a434a150ea62f7fc1ff93b34d48a98e24e79274
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 18 Jun 2023 11:04:24 +0000 (13:04 +0200)]
Bump upstreams
Adopt:
- odlparent-13.0.1
- yangtools-11.0.0-SNAPSHOT
- mdsal-12-0.0-SNAPSHOT
Since the format of NormalizedNode tree is updated to not include
AugmentationNode (and AugmentationIdentifier), we must force an
incompatible update, as we do not have enough information to produce
compatible payload.
Change-Id: Ibf444540ed052b49651ba66ca7b93c806a6c8a97
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 18 Jun 2023 20:46:51 +0000 (22:46 +0200)]
Sprinkle java.io.Serial
Add annotations to make sure the API is covered.
Change-Id: I5fb74fcc6b37386a029e69cd79d6e1978601637a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 8 Jun 2023 06:50:46 +0000 (08:50 +0200)]
Bump Scala to 2.13.11
https://github.com/scala/scala/releases/tag/v2.13.11
Change-Id: I9bc86788da00c1d46eadb298db1c55fe19bbca5f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 8 Jun 2023 09:04:34 +0000 (11:04 +0200)]
Bump upstreams
Adopt:
- yangtools-10.0.8
- mdsal-11.0.11
Change-Id: I3ac1bd9d896b74045605dffd84a9acda4521aeb9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sun, 28 May 2023 12:30:45 +0000 (14:30 +0200)]
Bump upstreams
Adopt:
- odlparent-12.0.6
- yangtools-10.0.7
- mdsal-11.0.10
Change-Id: I657abce9fc4bfdbc16da78b5562d4e7f2cdbb42c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 14:19:26 +0000 (16:19 +0200)]
Remove EmptyExternalizableProxy
EmptyExternalizableProxy is a rather inefficient way of doing things,
remove it along with its (unused) users.
JIRA: CONTROLLER-2079
Change-Id: I87179e1e8b53547711b4d0c8ceb4607f341c997d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 13:51:53 +0000 (15:51 +0200)]
Remove legacy raft.persisted proxies
These proxies have not been emitted since controller-7.0.0, remove them
now.
JIRA: CONTROLLER-2078
Change-Id: I31a86bf464857fccbc1d68a1f0d520971cb153b5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Sat, 26 Nov 2022 10:59:46 +0000 (11:59 +0100)]
Remove old payload proxies
We no longer need to carry compatibility serialization proxies, remove
them.
JIRA: CONTROLLER-2057
Change-Id: Ib040c0a082c94383b0224d593ad0ebec951b4d31
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 11 May 2023 17:07:01 +0000 (19:07 +0200)]
Switch MetadataShardDataTreeSnapshot to new Proxy
We have defined MS as the new proxy, but have not switched to it. This
patch finishes that migration.
JIRA: CONTROLLER-2077
Change-Id: Ie8031c77e8900bd4a5e408a9a2ae7491bdf19171
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 11 May 2023 17:00:12 +0000 (19:00 +0200)]
Switch FrontendShardDataTreeSnapshotMetadata to new proxy
We have defined FM as the new proxy, but never switched to it. This
completes the switch.
JIRA: CONTROLLER-2077
Change-Id: Idced639a04f18f33597f3580dc09ff2238467477
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 11 May 2023 16:56:05 +0000 (18:56 +0200)]
Switch ShardSnapshot to new proxy
We have defined DSS as the new proxy, but have not switched to using it.
Fix that mistake.
JIRA: CONTROLLER-2077
Change-Id: I70570734cad9960f48850f360c8693e502b4115a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 11 May 2023 16:48:28 +0000 (18:48 +0200)]
Switch DatastoreSnapshot to new proxy
We have defined DS as the new proxy, but failed to switch to it. This
patch makes that switch.
JIRA: CONTROLLER-2077
Change-Id: I5de4514b2297ca39caadb02d0c30ab7b3dc8fc5c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 1 Dec 2022 15:13:17 +0000 (16:13 +0100)]
Remove ABIVersion.MAGNESIUM
This ABI versions is quite inefficient in its serialization and has been
deprecated in the previous release. This patch completes its removal.
JIRA: CONTROLLER-2062
Change-Id: I03be0d6561c4db2893e6eb0fd95e3a35e655b76e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 30 Nov 2022 22:25:28 +0000 (23:25 +0100)]
Remove old unversioned proxies
We have a number of unversioned classes which are using two
externalizable proxies. Remove legacy proxies, inlining SerialForm
interfaces.
JIRA: CONTROLLER-2063
Change-Id: If3f96563d1331dc1449bdb87baf55124e78d473a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 10 May 2023 13:37:41 +0000 (15:37 +0200)]
Bump versions to 8.0.0-SNAPSHOT
This starts the next major development iteration.
Change-Id: Ice3799a744432539a9258a6168edb5b2ad830522
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 20 Apr 2023 20:20:31 +0000 (22:20 +0200)]
Bump versions to 7.0.7-SNAPSHOT
This starts the next development iteration.
Change-Id: Ibca884f3a6c97f0cd834862fa7cb1d75c417a8f4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 20 Apr 2023 16:58:31 +0000 (18:58 +0200)]
Bump upstreams
Adopt:
- odlparent-12.0.5
- yangtools-10.0.6
- mdsal-11.0.9
Change-Id: I92c925a816de28efeec221dddb95aa97955ab619
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Wed, 19 Apr 2023 21:14:32 +0000 (23:14 +0200)]
Bump versions to 7.0.6-SNAPSHOT
This starts the next development iteration.
Change-Id: If4d99ef7b344ab97dabe3c641c1b551dfb3c6646
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 17 Apr 2023 12:24:43 +0000 (14:24 +0200)]
Bump upstreams
Adopt:
- odlparent-12.0.4
- yangtools-10.0.5
- mdsal-11.0.8
Change-Id: I6a99e63080fff51681681ef80089de63af163be4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 18 Apr 2023 09:07:52 +0000 (11:07 +0200)]
Migrate users of Optional.get()
We have an incoming enforcement patch, prepare to adopt it.
Change-Id: If73abd4ceaea71a216a4bc3a3968b400b508ec38
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 4 Apr 2023 06:58:49 +0000 (08:58 +0200)]
Use ArgumentMatchers.anyCollection()
Instead of using any(Collection.class) use better anyCollection()
method.
Change-Id: Icff803dd6379dc15dfca1d2ab1bf89319f583e22
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Tue, 4 Apr 2023 07:07:34 +0000 (09:07 +0200)]
Eliminate unneeded else branch
Eclipse is right to point out we can just ditch the else branch.
Change-Id: I816dd9a34b6fd8e1272ad1b8b93c2c5b3120ed4b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 18:14:47 +0000 (20:14 +0200)]
Honor shard-batched-modification-count
RemoteProxyTransaction should honor not use a hard-coded limit, but
rather pick it up from DatastoreContext configuration.
JIRA: CONTROLLER-2075
Change-Id: I5cf6491f76c05582b2c59e918d8af9521c01d98f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 14:25:33 +0000 (16:25 +0200)]
Annotate AbstractRaftRPC with java.io.Serial
We have constructs which are related to serialization, annotate them.
Change-Id: I8e5d95adaaa25eee35dc2bba349925eb982af207
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 14:06:12 +0000 (16:06 +0200)]
Annotatate CT.readResolve()
This method is used in serialization, annotate it.
Change-Id: I48a3ea80e58b38ff0304903c2cbc383bd43d504e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 14:09:52 +0000 (16:09 +0200)]
Remove explicit Serializable
All Payloads are serializable, hence AbstractIdentifiablePayload is as
well.
Change-Id: I4153cad6f800746162d5e2cebb7f80f655d6ec32
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 07:48:57 +0000 (09:48 +0200)]
Modernize sal-akka-raft tests
Use List.of(), Map.of() and Set.copyOf(), as well as properly-imported
assertions.
Change-Id: If7777b0e395394f54e20d1a92b7d33fccb373601
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 14:22:19 +0000 (16:22 +0200)]
Remove legacy raft message Proxy constructors
These constructors are not invoked anywhere, remove them. This also
means the writeExternal() method cannot legally be invoked.
Change-Id: I6c72ac334b07218d4bfb0cb1cda37771db2c0aff
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 14:22:01 +0000 (16:22 +0200)]
Remove FollowerIdentifier.Proxy constructor
This constructor is not used anywhere, remove it. This also means
writeExternal() cannot legally be invoked.
Change-Id: Ia19dd40104d0bc5c12bc9d3ecb124254d33e0133
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 13:58:47 +0000 (15:58 +0200)]
Remove CommitTransactionPayload.Proxy constructor
This constructor is not used anywhere, remove it. This also means
writeExternal() cannot legally be called.
Change-Id: Icc6dc83bafb1af96ed5ef17963ad4121250d6342
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 19:10:24 +0000 (21:10 +0200)]
Centralize DataTree operations
Centralize taking the snapshot and creating a modifications to the
extent possible.
Change-Id: Ifd2632f583230046686c97cd1b07fefd06266451
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 18:09:07 +0000 (20:09 +0200)]
Use instanceof patterns in RemoteProxyTransaction
Remove explicit casts with instanceof patterns, which are safer. Also
use Optional.orElseThrow().
Change-Id: If52285168a2ec6791ca86ba095f0e944fae8d3f7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 11:15:28 +0000 (13:15 +0200)]
Simplify onGetOnDemandRaftStats()
Use an ImmutableList constructed from a stream of peers, improving
density a bit.
Change-Id: I845aba32c331c6516d3ea7a8b0b5de4e9cd69754
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 11:08:28 +0000 (13:08 +0200)]
Improve ChangeServersVotingStatusState
We are using multiple lookups and gets and a mutable List. Improve
interactions to improve pre-sizing and use an ImmutableList, without
performing multiple intermediate lookups.
Change-Id: Ibf121c1296e093e99592921d52242e929d3b9a2a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 13:44:25 +0000 (15:44 +0200)]
Remove SimpleReplicatedLogEntry.Proxy constructor
We are not using this proxy in the write path, remove its constructor.
Change-Id: Ifeefcd8cfc787306d16cbd13daf5e4537e80da91
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 15:17:03 +0000 (17:17 +0200)]
Use instanceof pattern in FrontendReadWriteTransaction
Improve cast safety by combining the check and cast into a instanceof
pattern,
Change-Id: I987f78de9df8ca1f3ccbb98fd807938bb0743855
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Šimon Ukuš [Fri, 17 Mar 2023 08:58:40 +0000 (09:58 +0100)]
Fix StandaloneFrontendHistory accounting
testTransactionForwardedToLeaderAfterRetry() is exposing a scheduling
difference between the two implementations -- with tell-based protocol
we are holding off sending modifications until there is a significant
event needing them to be flushed to the backend.
Fixing this up exposes a bug in StandaloneFrontendHistory transaction
accounting, as circles back to ShardDataTree, where its transactions
are accounted for again -- fix that mistake by allocating transactions
directly in StandaloneFrontendHistory.
JIRA: CONTROLLER-2017
Change-Id: Ied00910f55bd3c63f99ae187396c1a193e5ece20
Signed-off-by: Šimon Ukuš <simon.ukus@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 15:26:04 +0000 (17:26 +0200)]
Access historyId only once
This is a simple improvement, improving access a bit.
Change-Id: I42dbd91a0a8d5ce75cd99b36d786d446eac69501
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 15:07:21 +0000 (17:07 +0200)]
Use instanceof pattern in AbstractFrontendHistory
Reduce the number of casts by using instanceof patterns.
Change-Id: I0ce1ca0229b1e55a5b4745584b679a7872953297
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 14:59:40 +0000 (16:59 +0200)]
Fix DistributedDataStoreRemotingIntegrationTest typos
We have a few typos in comments, fix them up.
Change-Id: I574849a397f6dea62e928026609c8a191451d701
Signed-off-by: Šimon Ukuš <simon.ukus@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 13:43:58 +0000 (15:43 +0200)]
Add java.io.Serial to EmptyState
Annotate members related to serialization.
Change-Id: I46b486244cd4f34dbae47c459c353411eccdf675
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 13:37:19 +0000 (15:37 +0200)]
Mark Payloads with java.io.Serial
We have a number of fields/methods which should be marked with @Serial,
add another pass on them.
Change-Id: Ie08d6e718980e4e3acb148226760ad75ef82566e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 13:31:47 +0000 (15:31 +0200)]
Improve ServerConfigurationPayload.equals()
Use pattern matching on instanceof to reduce verbosity while retaining
semantics.
Change-Id: I2600f35ae6c71c9e235609246f775fdc9f8eb6b2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 13:31:18 +0000 (15:31 +0200)]
Mark readResolve() with @Serial
This method is related to serialization, mark it as such.
Change-Id: I65fc80e73a7a6775e8f535f85ba8c5af7ab6677b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 10:57:54 +0000 (12:57 +0200)]
Improve Follower's Snapshot
Use List.of() to communicate empty lists.
Change-Id: I5cebcde9e92b11a82be0bddf3645eeb8bc909895
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 10:55:44 +0000 (12:55 +0200)]
Improve Candidate.votingPeers
Use ImmutableList to ensure the list is never modified. This also
improves overhead/performance slightly.
Change-Id: Iad491da0e446da0a07e96067846c2c57c0dcfb9a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 10:50:12 +0000 (12:50 +0200)]
Use ImmutableList in raft persisted/messages
We are using temporary ArrayList, where we could be using
ImmutableList.builder(). Fix these up, improving immutability
guarantees.
Change-Id: I14412ad6614463fe0f1fc5abdd72e147e189c5cc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 12:08:53 +0000 (14:08 +0200)]
Clean up sal-clustering-commons
Clean up argument finality and whitespace in for(:) constructs.
Change-Id: If22f693e6c499aafc8fe0a606b2abb40a9f67cfc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 3 Apr 2023 12:03:34 +0000 (14:03 +0200)]
Clean up RpcErrorsException
Fix whitespace and use local variable type inference to improve sizing.
Change-Id: I344305a59e3b0078d942636c339d1686c006e4a3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 27 Mar 2023 11:25:57 +0000 (13:25 +0200)]
Move atomix-storage to a top-level directory
The directory structure no longer makes sense here, move the single
component to a top-level directory.
JIRA: CONTROLLER-2072
Change-Id: Ib011d88908547059e21a11820b0531c6edb5a680
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 20:05:53 +0000 (21:05 +0100)]
Rename Namespace to KryoJournalSerdes
Reduce naming confusion -- Namespace really is a Kryo-based
implementation of JournalSerdes. KryoJournalSerdesBuilder is separated
out so that Kryo interfaces are not leaked outside of the package.
JIRA: CONTROLLER-2072
Change-Id: I75e7a6f30d6319c4284acd76ec098224380e3b70
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 20:01:09 +0000 (21:01 +0100)]
Add RegisteredType
Reduce verbosity by introducing a private DTO to hold the combination of
a Serializer and its associated classes.
JIRA: CONTROLLER-2072
Change-Id: I9cdf32d6107740d5a07cfdb884bd4641c242450e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 19:51:44 +0000 (20:51 +0100)]
Remove Namespace.RegistrationBlock
We always create a single block. Remove the unused complexity here and
move Builder class to the bottom so as not to clutter things.
JIRA: CONTROLLER-2072
Change-Id: Ia7d31aa717aeeb17f6d2419d05818f88b0c27c4b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 19:36:10 +0000 (20:36 +0100)]
Remove Namespace.FLOATING_ID
We do not allow for dynamically-allocated IDs. Remove the constant and
the corresponding special-case.
JIRA: CONTROLLER-2072
Change-Id: I7de4ec77bd6934cd89c78de406cf9e0c73fa2cd4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 18:57:03 +0000 (19:57 +0100)]
Do not leak Kryo from atomix.storage
Rather than dealing with Kryo serializers, introduce separate interfaces
to deal with input/output and serialization logic.
This allows us to be in explicit control as to what interface do we
support towards segmented journal persistence. It further means Kryo is
now a pure implementation thing and can be removed without changing the
APIs.
JIRA: CONTROLLER-2072
Change-Id: Ib4550f5f29d33d792f37110b5a14756654a5b87e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 27 Mar 2023 11:58:44 +0000 (13:58 +0200)]
Upgrade reflectasm to 1.11.9
https://github.com/EsotericSoftware/reflectasm/issues/68, removing the
need to override ASM version.
Change-Id: I489f75a63f9649518493291fe0f36362d4011242
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 27 Mar 2023 11:28:27 +0000 (13:28 +0200)]
Fixup atomix references
We do not want to reference atomix from its original upstream. Fix that
up.
JIRA: CONTROLLER-2071
Change-Id: Ifdbb766135ecf86b1c848cfc1e53487c9b52e4c5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 17:38:30 +0000 (18:38 +0100)]
Introduce atomix.storage.journal.JournalSerdes
The interfaces are tightly coupled with namespace implementation, which
in turn is tightly coupled to Kryo.
As a first step to disconnect these three, introduce JournalSerdes,
which acts as the public API implemented by Namespace. This allows us to
hide atomix.utils.serializer package at least from OSGi.
Change-Id: I9668ba2eb3e0a58d7ed27ee09ec1bb3cee069eb4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Mon, 27 Mar 2023 09:34:52 +0000 (11:34 +0200)]
Dump DTCL changes on trace
Reduce memory usage by not dumping all changes at once, but rather each
of them separately and only when trace is enabled.
Change-Id: I954dd4576d2625a862b254532379974c19bc1c60
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 19:09:29 +0000 (20:09 +0100)]
Fix warnings in StorageException
Exceptions are serializable and therefore should define
serialVersionUID. Fix this omission.
Change-Id: I24daa7ca923d6df71beaf7325b57fc306564f366
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Yaroslav Lastivka [Wed, 22 Feb 2023 09:55:12 +0000 (11:55 +0200)]
Delete websocket-change-event-notification-subscription-tutorial
Websocket-change-event-notification-subscription-tutorial was
moved to Netconf user-guide
JIRA: NETCONF-962
Change-Id: Ie93e3f3eced3b3bae1658bfb957ba52e0288d0e7
Signed-off-by: Yaroslav Lastivka <yaroslav.lastivka@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 20:12:51 +0000 (21:12 +0100)]
Fixup javadoc
MAX_BUFFER_SIZE was removed, do not reference it.
JIRA: CONTROLLER-2072
Change-Id: I95892c5bf85621f75791d51177af5aa21ec23329
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 17:01:56 +0000 (18:01 +0100)]
Remove Namespace.populate()
populate() is implementation specific and used only internally.
Integrate it into the constructor.
JIRA: CONTROLLER-2072
Change-Id: I6a78a506d2a7936f84dac332928848af832a21aa
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 16:40:44 +0000 (17:40 +0100)]
Position is a simple record
This is a pure DTO, reduce verbosity by turning it into a plain record.
Change-Id: Ife6286343f1bc3f88c9586c6a011ef08b182ac1d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 16:36:43 +0000 (17:36 +0100)]
Remove DelegatingJournal{,Reader,Writer}
These classes are not used anywhere, remove them to improve code
navigability.
JIRA: CONTROLLER-2071
Change-Id: I45c3f9953c6794ed55053ac1193d14d83b844ad0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 16:32:20 +0000 (17:32 +0100)]
Remove Namespace.size()
This method is not used anywhere, remove it.
JIRA: CONTROLLER-2072
Change-Id: Ia1d4e2fb4b1b3421a3a67521a7afec0687f2855a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 16:30:51 +0000 (17:30 +0100)]
Remove Namespace.friendlyName()
This is a useless private method remove it.
JIRA: CONTROLLER-2072
Change-Id: Iadfb538b57222e60b09e7b05fd26b5810878b9c4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 16:18:05 +0000 (17:18 +0100)]
Remove Namespace.Builder.setRegistrationRequired()
We want users to always register serializers, remove the option to not
do so.
JIRA: CONTROLLER-2072
Change-Id: I8aeb47045353b058556498bc4e6b64307646d924
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 16:11:10 +0000 (17:11 +0100)]
Remove Namespace.DEFAULT
We want users to explicitly set up their namespaces, hence remove the
default namespace.
JIRA: CONTROLLER-2072
Change-Id: Id97bc5d5696dd8f12a34bf8d3378344da3396b49
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 16:09:45 +0000 (17:09 +0100)]
Remove Namespace.MAX_BUFFER_SIZE
This constant is not used anywhere, remove it.
JIRA: CONTROLLER-2072
Change-Id: If33308ba3aa7bc6eb8ee4f95702eccfc3fcb4604
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 16:06:10 +0000 (17:06 +0100)]
Remove Namespace.Builder.setCompatible()
We want users to explicitly take a hold of their serialization format,
hence we do not want to create forward/backward compatible streams. They
are prohibitively costly in our use case anyway.
JIRA: CONTROLLER-2072
Change-Id: Ie533bf52f2b7123f162e9275b39952cd2193679a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 16:00:59 +0000 (17:00 +0100)]
Remove Namespace.Builder.nextId()
The facility to assign ids is not used by us, remove it, as it seems to
be a leak from Kryo.
JIRA: CONTROLLER-2072
Change-Id: I5069e3c0dfa395a56c98498d566b615651bda820
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 14:33:27 +0000 (15:33 +0100)]
Ditch dependency on commons-lang3
We are using only Pair, and we do not allow null values, hence we can
just switch to using Map.entry() and ditch this dependency.
JIRA: CONTROLLER-2072
Change-Id: Ida8ba2a28489cd011757e48074c58ad8cb260a34
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 14:16:40 +0000 (15:16 +0100)]
Do not fall back to default Kryo serializers
Prevent the use of default serializers, so that users have to supply
them. This is the only way we want to be using this facility.
JIRA: CONTROLLER-2072
Change-Id: I69ace2f966e7f1eeeeaff5385ee3389bdaa8d25a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 13:51:05 +0000 (14:51 +0100)]
Do not allow recursive Namespace registration
We are not combining namespaces, there is no need for this method.
JIRA: CONTROLLER-2072
Change-Id: I332a04db841763f307add1168b999f685de7e422
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 13:29:27 +0000 (14:29 +0100)]
Do not export atomix.storage.journal.index
This package is an internal implementation thing, do not expose it to
outside world.
JIRA: CONTROLLER-2071
Change-Id: Ib670b8ba330e85ed8198c58e4617cd838bcba459
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 13:20:00 +0000 (14:20 +0100)]
Remove atomix.utils.serializer.serializers
This entire package is only used by Namespace, which in turn is unused.
Remove it to reduce clutter.
JIRA: CONTROLLER-2072
Change-Id: I162e4c6d783d49cb4a209706e193e6d8dc0a0638
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 13:15:54 +0000 (14:15 +0100)]
Remove atomix.utils.Serializer(Builder)
These classes are completely unused and cause confusion with Kryo
interfaces. Remove them to improve clarity.
JIRA: CONTROLLER-2072
Change-Id: Ib4be23d08c1264a9d833d42958311bc24a2fee25
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 13:07:10 +0000 (14:07 +0100)]
Fix a few warnings
Eclipse complains about unaccessed field, which we need for
serialization -- fix that by exposing the class to the entire package.
Also use local variable type inference to remove nullness warning.
Change-Id: Ib37d8e6b5d535c68eb578a67ac980e5de370c94f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 12:15:46 +0000 (13:15 +0100)]
Add correct license to atomix-storage artifact
Override default license packaging with Apache license.
JIRA: CONTROLLER-2071
Change-Id: I41f22660985aa59e1b7050f0205111e5b06393d2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 12:07:36 +0000 (13:07 +0100)]
Add an explicit LICENSE file
atomix-storage is licensed under Apache License, make sure we include
that in the directory.
JIRA: CONTROLLER-2071
Change-Id: I80349d8fbefdb1c0a9ffb1c091e2367a106e5d9d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 11:53:49 +0000 (12:53 +0100)]
Remove SegmentedJournal.Builder.withCacheSize()
This method is used only in tests and has been deprecated. Remove it.
JIRA: CONTROLLER-2071
Change-Id: I4428b24b7fd4309d8a393ef3f91975abbb48f677
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 11:43:34 +0000 (12:43 +0100)]
Use ConcurrentHashMap.newKeySet()
Java 8 renders the Guava utility superfluous, as we can get a concurrent
Set from ConcurrentHashMap.
JIRA: CONTROLLER-2071
Change-Id: Icde0fb358a736b50eb0c334794de09afcaf1c094
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 11:40:36 +0000 (12:40 +0100)]
Use ConcurrentNavigableMap
Make sure we mark the map as concurrent, as that is the implementation
we use and it seems we rely on it being concurrent.
JIRA: CONTROLLER-2071
Change-Id: I1deb9e42978fbc6373085e8280822f61541f1066
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 11:37:29 +0000 (12:37 +0100)]
Synchronize SegmentedJournal.open()
SpotBugs is pointing out a problem with synchronization to
currentSegment. This is a false positive, as we only call this method
from the constructor, but slap a synchronized keyword on it anyway.
JIRA: CONTROLLER-2071
Change-Id: Iaf3a13c4122a3321b615eb5629327494165c0bed
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 11:28:10 +0000 (12:28 +0100)]
Fix a SpotBugs warning
The implementation of queue in KryoIOPool is always
ConcurrentLinkedQueue, which never returns false. Fix the declaration
to make that clear to SpotBugs.
JIRA: CONTROLLER-2071
Change-Id: I0c0dee29224e128413bec9cda903610dbf137feb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 11:24:07 +0000 (12:24 +0100)]
Make SegmentedJournal.Builder final
As the SegmentedJournal is final, so should be the builder be. Also hide
its fields, which are used only internally. This allows us to fix a
static analysis warning, as cacheSize() is not used anywhere.
JIRA: CONTROLLER-2071
Change-Id: I2a4d922f3d410db7558969a69d2b64c00811c51f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 11:16:13 +0000 (12:16 +0100)]
Mark classes as final
Static analysis is pointing out callouts from constructor to overridable
methods. Mark classes as final to make sure nothing untowards happens.
JIRA: CONTROLLER-2071
Change-Id: I9ed90a8919f3fd72374cb5564b8e241e954bce6e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Robert Varga [Thu, 2 Mar 2023 11:10:31 +0000 (12:10 +0100)]
Fix placeholder mismatch
There is a bug pointed out by static analysis, as we do not have a
placeholder the passed argument.
JIRA: CONTROLLER-2071
Change-Id: I6892ff8e3046b2476495c9fc0b351f692b396d83
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>