AlloyDB Omni – run AlloyDB anywhere
cloud.google.com
cloud.google.com
But I have to applaud Google for the excellent first party emulators and local tooling that they provide (Alloy Omni doesn't seem like an emulator on first readthrough, but enabling fast local iteration has the same effect). The Firebase emulator suite makes development soooo fast because it cuts out a deployment step to a shared resource that has to be coordinated.
Meanwhile, Microsoft as been dragging their feet on supporting CosmosDB emulation on Arm hardware [0]. I was a big fan of CosmosDB, but kind of gave up on it after switching to an M1 MBP because it was unwieldy to work with without a local emulator.
[0] https://github.com/Azure/azure-cosmos-db-emulator-docker/iss...
The only downside I see is that going through the deployment process, it seems that the smallest instance I can provision is 2vCPU/16GB which if I'm looking at the pricing table correctly, equates to $230/mo. for a single instance.
The web console only lets me create a cluster with minimum 2 instances so it seems like I'm looking at $460 minimum to deploy Alloy. That feels a bit excessive.
Which is too bad, because ASB is awesome, IMO the best Azure service.
I am also a big fan of ASB and I cannot fathom how a multi-billion dollar company that bills itself on developer productivity can't ship emulators for their cloud suite.
If even for their own internal testing and release validation.
> 3.1. Use. You may authorize employees, agents, and subcontractors to use the Software in accordance with this Section 3, so long as you remain responsible for them. You may make a reasonable number of copies of the Software for back-up and archival purposes.
> You acknowledge that the Software is a preview offering not intended for production environments, and you agree that you will only use the Software in non-production environments.
Anyway, all that stuff in the docs is lovely, but if you just want to have a look:
pip install gsutil
gsutil cp -r gs://alloydb-omni-install/$(gsutil cat gs://alloydb-omni-install/latest) .
The install scripts are only 16K, look at `installer/scripts/start_alloydb.sh` for more, but basically it just runs the two docker containers listed in https://cloud.google.com/alloydb/docs/omni/install#installSeems kind of weird, having a one-time install script to prep a machine (but only a specific type of machine!) that you then run a pair of docker containers on to me, honestly. Eventually consistent deployment states? eh. whatever...
curl -vJLO https://storage.googleapis.com/alloydb-omni-install/$(curl -fs https://storage.googleapis.com/alloydb-omni-install/latest)alloydb_omni_installer.tar.gz
The `latest)alloy` is not a typo, the contents of the "latest" file ends with a slash and GCS doesn't tolerate `//` (presumably just like S3 wouldn't)There is a Postgres interface to Spanner which probably did that.
Thank you for the clarification!
I am pushing at the OSS angle, but new product, so uphill battle. :)
Network Attached Tablespace
https://doc.rockdata.net/admin/network-tablespace/
PostgreSQL Multitenant
AlloyDB Omni Columnar Engine Fast Analytics Demo - YouTube https://www.youtube.com/watch?v=f_dvdKMq6og
I did notice the release reads just like an internal AWS PR with Andy’s preferred structure… guess all those aws folks they recruited are making an impact.
The analytics workloads improvements seem pretty straightforward (or at least there is prior art like timescale)
There can be improvements like what OrioleDB is trying to do: https://github.com/orioledb/orioledb/
Gitpod:
2023-03-29 18:13:54.044 UTC: [alloydb_util.sh:90] FATAL: Docker service must be active to run AlloyDB Omni
GitHub Codespaces (after increasing memory): 2023-03-29 18:37:55.236 UTC: [alloydb_util.sh:76] FATAL: AlloyDB Omni requires cgroups V2 to run.
GitHub Actions: 2023-03-29 18:53:52.766 UTC: [alloydb_util.sh:44] AlloyDB requires at least 16GB of RAM to run. Only 7 GB available. Please increase available RAM and retry
Not today it seems. Shame, sounded super interesting.Thanks, but no thanks!
Does someone have good experience with Alloydb?
I mean, if someone legitimately finds workloads that aren't performing well, our engineering team SHOULD want to know about it, right?
Sorry for being a bit negative but I was very excited for AlloyDB as a potential serverless offering for Postgres. Especially after having good experience with Aurora. And we ended up wasting a decent amount of resources migrating to and then away from it, thus my frustration.
In our use-case we use Postgres essentially as a cache. We have many cloud runs (approx 100) writing a lot of data in parallel which we then on a schedule query in certain ways and put it to GCP. Its quite a bit of data, about 1 TB a day.
It was a very CPU bound effort and to get acceptable performance we had to rely on the 8 core configuration, and we couldn't reduce the memory (from 64). We were getting similar performance with a 4 core 8gb Cloud Sql instance.
Probably not the most representitive workload but this had exactly the opposite effect to what we wanted (e.g. much more wasted resources and less serverless).
Also the fact you couldn't disable it was an absolute joke (we have prod dev and staging env and if we have to have a big always running DB for each of them, you can see how that is unacceptable).
We are happy with CloudSql though.
I've been trying to get my work let us use BigQuery for our geospatial vector data queries, because we've managed to break all the equivalent AWS products, Snowflake, and Databricks on our dataset. Regular Postgres + PostGIS takes about 30 minutes to run our query and BigQuery does the same in 4 seconds. Unfortunately, BigQuery is a bit of a pipe dream right now for us, so it would be interesting to understand if PostGIS benefits from some of the changes in Alloy.
Lots of other rough edges with their other services. I have to believe that Google doesn't dog-food their own services.
Also, from a manageability, on top of the index advisor, there's also vacuum management, so it will figure out when the best time to do the garbage cleanup while minimizing impact on performance.
Obviously, we use Postgres not for its performance but for its ergonomics, first class dbt support and unbeatable extension ecosystem. Now if you're telling, I get all that with no compromises whatsoever and with a 10-100x analytical query performance increase, I'd be crazy not to use it.
From my perspective, Postgres just keeps on giving.
From seeing the cloud alloydb I had imagined most of the improvements were due to the wal-shipping and cloud native aspects.
Will try once we get clarity on licensing. (Probably we can't use if the code is not open, so let's see)