Fix modernization issues This fixes issues pointed out by Modernizer, which mostly boil down to using Objects.requireNonNull() and direct java.util collections. Change-Id: Id32530a6722cd101f96c23f6a745f91b2f09e2f9 Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Bug 7449: Slice ReadTransactionSuccess response Added slicing of the ReadTransactionSuccess message. The slicing is initiated by the Shard usung a MessageSlicer and re-assembly is done by the ClientActorBehavior on the FE. Introduced a SliceableMessage interface implemented by ReadTransactionSuccess which Shard checks for to determine if the response message should be sliced. Change-Id: Ie55e35aa82a9d2bc21f7a8f24396cb4df467252e Signed-off-by: Tom Pantelis <tompantelis@gmail.com> Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Bug 7449: Introduce ClientActorConfig in cds-access-client Upcoming changes in cds-access-client will need access to some config params in DatastoreContext. However DatastoreContext is in sal-distributed-datastore and thus can't be referenced in cds-access-client. So refactor a ClientActorConfig interface with the necessary accessors. Change-Id: I55e7291340e711c585f4fb1236a27396503d1914 Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
BUG-5280: add AbstractClientConnection Introduce a connection concept. This is a replacement for the request queue, as it turns out we do need the concept of a full connection (e.g. generational logic). This comes from the need to sensibly switch behaviors as the locality of the backend leader changes. This patch implements two sets of strategies for dealing with reconnect: The first one assumes long-lived state and is used for proxies dealing with histories. Here we make sure to reinstantiate and replace them in a map, as we want new transactions to follow the new semantic and we do not want to tear histories down or follow inefficient paths. The second one assumes short-lived state and is used for proxies dealing with individual transactions. Transactions are assumed to come and go rapidly and therefore we do not replace the proxies in maps (as they will be short-lived), but rather forwards operations to successors. The first strategy has a higher access cost, but its state is always fully uptodate when reconnect finishes, while the second strategy favor access time, but operations end up "trailing" and will be forwarded (and hence inefficient) until the transaction completes. Change-Id: I7fd9e21c749f55b91229bf0b671c8dcf2e4d5982 Signed-off-by: Robert Varga <rovarga@cisco.com>
Fix CS warnings in cds-access-client and enable enforcement Fixed checkstyle warnings and enabled enforcement. Most of the warnings/changes were for: - variable name too short - correct ordering of @Nonnull annotations - line too long - javadocs Change-Id: Ib888dbf909282079bff6320ce718d5a4da3ed31a Signed-off-by: Tom Pantelis <tpanteli@brocade.com>
BUG-5280: split out cds akka client substrate This patch splits out the baseline frontend client into a separate package. Change-Id: I2d8ca8b81f29a45dd8c30f3bef467fcda94d4887 Signed-off-by: Robert Varga <rovarga@cisco.com>