<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/oracle-s-bson-benchmark-called-out-skiplists-get-a-tree-shaped-upgrade-cstyu8wyi" -->

---
title: Oracle&#x27;s BSON benchmark called out, skiplists get a...
description: A roundup of database engineering topics: a rebuttal of Oracle&#x27;s 529x OSON vs. BSON benchmark that argues it compares the wrong MongoDB data structure;...
canonical: https://daily.dev/posts/oracle-s-bson-benchmark-called-out-skiplists-get-a-tree-shaped-upgrade-cstyu8wyi
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Oracle&#x27;s BSON benchmark called out, skiplists get a tree-shaped upgrade | daily.dev
og:description: A roundup of database engineering topics: a rebuttal of Oracle&#x27;s 529x OSON vs. BSON benchmark that argues it compares the wrong MongoDB data structure;...
og:url: https://daily.dev/posts/oracle-s-bson-benchmark-called-out-skiplists-get-a-tree-shaped-upgrade-cstyu8wyi
og:image: https://api.daily.dev/og/posts/CStyu8wYI.png
og:image:alt: Oracle&#x27;s BSON benchmark called out, skiplists get a tree-shaped upgrade
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Oracle's BSON benchmark called out, skiplists get a tree-shaped upgrade

**[Databases Digest](https://daily.dev/sources/databases_digest)** · 3 min read · 0 upvotes · 0 comments

## Summary

A roundup of database engineering topics: a rebuttal of Oracle's 529x OSON vs. BSON benchmark that argues it compares the wrong MongoDB data structure; Antithesis engineers' 'skiptree' approach for ancestor queries in BigQuery using ~40 fixed JOINs instead of unbounded recursion; SQL identifier resolution differences across Spark, Trino, Hive, and Snowflake in lakehouse pipelines; and a real incident where SELECT queries escalated to full table locks. Also covers PostgreSQL extension updates (credcheck v4.7, pg_dbms_job v2.0), a semantic search pipeline on Amazon data using Pinecone and Gemini, and a RedisVL quick-start guide.

## Content

**TLDR:** A technical post tears apart Oracle's claim of a 529x performance edge over BSON, arguing the benchmark compares the wrong MongoDB data structure entirely. Separately, engineers at Antithesis share how they adapted skiplists into a tree structure to run ancestor queries in BigQuery with a fixed number of JOINs. On the PostgreSQL side, two extensions shipped updates worth knowing about. A real-world incident where SELECT statements escalated to full table locks is a good reminder that read queries aren't always safe.

---

## Oracle's OSON vs. BSON benchmark misses the point

An Oracle AskTom video claimed OSON has a 529x performance advantage over BSON. The rebuttal is straightforward: the benchmark compares OSON against raw on-disk BSON, not MongoDB's in-memory Mutable BSON structure, which provides O(1) field access via an Elements Vector. MongoDB strips metadata from on-disk BSON and builds richer in-memory structures at query time — that's the thing you'd actually be competing against. Both formats are optimized for their own systems; the benchmark just doesn't reflect how MongoDB processes queries in practice.

## Skiplists adapted for tree ancestor queries in BigQuery

Engineers at Antithesis needed efficient ancestor lookups on large tree-structured data stored in BigQuery. Recursive point lookups didn't scale, so they generalized the skiplist concept into what they call a "skiptree" — hierarchical SQL tables with `next_level_ancestor` and `ancestors_between` columns. The result: ancestor traversal using roughly 40 fixed JOINs instead of unbounded recursion, with query cost around twice a single table scan. This approach ran in production for six years before they built their own analytic database.

## SQL identifier resolution across lakehouse engines

A detailed writeup covers how Spark, Trino, Hive, and Snowflake each handle SQL identifier resolution differently — case sensitivity, quoting rules, namespace resolution. These differences are subtle enough to pass code review and only surface as bugs when queries move between engines. If you're building cross-engine pipelines in a lakehouse setup, this is the kind of thing that bites you at the worst possible time.

## SELECT statements causing table locks at Planbox

A real incident where read-only SELECT queries escalated to full table locks, conflicting with concurrent inserts and degrading the database. No details yet on root cause, but the pattern — reads unexpectedly blocking writes — usually points to missing indexes forcing lock escalation, or transaction isolation settings that are more aggressive than expected. Worth a look if you've ever assumed SELECT is always safe.

---

## Also notable

- **credcheck v4.7:** PostgreSQL credential policy extension adds `credcheck.superuser_nocheck` and `credcheck.disallow_password_change` options, plus a fix for `password_valid_until` when called from a plpgsql block; requires a PostgreSQL restart to take effect.
- **pg_dbms_job v2.0:** Rewrites the Oracle DBMS_JOB compatibility extension from a Perl-based scheduler to a C-based PostgreSQL background worker, part of the Ora2Pg migration toolchain by HexaCluster Corp.
- **Semantic search on Amazon product data:** Two-stage retrieval pipeline using Pinecone with Gemini embeddings and optional LLM reranking reports ~50ms Pinecone p50 latency and 60-70% cache hit rates, deployed on GCP Cloud Run.
- **RedisVL setup guide:** Quick-start for the Redis vector search Python library using pip and the redis-stack Docker image, with Redis Insight available at localhost:8001.
- **freeCodeCamp system design course:** Free 2-hour course covering SQL vs. NoSQL tradeoffs, horizontal scaling, load balancing, API protocols, and auth basics — entry-level but solid for onboarding.

## Similar posts on daily.dev

- [What are skiplists good for?](https://daily.dev/posts/what-are-skiplists-good-for--pvn3wrogk) · Hacker News · 1 upvotes · 0 comments

---

Tags: [#backend](https://daily.dev/tags/backend), [#postgresql](https://daily.dev/tags/postgresql), [#mongodb](https://daily.dev/tags/mongodb), [#google-bigquery](https://daily.dev/tags/google-bigquery)

[View this post on daily.dev](https://daily.dev/posts/oracle-s-bson-benchmark-called-out-skiplists-get-a-tree-shaped-upgrade-cstyu8wyi)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"DiscussionForumPosting","mainEntityOfPage":"https://daily.dev/posts/oracle-s-bson-benchmark-called-out-skiplists-get-a-tree-shaped-upgrade-cstyu8wyi","headline":"Oracle's BSON benchmark called out, skiplists get a tree-shaped upgrade","text":"A roundup of database engineering topics: a rebuttal of Oracle's 529x OSON vs. BSON benchmark that argues it compares the wrong MongoDB data structure; Antithesis engineers' 'skiptree' approach for ancestor queries in BigQuery using ~40 fixed JOINs instead of unbounded recursion; SQL identifier resolution differences across Spark, Trino, Hive, and Snowflake in lakehouse pipelines; and a real incident where SELECT queries escalated to full table locks. Also covers PostgreSQL extension updates (credcheck v4.7, pg_dbms_job v2.0), a semantic search pipeline on Amazon data using Pinecone and Gemini, and a RedisVL quick-start guide.","url":"https://daily.dev/posts/oracle-s-bson-benchmark-called-out-skiplists-get-a-tree-shaped-upgrade-cstyu8wyi","datePublished":"2026-04-20T04:18:17.688Z","dateModified":"2026-04-20T04:18:37.216Z","author":{"@type":"Organization","name":"Databases Digest","logo":"https://media.daily.dev/image/upload/s--ir1hdV8b--/f_auto,q_auto/v1773839400/logos/databases_digest?_a=BAMAMiiu0","url":"https://daily.dev/sources/databases_digest"},"interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"isPartOf":{"@type":"WebPage","url":"https://daily.dev/sources/databases_digest","name":"Databases Digest"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Databases Digest","item":"https://daily.dev/sources/databases_digest"},{"@type":"ListItem","position":3,"name":"Oracle's BSON benchmark called out, skiplists get a tree-shaped upgrade"}]}
```

