Skip to content

Correct storage policy docs against source behavior#475

Open
glasstiger wants to merge 4 commits into
mainfrom
ia_sp_fix
Open

Correct storage policy docs against source behavior#475
glasstiger wants to merge 4 commits into
mainfrom
ia_sp_fix

Conversation

@glasstiger

Copy link
Copy Markdown
Contributor

Summary

Corrects the storage policy documentation against the actual QuestDB Enterprise
source behavior, from an audit of every storage-policy-related page.

Behavioral corrections

  • SET STORAGE POLICY fully replaces the policy. Omitted stages are
    cleared, not preserved. The parser resets every stage to 0 and the writer
    appends a fresh row with no merge, so the previous "omitted settings remain
    unchanged" wording was wrong.
  • TO REMOTE is accepted and stored, not rejected. It is parsed, validated,
    and persisted, but not yet enforced (no upload happens). Only DROP REMOTE is
    rejected at parse time with 'DROP REMOTE' is not supported yet. The docs
    previously claimed both were rejected with parse-time errors.
  • Unset stages render as 0h in storage_policies, not blank. drop_remote
    is always 0h; to_remote is 0h unless a value is set.
  • The Enterprise TTL rejection message is
    TTL is not supported on Enterprise tables; use a storage policy instead, not
    TTL settings are deprecated, ... (which does not exist in the source).
  • CREATE TABLE ... TTL is translated into STORAGE POLICY(DROP LOCAL ...),
    not rejected
    , in Enterprise. Only ALTER TABLE SET TTL with a non-zero value
    is rejected.
  • SHOW CREATE TABLE does not render a disabled policy (the reader loads
    active-only policies).

Configuration corrections

  • storage.policy.check.interval default is 5m, not 15m.
  • storage.policy.worker.count default is 4, not 2.
  • Removed storage.policy.writer.wait.timeout, which does not exist in the source.
  • Documented the four real worker-pool properties: worker.haltOnError,
    worker.nap.threshold, worker.sleep.threshold, and worker.yield.threshold.

Other

  • meta.md: year-based TTLs are stored as months (1 YEAR renders as 12m),
    not normalized to hours.
  • Documented the partition-size granularity constraint on storage policy TTLs.

🤖 Generated with Claude Code

- SET STORAGE POLICY fully replaces the policy; omitted stages are
  cleared, not merged (docs claimed partial updates)
- TO REMOTE is accepted and stored but not enforced, not rejected at
  parse time; only DROP REMOTE is rejected
- storage_policies renders unset stages as 0h, not blank
- Fix Enterprise TTL rejection message; CREATE TABLE ... TTL is
  translated to DROP LOCAL, not rejected
- Config: check.interval 5m (was 15m), worker.count 4 (was 2); drop
  nonexistent writer.wait.timeout; document worker.* tuning props
- SHOW CREATE TABLE does not render a disabled policy
- meta.md: year TTLs are stored as months (1 YEAR -> 12m)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

🚀 Build success!

Latest successful preview: https://preview-475--questdb-documentation.netlify.app/docs/

Commit SHA: 11bfa1b

📦 Build generates a preview & updates link on each commit.

glasstiger and others added 3 commits July 3, 2026 13:11
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- meta.md: storage_policies.table_dir_name cross-reference now names the
  real tables() column (directoryName, not table_dir_name)
- create-table.md: reorder syntax diagram so TTL/STORAGE POLICY precedes
  WAL, matching every example and SHOW CREATE TABLE output
- alter-table-set-ttl.md: align framing with ttl.md ("superseded by
  Storage Policy" instead of "deprecated")
- ttl.md: note materialized views still use TTL on Enterprise

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Address review findings on PR #475: three wording corrections consistent
with the local-only behavior documented elsewhere in the PR.

- configuration/storage-policy.md: intro no longer claims present-tense
  "cold storage offloading"; describes local Parquet conversion and drop.
- concepts/storage-policy.md: the storage_policies view lists all policies
  and their status, not just active ones (it also returns disabled rows).
- concepts/ttl.md: storage-policy cross-reference drops "offload to object
  storage" from the current lifecycle description.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

1 participant