September 2026 Summaries
12 posts from Tiger Data
Filter
Month:
Year:
Post Summaries
Back to Blog
A TimescaleDB migration approach converts a wide oilfield SCADA hypertable into a narrow fact table storing timestamps, surrogate tag IDs, and values, paired with a metadata table that centralizes tag descriptors, allowing new instruments to be added without schema changes. The process requires stable tag metadata, a temporary freeze on new tag registration, and a brief low-activity period for cutover; it uses a metadata backfill, resumable time-sliced transactional data loads tracked in a control table, and post-load indexing to limit risk and support recovery. A compatibility view replaces the original table name after renaming the old table, preserving existing dashboard queries while ingestion moves directly to the new narrow table. The guide emphasizes pausing compression during backfill, auditing and recreating dependent policies, aggregates, triggers, and grants after renaming, carefully handling retention to avoid deleting migrated history, and validating results through per-slice counts and sampled daily checksums before dropping the old table. It also notes that tags with changing descriptors need a more complex time-dependent metadata design, while mixed data types can use separate nullable typed value columns.
Sep 30, 2026
4,095 words in the original blog post.
A reported evaluation argues that a minimal RAG architecture—one Postgres table with BM25 and HNSW indexes, hybrid retrieval through reciprocal rank fusion, and an MCP tool server allowing Claude to search iteratively—can rival or exceed more elaborate retrieval pipelines as language models improve. On 500 MuSiQue questions, the system using Claude Haiku achieved 0.418 exact match and 0.564 accuracy, surpassing cited published approaches, while on BRIGHT it reached a mean nDCG@10 of 0.556, placing in the second-to-third leaderboard tier without a fine-tuned retriever. The authors attribute the results to model-directed searching and a disciplined evaluation loop that tests isolated changes using per-query statistics, rejects hypotheses after three unsuccessful variants, and relies on inexpensive database forks to make reversions easy. Most attempted MuSiQue additions, including forced hybrid search, more retrieved results, entity-enriched embeddings, and decomposition prompts, worsened performance, whereas BRIGHT retained corpus-specific prompts and generated “concept sketch” text columns for vocabulary-mismatched domains such as robotics and mathematics. The account acknowledges that the BRIGHT prompts were developed using the evaluated data, that model reasoning rather than retrieval remains a major limitation on multi-hop questions, and that the agent-based approach is much slower and more expensive per query than specialized retrievers, though it argues that falling model costs and lower maintenance needs may make thin, removable architectures increasingly attractive.
Sep 30, 2026
3,733 words in the original blog post.
A study of long-term conversational memory argues that AI assistants may not need elaborate preprocessing pipelines such as fact extraction, session summaries, entity graphs, or custom memory managers if they can autonomously search raw conversation turns through well-designed tools. The system stores each turn in a single Postgres table with vector, BM25, regex, hierarchical, and temporal indexes, then lets Claude Sonnet or Haiku choose how to query the data through three MCP tools; it reported raw LoCoMo benchmark F1 scores of 0.665 for Sonnet and 0.638 for Haiku, exceeding the cited best Omni-SimpleMem result of 0.613. Experiments suggested that agent-directed search, simple tool schemas, unrestricted tool calls, temporal filtering, and searchable image captions can improve retrieval, while LLM-generated atomic facts increased ingestion cost without measurable benefit. The work also emphasizes a recurring tradeoff between stronger answering performance and correctly rejecting adversarial, unsupported questions, arguing that evaluations excluding adversarial cases can obscure hallucination risks. However, the authors note important limitations, including model-confounded comparisons with GPT-based baselines, tuning on one conversation, bundled changes that prevent precise attribution, incomplete cost data, and LoCoMo’s limited scale and benchmark errors, concluding that the approach is promising but not yet a definitive replacement for production memory architectures.
Sep 29, 2026
5,882 words in the original blog post.
A six-day project used Claude Code to run 41 experiments on long-term conversational memory retrieval, increasing LoCoMo benchmark F1 from 0.392 to 0.666, though the authors emphasize that the main lesson was not the score but the importance of human oversight in evaluating objectives. The agent wrote nearly all code, implemented hypotheses, and uncovered several technical bugs, while humans provided the critical checks that exposed misleading evaluation signals, including category hints that leaked answer formats, a recall metric unable to count extracted facts, and fact extraction that added cost and search noise without improving F1. Fast five-to-seven-minute evaluation cycles, a constrained TypeScript harness, and separating editable experiment code from fixed evaluation infrastructure enabled rapid iteration, but measured run-to-run F1 variance of about 0.04 required caution when interpreting small changes. The final, simpler system removed several components, made image captions searchable, combined grep with ranked search, improved speaker-based filtering, and expanded retrieval context. Using Postgres as a unified store for semantic, full-text, and grep retrieval made schema and query changes inexpensive, supporting experimentation that would have been more complex across separate vector, search, and relational systems.
Sep 28, 2026
1,858 words in the original blog post.
Industrial IoT PostgreSQL capacity planning should rely on measurements from a populated proof-of-concept table rather than nominal column widths, because tuple overhead, alignment, page pointers, and indexes can raise a 20-byte sensor record to roughly 95.6 bytes per row with one ingest-built index. The proposed method uses four inputs—tag count, sampling rate, measured bytes per row, and retention period—to project row counts, storage growth, cost, and required ingest throughput, supported by SQL size functions and pgbench testing against loaded tables. In the example, 10,000 tags reporting once per second for 24 months produce about 631 billion rows, require approximately 60.3 TB of storage, add 2.5 TB monthly, and need a sustained 10,000 inserts per second or 12,000 with headroom, while the tested two-core system reached only 8,719 inserts per second. Storage spending compounds as retained data accumulates, making longer retention substantially more expensive, while increases in tag count can quickly exceed both storage and ingest limits. The text recommends validating estimates in staging, testing growth scenarios before committing to a schema, and considering time-partitioned, compressed alternatives such as Tiger Data hypertables when conventional PostgreSQL projections fail budget or performance requirements.
Sep 25, 2026
1,463 words in the original blog post.
Indexes should be treated as measurable trade-offs rather than defaults because they can greatly accelerate compatible queries while adding persistent write, storage, WAL, and page-split costs to every insert. Using a PostgreSQL composite index on `(tag_id, ts DESC)` as an example, the guide explains that such indexes work best when queries filter on the leading column, enabling efficient seeks and ordered results, but may provide little benefit for timestamp-only searches across many tags. It recommends measuring read benefits with `EXPLAIN (ANALYZE, BUFFERS)`, measuring index density, WAL generation, and insert throughput on production-sized data, and comparing the resulting indexed ingest ceiling with peak rather than average ingestion demand. In the example, the index reduces a dashboard query from roughly 254,000 buffer accesses to 506, but lowers insert throughput by 7.8 percent due partly to scattered insert locations and lower B-tree page density. The guide also advises auditing existing indexes for large, rarely scanned, redundant, or nonessential indexes while preserving unique and constraint-backed indexes, validating changes across a full business cycle, and using concurrent index drops to avoid blocking writes.
Sep 18, 2026
1,849 words in the original blog post.
Meshtastic Metrics Exporter is an open-source monitoring platform created by software engineer Gleb Tcivie for Meshtastic’s LoRa-based off-grid mesh networks, converting MQTT radio traffic into searchable telemetry and node histories with preconfigured Grafana dashboards. After Prometheus became impractical at larger scale because approximately 10,000 nodes and 55 metrics each produced nearly half a million metric series, the project consolidated metrics and node metadata into a single PostgreSQL database using TimescaleDB. A Python service decodes protobuf packets and progressively builds node profiles from incomplete, differently timed data streams, while TimescaleDB stores telemetry such as power, environmental readings, positions, packet counts, and radio metadata. Automated jobs infer each node’s reporting intervals, helping operators identify misconfigured devices that may consume disproportionate mesh capacity. The three-container Docker deployment is intended for mesh operators without database expertise, and the unified SQL database enables a single node page to correlate device details with eight categories of historical data, replacing multiple unconnected Prometheus queries.
Sep 16, 2026
1,393 words in the original blog post.
PostgreSQL write amplification occurs when a small logical insert produces substantially more physical storage and WAL activity due to MVCC tuple headers, page line pointers, index entries, and durability logging. Using a 40-byte sensor reading in a PostgreSQL 16 table with three indexes, the discussion estimates that each insert can generate four WAL records and roughly 345 bytes of WAL, with full-page images after checkpoints causing additional temporary spikes. It provides a SQL-based measurement approach using `pg_current_wal_lsn()` and `pg_stat_wal`, showing sample amplification of about 8.73–10.74 times with three indexes and 2.44 times after removing them, suggesting index maintenance accounts for much of the logging overhead. Recommended reductions include batching writes with COPY or multi-row inserts, removing rarely used indexes, enabling WAL compression, and adjusting checkpoint settings, while noting tradeoffs such as CPU use, recovery time, and WAL disk consumption.
Sep 11, 2026
1,661 words in the original blog post.
Unrestricted production database access for AI agents is unsafe because prompt injection, mistakes, or weak MCP server implementations can turn broad permissions into immediate exposure or destructive actions. The recommended approach is defense in depth enforced primarily at the database layer: use dedicated least-privilege roles instead of admin credentials, default exploratory agents to read-only access, restrict permissions to necessary schemas and tables, log activity, and require deliberate human-reviewed escalation for writes or schema changes. Risky testing and migrations should run against forks or read replicas to isolate production, while data minimization can reduce unnecessary exposure. Tiger MCP and Tiger CLI are presented as examples of this model, combining client-side controls with server-enforced read-only database sessions and PostgreSQL role restrictions, but the discussion emphasizes that no configuration fully prevents an agent with legitimate read access from being manipulated into disclosing sensitive data.
Sep 08, 2026
3,619 words in the original blog post.
Running TimescaleDB on Azure can involve self-hosting the Apache 2 edition, using a third-party managed offering, or adopting Tiger Cloud, Timescale’s fully managed platform, with the choice largely depending on whether teams want to operate the database themselves. The text argues that Azure PostgreSQL Flexible Server lacks TimescaleDB Community Edition features such as compression, continuous aggregates, Toolkit, and skip-scan, while self-hosting requires ongoing expertise in hypertable design, retention, compression, aggregation, monitoring, backup, failover, and capacity planning. It presents Tiger Cloud on Azure as an alternative designed to automate time-series database operations, offering tiered storage that moves older data to Azure Blob Storage while retaining SQL query access, private endpoints for Azure virtual networks, expanded regional availability, cross-region backups, automated point-in-time recovery and failover, and Azure Monitor integration. Self-hosting remains positioned as a valid option for organizations needing maximum architectural control and possessing sufficient operational capacity, whereas Tiger Cloud is presented as reducing infrastructure work so teams can focus more on application development and business needs.
Sep 03, 2026
1,277 words in the original blog post.
Append-only PostgreSQL tables can accumulate substantial dead space despite never being updated, primarily through aborted insert batches, while insert-triggered autovacuum may run frequently to freeze tuples and maintain visibility metadata. The post explains how to use statistics from pg_stat_user_tables to rank tables by estimated dead tuples, dead-space ratio, insert activity, size, and autovacuum recency, distinguishing between healthy vacuum activity, workloads where vacuum is falling behind, and cleanup blocked by long-running transactions or replication slots. It also notes that index bloat requires separate density measurements with pgstatindex, with nonsequential B-tree indexes such as those on device identifiers often more vulnerable than time-ordered indexes. Recommended practices include applying fixed per-partition autovacuum thresholds rather than large-table scale factors, increasing per-table vacuum cost limits where appropriate, ensuring future partitions inherit settings, and alerting when dead-space ratios rise or autovacuum becomes unexpectedly stale. Plain VACUUM reclaims space for reuse rather than shrinking files, and persistent growth after tuning may indicate that storage architecture rather than vacuum configuration is the limiting factor.
Sep 02, 2026
1,781 words in the original blog post.
PostgreSQL is presented as a durable foundation for the expanding software, data, agent, and AI workloads enabled by large language models because developers value dependable infrastructure over constant database reinvention. Contributors attribute its continued relevance to transactional correctness, reliable query planning, SQL support, open-source governance, and an extension model that permits rapid innovation in areas such as JSON, time-series, geospatial data, analytics, vector search, and AI while preserving a cautious, stable core. Its broad community, liberal licensing, and multi-vendor ecosystem reduce lock-in and provide enterprises with commercial choice, support, and confidence in its long-term viability. The discussion also emphasizes that LLMs and relational databases are complementary, since AI systems often require databases to provide current, consistent, and accurate access to structured enterprise data. Despite its age and competition from established commercial databases, PostgreSQL is characterized as adaptable, familiar, and increasingly suited to serve as an operational, metadata, document, search, and vector-data platform for modern AI-powered applications.
Sep 01, 2026
966 words in the original blog post.