Skip to content

Updates - #2

Open
SaltTan wants to merge 836 commits into
SaltTan:mainfrom
Altinity:main
Open

Updates#2
SaltTan wants to merge 836 commits into
SaltTan:mainfrom
Altinity:main

Conversation

@SaltTan

@SaltTan SaltTan commented Aug 22, 2022

Copy link
Copy Markdown
Owner

I have read the CLA Document and I hereby sign the CLA

filimonov and others added 30 commits March 6, 2025 12:16
Update jsonextract-to-parse-many-attributes-at-a-time.md
Updated GitHub links in header and footer
SEO improvements to make content easier to find
* executable dictionary

* Minor fixes
removed copywrite (excess)
Added article about using istio and the clickhouse operator
den-crane and others added 30 commits April 29, 2026 12:54
Update add_remove_replica.md
Seems that there is kinda mistake here. You probably meant stream_flush_interval_mshttps://clickhouse.com/docs/operations/settings/settings#stream_flush_interval_ms
…features.md

Co-authored-by: SaltTan <20357526+SaltTan@users.noreply.github.com>
…features.md

Co-authored-by: SaltTan <20357526+SaltTan@users.noreply.github.com>
…features.md

Co-authored-by: SaltTan <20357526+SaltTan@users.noreply.github.com>
…features.md

Co-authored-by: SaltTan <20357526+SaltTan@users.noreply.github.com>
…features.md

Co-authored-by: SaltTan <20357526+SaltTan@users.noreply.github.com>
Create keeper-dependent-features.md
- Using only attach with the tables UUID is usually enough

Co-authored-by: Diego Nieto <dnieto@altinity.com>
…replica-section

Adds node rebuild section to add/remove replica
The KB had no coverage of getting system.query_log / system.session_log
out of the server for auditing. session_log appeared exactly once across
content/en (as <session_log remove="1"/>); logging.md and
ch-logs-2-json-vectordev.md cover only the server text log files; the
S3 articles treat S3 as MergeTree storage, never as an export sink.

Every recipe and error message in the article was executed against
clickhouse-server in Docker (26.7.5.10, 26.4.5.143, 26.3.21.7 LTS,
25.8.32.4, 24.10.1.2812) with MinIO and a local HTTP collector.

Findings that shaped the article:

- A materialized view with an S3 target can permanently destroy rows in
  the local system.query_log. materialized_views_ignore_errors only
  guards row-push errors; the S3 sink's object-existence probe throws
  during createSink(), outside the guard, which fails the whole flush.
  Measured: 20/20 markers survive with no MV and with a working target,
  1/20 with a misconfigured S3 target, 0/10 with an unreachable one.
  Reproduced on 26.7, 26.3 and 25.8. URL targets are unaffected.

- SETTINGS s3_create_new_file_on_insert = 1 on a CREATE TABLE with an
  S3 engine is silently dropped (absent from SHOW CREATE TABLE). The
  same setting on the MV is kept but has no effect on the target write.
  Only a users.d profile default works.

- After an upgrade that renames system.query_log to query_log_0, the MV
  follows the renamed table and the export stops silently, with no error
  and no SystemLogErrorOnFlush increment. Includes a detection query
  against system.tables and the fix.

- Issue #112419 reproduced: two servers on one S3 key sequence made 300
  acknowledged inserts with zero errors and left only 267 objects.

- File engine does accept a stable path under user_files and appends
  across flushes; an arbitrary absolute path is rejected with code 291.

- SystemLogErrorOnFlush was added in 25.2 (PR #75466). Its description
  string claims failed flushes are repeated; they are not.

The one-line note in altinity-kb-system-tables-eat-my-disk.md is
included here because it links to the new page.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AsB1E5eSBXpaZT4jGzY57L
Add article: exporting query and session logs to files, S3, or HTTP
The article was 3313 words against a section median of 498 - the longest
in Setup & maintenance by 3x, and much of the length was ClickHouse
internals that an operator does not need: SystemLogQueue::pop() and
queue->confirm() semantics, C++ stack traces, and a measurement table
justifying the findings rather than stating them.

Cut to 1278 words. Every tested recipe is kept; the reasoning behind
them is replaced by the operational rule.

- Replace the flush-mechanism explanation with the consequence: a failed
  flush is not retried, so the rows are gone.
- Drop both stack traces and the push-time vs sink-construction analysis.
  The rule that matters is "S3 target failures lose local rows, URL
  target failures do not".
- Collapse the 4-row measurement table into one sentence with the same
  numbers.
- Drop the reconciliation / Distributed-sender section - design prose
  that made no tested claim.
- Merge the References list into Related resources.
- Reflow the DDL onto fewer lines.

All four DDL blocks were re-executed verbatim on 26.7.5.10 after the
reflow, plus the glob read-back, monitoring and upgrade-check queries:
object sequence, session event types, file append and dependency output
all match what the article states.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AsB1E5eSBXpaZT4jGzY57L
The article-writer skill existed only as an untracked skills/ directory on
one machine, in a path no agent tool scans. It was never surfaced or read,
and a recent article shipped at 3313 words - 3x the longest article in its
section - because the style guide sat unread two directories away.

- Move skills/altinity-kb-article-writer to .claude/skills/, which Claude
  Code loads automatically, and commit it. It already carried an
  agents/openai.yaml, so cross-tool use was the original intent.
- AGENTS.md: add a "Start here" table pointing at all five skill files,
  noting that Codex and other tools do not auto-load them and must read
  the files directly. Codex reads AGENTS.md, so this is the entry point
  that works for every tool.
- AGENTS.md: add a length budget. Across the 250 articles in content/en
  the median is ~430 words and 90% are under 1100, but nothing stated a
  target, so an agent had no anchor. Target under 1000, over 1500 needs a
  reason (13 of 250 qualify). Adds two items to the final checklist.
- CLAUDE.md: thin pointer to AGENTS.md plus the three rules most often
  broken. Deliberately short to avoid drifting from AGENTS.md.
- kb-style-guide.md: add a Length section deferring to AGENTS.md for the
  authoritative wording.

Hugo contentDir is content/en, so CLAUDE.md and .claude/ are not
published. Build verified: 328 pages, unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AsB1E5eSBXpaZT4jGzY57L
The existing final checklist is mechanical - frontmatter present, fences
tagged, queries version-gated. A draft can pass every box and still be the
wrong article, which is what happened with the 3313-word first version of
the export-system-logs page.

Adds seven review questions in three groups:

- Does the reader need this? The four cutting questions, with the specific
  guidance that being able to explain why the internals behave a certain
  way is not a reason to put it in the article - that belongs in the PR.
- Is it true? Naming the version an example was run on, rather than
  asserting it was tested. Also notes that reformatting a tested example
  un-tests it, which came up when the DDL was reflowed during the
  simplification pass.
- Is it enough? Does it solve the problem end-to-end.

The last group is called out as the counterweight. Six of the seven
questions push toward cutting and only one pushes toward keeping, so
applied without it the set will strip an article past useful. Cut
derivations, not decisions.

Placed in AGENTS.md rather than the skill because the skill is scoped to
writing new articles while these apply equally to edits, and because the
skill auto-loads for Claude Code only - Codex reads AGENTS.md. The skill's
qa-checklist.md points here instead of duplicating.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AsB1E5eSBXpaZT4jGzY57L
Make the repo self-onboarding for Claude Code and Codex
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.