Keeper Clickhouse Replication DDL on cluster, but no replication data, error "Table was in readonly mode"

24 Views Asked by At

In the test, the Keeper process replicates the DDL in the cluster, but a table of type ReplicatedMergeTree, it creates it in all the nodes, but when I insert information into the table, the data only in the node where the insertion is executed, in the Other nodes, these do not have data insertion executed.

The configuration remote server's

<remote_servers replace="true">
        <clustertest>
            <secret>key</secret>
            <shard>
                <internal_replication>true</internal_replication>
                <replica>
                    <host>nod1</host>
                    <port>3307</port>
                </replica>
        </shard>
        <shard>
                <internal_replication>true</internal_replication>
                <replica>
                    <host>nod2</host>
                    <port>3307</port>
                </replica>
        </shard>
        <shard>
                <internal_replication>true</internal_replication>
                <replica>
                    <host>nod3</host>
                    <port>3307</port>
                </replica>
            </shard>
        </cluster_gbit>
    </remote_servers>

The macros

<macros>
        <shard>1</shard>
        <replica>01</replica>
        <cluster>clustertest</cluster>
    </macros>

The keeper

<keeper_server>
            <tcp_port>19181</tcp_port>
            <server_id>1</server_id>
            <log_storage_path>/var/lib/clickhouse/coordination/logs</log_storage_path>
            <snapshot_storage_path>/var/lib/clickhouse/coordination/snapshots</snapshot_storage_path>

            <coordination_settings>
                <operation_timeout_ms>10000</operation_timeout_ms>
                <min_session_timeout_ms>10000</min_session_timeout_ms>
                <session_timeout_ms>100000</session_timeout_ms>
                <raft_logs_level>information</raft_logs_level>
                <compress_logs>false</compress_logs>
            </coordination_settings>

            <hostname_checks_enabled>true</hostname_checks_enabled>
            <raft_configuration>
                <server>
                    <id>1</id>
                    <hostname>nod1</hostname>
                    <port>19234</port>
                </server>
                <server>
                    <id>2</id>
                    <hostname>nod2</hostname>
                    <port>19234</port>
                </server>
                <server>
                    <id>3</id>
                    <hostname>nod3</hostname>
                    <port>19234</port>
                </server>
                <server>
                    <id>5</id>
                    <hostname>keeper</hostname>
                    <port>19234</port>
                </server>
        </raft_configuration>
    </keeper_server>

Example the create

CREATE TABLE dwhcluster.table1 ON CLUSTER clustertest
(
    `id` UInt64,
    `column1` String
)
ENGINE = ReplicatedMergeTree
ORDER BY id

INSERT INTO dwhcluster.table1
    (id, column1)
VALUES
    (3, 'abc'),
    (4, 'def')

`Error en log the server remote

ERROR : dwhcluster.table1 (ae4d40e3-b7e5-4a70-9268-20dcdcbab970): void DB::StorageReplicatedMergeTree::mutationsUpdatingTask(): Code: 999. Coordination::Exception: Session expired. (KEEPER_EXCEPTION), Stack trace (when copying this message, always include the lines below):`

0

There are 0 best solutions below