Compare commits
2 Commits
9fbe05a6a5
...
2491c38d4b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2491c38d4b | ||
| d9b1bb52a4 |
@@ -100,20 +100,28 @@ jobs:
|
||||
| sed "s#https://#https://sku-refresh-bot:${GITEA_TOKEN}@#")
|
||||
git push "$REMOTE" "$BRANCH"
|
||||
|
||||
# Open PR via Gitea API
|
||||
# Open PR via Gitea API (fail-fast + log response)
|
||||
OWNER=$(echo "$GITEA_REPO" | cut -d/ -f1)
|
||||
REPO=$(echo "$GITEA_REPO" | cut -d/ -f2)
|
||||
curl -sS -X POST \
|
||||
PAYLOAD=$(jq -n \
|
||||
--arg title "chore(pricing): monthly SKU refresh ${DATE}" \
|
||||
--arg head "$BRANCH" \
|
||||
--arg base "main" \
|
||||
--arg body "$(printf 'Automated refresh — see run artifact for full refresh/discover logs.\n\n```\n%s\n```' \
|
||||
"$(tail -40 /tmp/refresh.log)")" \
|
||||
'{title:$title, head:$head, base:$base, body:$body}')
|
||||
echo "Creating PR ${BRANCH} -> main ..."
|
||||
RESPONSE=$(curl -sS -w "\nHTTP_STATUS=%{http_code}\n" -X POST \
|
||||
-H "Authorization: token ${GITEA_TOKEN}" \
|
||||
-H "Content-Type: application/json" \
|
||||
"${GITEA_SERVER}/api/v1/repos/${OWNER}/${REPO}/pulls" \
|
||||
-d "$(jq -n \
|
||||
--arg title "chore(pricing): monthly SKU refresh ${DATE}" \
|
||||
--arg head "$BRANCH" \
|
||||
--arg base "main" \
|
||||
--arg body "$(printf 'Automated refresh — [refresh log artifact](../../actions).\n\n```\n%s\n```' \
|
||||
"$(tail -40 /tmp/refresh.log)")" \
|
||||
'{title:$title, head:$head, base:$base, body:$body}')"
|
||||
-d "$PAYLOAD")
|
||||
echo "$RESPONSE"
|
||||
STATUS=$(echo "$RESPONSE" | grep -oE 'HTTP_STATUS=[0-9]+' | cut -d= -f2)
|
||||
if [ "$STATUS" != "201" ]; then
|
||||
echo "::error::PR creation failed with HTTP $STATUS"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Open issue for new SKUs
|
||||
if: steps.discover.outputs.new_count != '0'
|
||||
@@ -130,14 +138,22 @@ jobs:
|
||||
BODY=$(printf '## %s new SKUs detected in Oracle API\n\n**Detected:** %s\n\nThese SKUs are present in the Oracle public pricing API but not yet in `kb/pricing/oci-sku-catalog.yaml`. Filter: serviceCategory values already represented in our catalog (so only relevant families show up).\n\n### Full listing\n\n```\n%s\n```\n\n### Next step\n\nReview and add relevant entries to `kb/pricing/oci-sku-catalog.yaml` under the appropriate category block. After merging, prices will be picked up automatically on the next monthly refresh.\n' \
|
||||
"$NEW_COUNT" "$DATE" "$(cat /tmp/discover.log)")
|
||||
|
||||
curl -sS -X POST \
|
||||
PAYLOAD=$(jq -n \
|
||||
--arg title "SKU catalog: ${NEW_COUNT} new SKUs to review (${DATE})" \
|
||||
--arg body "$BODY" \
|
||||
'{title:$title, body:$body}')
|
||||
echo "Creating issue: ${NEW_COUNT} new SKUs..."
|
||||
RESPONSE=$(curl -sS -w "\nHTTP_STATUS=%{http_code}\n" -X POST \
|
||||
-H "Authorization: token ${GITEA_TOKEN}" \
|
||||
-H "Content-Type: application/json" \
|
||||
"${GITEA_SERVER}/api/v1/repos/${OWNER}/${REPO}/issues" \
|
||||
-d "$(jq -n \
|
||||
--arg title "SKU catalog: ${NEW_COUNT} new SKUs to review (${DATE})" \
|
||||
--arg body "$BODY" \
|
||||
'{title:$title, body:$body, labels:["automation","sku-catalog"]}')"
|
||||
-d "$PAYLOAD")
|
||||
echo "$RESPONSE"
|
||||
STATUS=$(echo "$RESPONSE" | grep -oE 'HTTP_STATUS=[0-9]+' | cut -d= -f2)
|
||||
if [ "$STATUS" != "201" ]; then
|
||||
echo "::error::Issue creation failed with HTTP $STATUS"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Summary
|
||||
if: always()
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
# =============================================================================
|
||||
|
||||
---
|
||||
last_verified: "2026-03-14"
|
||||
last_verified: "2026-04-24"
|
||||
maintained_by: "Field Architecture Team"
|
||||
|
||||
versions:
|
||||
@@ -338,6 +338,69 @@ features:
|
||||
adb_s:
|
||||
"23ai": { status: "GA_CAVEAT", notes: "--resource-pool-summary works on CLI 3.73+. --autonomous-database-maintenance-window has JSON serialization bug on CLI 3.73.1 AND 3.75.0. Must use Console for maintenance window." }
|
||||
|
||||
- name: "Lakehouse External Table Cache / Lake Cache"
|
||||
category: "operations"
|
||||
matrix:
|
||||
adb_s:
|
||||
"23ai":
|
||||
status: "UNTESTED"
|
||||
notes: "Officially documented for Lakehouse workload. Caches external-table data locally to accelerate repeat reads. Field team has not yet validated production behavior."
|
||||
contributor:
|
||||
name: "Codex"
|
||||
team: "Field Architecture"
|
||||
date: "2026-04-24"
|
||||
confidence: "doc-validated"
|
||||
"26ai":
|
||||
status: "UNTESTED"
|
||||
notes: "Documented for AI Lakehouse workload. Expect benefit on repeated reads over external data; validate eviction behavior and cache warmup in benchmarks."
|
||||
contributor:
|
||||
name: "Codex"
|
||||
team: "Field Architecture"
|
||||
date: "2026-04-24"
|
||||
confidence: "doc-validated"
|
||||
|
||||
- name: "Apache Iceberg External Tables"
|
||||
category: "operations"
|
||||
matrix:
|
||||
adb_s:
|
||||
"23ai":
|
||||
status: "LIMITED"
|
||||
notes: "Official docs show support with important caveats: no partitioned Iceberg tables, no credential vending, no query-time time travel, and some snapshot/schema changes require recreating the external table."
|
||||
contributor:
|
||||
name: "Codex"
|
||||
team: "Field Architecture"
|
||||
date: "2026-04-24"
|
||||
confidence: "doc-validated"
|
||||
"26ai":
|
||||
status: "LIMITED"
|
||||
notes: "Same documented limitations as 23ai unless field testing proves otherwise. Treat as fit-for-purpose, not transparent parity with native Iceberg engines."
|
||||
contributor:
|
||||
name: "Codex"
|
||||
team: "Field Architecture"
|
||||
date: "2026-04-24"
|
||||
confidence: "doc-validated"
|
||||
|
||||
- name: "TP / TPURGENT Service Names on Lakehouse"
|
||||
category: "operations"
|
||||
matrix:
|
||||
adb_s:
|
||||
"23ai":
|
||||
status: "UNTESTED"
|
||||
notes: "Need field confirmation by exact release/build. Use docs/release notes before promising availability on older estates."
|
||||
contributor:
|
||||
name: "Codex"
|
||||
team: "Field Architecture"
|
||||
date: "2026-04-24"
|
||||
confidence: "doc-validated"
|
||||
"26ai":
|
||||
status: "GA_CAVEAT"
|
||||
notes: "Officially released for Lakehouse workload. Useful to explain mixed-workload support, but benchmark service behavior under real concurrency before positioning as OLTP-equivalent."
|
||||
contributor:
|
||||
name: "Codex"
|
||||
team: "Field Architecture"
|
||||
date: "2026-04-24"
|
||||
confidence: "doc-validated"
|
||||
|
||||
# =============================================================================
|
||||
# HOW TO ADD A NEW FEATURE
|
||||
# =============================================================================
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
last_verified: 2026-03-14
|
||||
last_verified: 2026-04-24
|
||||
description: |
|
||||
Real-world limits that differ from official documentation or are not
|
||||
well-documented. These come from actual deployment experience.
|
||||
@@ -75,3 +75,15 @@ limits:
|
||||
request limit increase via support ticket. Increases are usually
|
||||
approved within 1-2 business days.
|
||||
recommendation: "Request limit increases early in project planning"
|
||||
|
||||
- service: ADB-S Lakehouse
|
||||
limit: "Apache Iceberg interoperability"
|
||||
documented: "Lakehouse can query Iceberg tables"
|
||||
real_world: |
|
||||
The capability is useful, but not transparent parity with native
|
||||
Iceberg engines. Current documented constraints include: no partitioned
|
||||
Iceberg tables, no credential vending, no query-time time travel, and
|
||||
some schema/snapshot changes requiring external table recreation.
|
||||
Architects should treat this as selective interoperability, not a
|
||||
drop-in replacement for every Iceberg pattern already in use.
|
||||
recommendation: "Validate exact Iceberg table design and metadata workflow before positioning ADB Lakehouse as a universal Iceberg endpoint"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# OCI Service: Autonomous Database Serverless (ADB-S)
|
||||
# Last verified: 2026-03
|
||||
# Last verified: 2026-04
|
||||
|
||||
service:
|
||||
name: "Autonomous Database Serverless (ADB-S)"
|
||||
name: "Autonomous AI Database Serverless (ADB-S)"
|
||||
id: adb_serverless
|
||||
category: database
|
||||
color: "#AA643B"
|
||||
@@ -35,13 +35,17 @@ limits:
|
||||
|
||||
variants:
|
||||
- id: adb_s
|
||||
name: "Autonomous Database Serverless (ADB-S)"
|
||||
name: "Autonomous AI Database Serverless (ADB-S)"
|
||||
description: "Shared Exadata infrastructure, fully managed, auto-scaling"
|
||||
workload_types:
|
||||
- ATP (Transaction Processing / Mixed)
|
||||
- ADW (Data Warehouse / Analytics)
|
||||
- AJD (JSON Document Store)
|
||||
- APEX (Low-code application development)
|
||||
- "Autonomous AI Transaction Processing (TP) - app-facing OLTP and mixed workloads on local database-managed data"
|
||||
- "Autonomous AI Lakehouse - SQL across database-local plus external/open-format data (Object Storage, Iceberg, federated catalogs)"
|
||||
- "Autonomous JSON Database - document-centric JSON development pattern"
|
||||
- "APEX Application Development - low-code application development"
|
||||
workload_notes:
|
||||
- "Since October 2025 Oracle documentation uses Autonomous AI Database naming for workload types."
|
||||
- "Lakehouse is not a separate database engine; it is a workload specialization with an explicit external-data plane."
|
||||
- "Lakehouse now also exposes TP and TPURGENT predefined service names, so do not assume warehouse-only service semantics."
|
||||
|
||||
- id: adb_d
|
||||
name: "Autonomous Database on Dedicated Exadata (ADB-D)"
|
||||
@@ -59,6 +63,7 @@ when_to_use:
|
||||
- "JSON document workloads (AJD)"
|
||||
- "Rapid APEX application development"
|
||||
- "Data warehouse / analytics with auto-scaling"
|
||||
- "Need Lakehouse-style SQL over Object Storage / Apache Iceberg without copying all data into the database"
|
||||
|
||||
when_not_to_use:
|
||||
- "Non-Oracle database engines (use MySQL HeatWave, PostgreSQL, NoSQL)"
|
||||
@@ -66,6 +71,7 @@ when_not_to_use:
|
||||
- "Need RAC but not ADB-D budget → use ExaCS or DBCS VM"
|
||||
- "Workloads requiring specific DB patches not yet in ADB"
|
||||
- "Extreme IOPS requirements > what Exadata provides"
|
||||
- "Choose TP workload if the dominant path is OLTP write-heavy access on database-local data and external/open-table access is peripheral"
|
||||
|
||||
sizing:
|
||||
adb_s:
|
||||
@@ -114,6 +120,22 @@ gotchas:
|
||||
severity: LOW
|
||||
description: "ADB now defaults to Oracle 26ai in all commercial regions. 19c is legacy. Verify customer version requirements."
|
||||
|
||||
- id: adb_lakehouse_not_separate_engine
|
||||
severity: MEDIUM
|
||||
description: "Lakehouse is a workload specialization inside ADB Serverless, not a separate database engine or separate managed service."
|
||||
|
||||
- id: adb_lakehouse_external_data_plane
|
||||
severity: MEDIUM
|
||||
description: "Lakehouse value appears when Object Storage / Iceberg / open-format access is structural. If the dataset is fully local and OLTP-dominant, TP is usually the cleaner fit."
|
||||
|
||||
- id: adb_lakehouse_iceberg_limits
|
||||
severity: HIGH
|
||||
description: "Current Iceberg support has material caveats: no partitioned Iceberg tables, no credential vending, no query-time time travel, and some snapshot/schema changes require recreating the external table."
|
||||
|
||||
- id: adb_lakehouse_tp_services
|
||||
severity: LOW
|
||||
description: "Lakehouse now supports TP and TPURGENT predefined service names. Do not model it as ADW-style query-only connectivity."
|
||||
|
||||
implied_dependencies:
|
||||
- service: service_gateway
|
||||
reason: "Required for automated backups to Object Storage"
|
||||
@@ -144,8 +166,16 @@ references:
|
||||
documentation: "https://docs.oracle.com/en/cloud/paas/autonomous-database/"
|
||||
pricing: "https://www.oracle.com/autonomous-database/pricing/"
|
||||
sizing_guide: "https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/autonomous-database-cpu.html"
|
||||
workload_types: "https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/about-autonomous-database-workloads.html"
|
||||
lakehouse: "https://docs.oracle.com/en-us/iaas/autonomous-database-serverless/doc/lake-lakehouse.html"
|
||||
iceberg: "https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/query-external-data-apache-iceberg.html"
|
||||
lakehouse_tp_services: "https://docs.oracle.com/iaas/releasenotes/autonomous-database-serverless/2025-10-tp-tpurgent-predefined-db-service-names-for-lakehouse-workload.htm"
|
||||
data_lake_accelerator: "https://docs.oracle.com/iaas/releasenotes/autonomous-database-serverless/2025-11-data-lake-accelerator.htm"
|
||||
|
||||
changelog:
|
||||
- date: "2026-04-24"
|
||||
contributor: { name: "Codex", team: "Field Architecture" }
|
||||
change: "Updated workload taxonomy to Autonomous AI naming; added Lakehouse selection guidance, Iceberg caveats, TP/TPURGENT note, and official references"
|
||||
- date: "2026-03-14"
|
||||
contributor: { name: "Diego Cabrera", team: "Field Architecture" }
|
||||
change: "Initial creation with sizing rules, gotchas, competitive notes, HA/DR options"
|
||||
|
||||
Reference in New Issue
Block a user