atlasdb
atlasdb copied to clipboard
Transactional Distributed Database Layer
[PDS-117310] KvTableMappingService.updateTableMap is spammed from TS threads when a table is deleted
``` Count: 12595 "com.palantir.logsafe.exceptions.SafeRuntimeException: I exist to show you the stack trace at at com.palantir.atlasdb.keyvalue.impl.KvTableMappingService.lambda$updateTableMap$0(KvTableMappingService.java:95) at java.util.concurrent.atomic.AtomicReference.updateAndGet(AtomicReference.java:179) at com.palantir.atlasdb.keyvalue.impl.KvTableMappingService.updateTableMap(KvTableMappingService.java:95) at com.palantir.atlasdb.keyvalue.impl.KvTableMappingService.getMappedTableRef(KvTableMappingService.java:184) at com.palantir.atlasdb.keyvalue.impl.KvTableMappingService.getMappedTableName(KvTableMappingService.java:175) at com.palantir.atlasdb.keyvalue.impl.TableRemappingKeyValueService.deleteAllTimestamps(TableRemappingKeyValueService.java:133) at com.palantir.atlasdb.keyvalue.impl.TableSplittingKeyValueService.deleteAllTimestamps(TableSplittingKeyValueService.java:149) at ``` Jeremy...
Have you considered using [metric-schema](https://github.com/palantir/metric-schema) here? A large internal project would really appreciate the generated documentation! _Originally posted by @carterkozak in https://github.com/palantir/atlasdb/pull/4719#issuecomment-615411862_
``` @Test public void wat() { RangeRequest r1 = RangeRequest.builder() .startRowInclusive(PtBytes.toBytes("tom")) .endRowExclusive(PtBytes.toBytes("zzzz")) .retainColumns(ImmutableList.of(PtBytes.toBytes("name"))) .build(); RangeRequest r2 = RangeRequest.builder() .startRowInclusive(PtBytes.toBytes("tom")) .endRowExclusive(PtBytes.toBytes("zzzz")) .retainColumns(ImmutableList.of(PtBytes.toBytes("name"))) .build(); assertThat(r1).isEqualTo(r2); // passes assertThat(r1.hashCode()).isEqualTo(r2.hashCode()); // :( assertThat(ImmutableSet.of(r1, r2).size()).isEqualTo(1);...
https://github.com/palantir/atlasdb/blob/develop/atlasdb-cassandra/src/main/java/com/palantir/atlasdb/keyvalue/cassandra/CassandraVerifier.java#L213 The `CassandraVerifier` waits for schema agreement, which is generally a smart thing to do when creating a keyspace. However, in the case of a Cassandra 3 upgrade, the schemas...
Maybe not required if this comes for free with Conjure changes, but worth investigating.
Linked to #4598, we want to track how long we are retrying for, and alert when we retry for over 10s as this was our old limit. Related to PDS-111849.
See internal issue PDS-111356 for context. An internal product that utilises multiple `TransactionManager` instances reported failures talking to two Cassandra nodes. On further investigation, these failures were generated when polling...
See internal issue PDS-111266. During performance degradation of a single cassandra node, atlasdb today does a poor job of determining what the bad node is and blacklisting it from future...
Internal reference PDS-109404. Should a node be slow for whatever reason (in this instance, disk latencies are up), requests become slow, i.e. getFreshTimestamps takes 500ms to over a second at...
Cluster migrations here are of the form A->D B->E C->F.