Re: Snowflake on Oracle

  • From: Lok P <loknath.73@xxxxxxxxx>
  • To: yudhi s <learnerdatabase99@xxxxxxxxx>
  • Date: Sun, 16 Apr 2023 00:09:01 +0530

Agreed.

Got some links and most are from yugabyte DB though :)

https://news.ycombinator.com/item?id=20454053
https://docs.yugabyte.com/preview/faq/comparisons/
https://www.yugabyte.com/yugabytedb-vs-cockroachdb/
https://medium.com/yugabyte/go-jeks-performance-benchmarking-of-cockroachdb-tidb-yugabyte-db-on-kubernetes-9fde0127b00

what it says is basically,

Google spanner is not sql compatible, or say it has its own proprietary
language, so as Oracle guys may tilt towards yugabyte in this regard as
Yugabyte is postgresql compatible which is almost Oracle like.  Google
Cloud Spanner leverages Google's proprietary network infrastructure,
YugabyteDB is designed to work on commodity infrastructure used by most
enterprise users.

CockroachDB does not support - sql, pl-pgsql, triggers, postgres runtime
compatibility etc.

YugaByte DB delivers an average of 3.5x higher throughput and 3x lower
latency compared to CockroachDB.Performance wise it says yugabyte wins.
Joins and transactions across nodes work. Inner joins/right joins too works
in yugabyte.


On Fri, Apr 14, 2023 at 10:28 AM yudhi s <learnerdatabase99@xxxxxxxxx>
wrote:

*"some of the gifted experts like "Jonathan Lewis" made that experience
heavenly for Oracle in public domain" *so true this is.  I would say
rather "heavenly for Oracle users" :).

And with regards to the truly distributed system, in my view it should be
the one which can accept and scale for both reads and writes across all the
nodes and scales in linear fashion in a cluster. or say Multi-master in
terms of reading/writing. But as you mentioned Snowflake seems not truly
distributed as long as storage is concerned.

But i think somewhere in this list "Kyle" was talking of 'Yugabyte DB'
which is the rdbms(with everything like constraints, indexes, procedures,
partitions etc) and claims to be fully postgress compatible, ACID
compliant,  and is distributed in terms of read/write or say
memory/compute/storage etc and thus looks promising. I have not used that
myself but the detailed architecture and working seems promising. So I was
kind of tempted towards yugabyte DB as its RDBMS and promising to
scale.There are another two databases in a similar distributed RDBMS
category, I believe "google spanner" and "cockroach db". Not sure if
anybody used and knows the exact usage/comparison of these wrt yugabyte.
Considering there must be a lot of marketing fuss floating on the internet
in the official sites, it would be great if anyone can share their real
working experience on these databases and the pros /cons they have
encountered in real life applications/data.



On Fri, Apr 14, 2023 at 9:48 AM Lok P <loknath.73@xxxxxxxxx> wrote:

I have worked on Oracle mainly and recently came across Snowflake. And I
may be wrong in few but till now what i got to know is , the key thing
which makes Snowflake so different would be its "shared nothing"
memory/compute section. They call those warehouses and I can imagine those
equivalent to Oracle SGA but here in Oracle is "shared everything" and that
is where many times the contention(locks/latches etc) plays a key role. And
many times we can't really go over a certain number of RAC nodes even
oracle gives us the flexibility to go over many nodes/RAC. The storage in
Snowflake is "shared everything" like Oracle has.
This "shared nothing" memory/compute section provides an infinite amount
of compute resources as your workload grows linearly because the number of
warehouses can simply grow with the incoming workload. No talking happens
between the data residing in those warehouses/memories like it happens in
cases of oracle which we called the GC waits. But as storage is "shared
everything" so to my understanding , it's not truly distributed in terms of
storage and also I think there will be a situation where contention may
happen in the storage section in case of extreme scenarios/higher loads and
scaling may be a concern then.

Snowflake supports procedures/queries mostly similar to oracle but as
it's new so less in features and the optimizer may not be that matured as
Oracle has, but yes very less stuff is exposed to outside to play with
anything in terms of tweaking query performance/plans by tweaking different
stats/parameters or debugging any issues etc. Not sure if it's
done deliberately to have the dependency created or it's because it's new
so they have not provided/exposed those instrumentation to the public yet.
We know Oracle is best in the world in terms of the amount of
instrumentation it has provided to users and which is of immense help
while debugging/fixing issues and additionally some of the gifted experts
like "Jonathan Lewis" made that experience heavenly for Oracle in public
domain.

The term Indexes does not exist in snowflake but 'search optimization
service' is something they offer which can be utilized if we want to make
query faster which uses  filters on specific columns, so I believe that may
be internally doing the indexing of data etc. Not sure though. So by
default you will see the access path as tablescan only in the execution
plan.

Column storage makes it different from oracle row storage , so better
compression or less storage space is needed. I am not sure how it's
comparable with Oracle's columnar compression or say inmemory database
version which also claims to be columnar format, but snowflake by default
stores data in columnar format unlike oracle which stores data in "row
format" in blocks by architecture. Column format data store It's the base
architecture for snowflake. Constraints in snowflakes are just for name
sake but not enforced as oracle has. So these constraints I believe are
only to help optimizers come up with better plans but nothing else.

Regards
Lok




On Thu, Apr 13, 2023 at 9:42 PM Jon Crisler <joncrisler@xxxxxxxxx> wrote:

Kyle - I was about to make the same point.   I have worked on a number
of projects to move Oracle data to Snowflake for DW .  Golden Gate has an
adapter / agent to support Snowflake .   There are also products from
Fivetran , Confluent , and Delphix .   I do not work on Snowflake directly
, but my colleagues do , and the SQL interoperability with oracle is pretty
good .     Keep in mind that Snowflake is a cloud hosted system and not
available as a product you can download , but I think a dev account is easy
to get .  All of my projects used SF on Azure but AWS and GCS also host it.

Sent from my Atari 2600

On Apr 13, 2023, at 12:31 AM, kyle Hailey <kylelf@xxxxxxxxx> wrote:



Totally new databse which is amazing ... ie that someone would try and
write a database from scratch but these aren't just anybody . The principal
architects are Thierry and Benoit who were kernel architects from Oracle,
so no surprise there there might be some Oracle look and feel. The other
founder Marcin had worked on a few database kernels though all I see via
google searches is his DB Vectorwise.

On Wed, Apr 12, 2023 at 7:44 PM Mladen Gogala <gogala.mladen@xxxxxxxxx>
wrote:

On 4/12/23 19:50, Alan Sterger wrote:

So the question, does anyone know if Snowflake is built on top of
Oracle?

Snowflake is a columnar store database, not meant for OLTP. The data is
stored in a series of columns, with compression, of course. It is not
related to Oracle in any shape or form. Having said that, they're both
RDBMS-es which run on Linux. That's as far as the similarity goes.
Snowflake is written completely anew, so it's not a derivative of any other
database. It supports ANSI 2000 SQL without anything resembling PL/SQL.
However, SF is a data warehouse software so it doesn't need PL/SQL. If you
need something to compare SF to, think Vertica, not Oracle. SF isn't
PostgreSQL compatible but the rest is quite similar: compression, columnar
store and optimization for math.

--
Mladen Gogala
Database Consultant
Tel: (347) 321-1217https://dbwhisperer.wordpress.com


Other related posts: