812 karma · joined May 8, 2008
If your writes are single table and don't require transactional safety, why introduce transactions?
If you need complex, multiple-insert or update writes, transactions are great, but that can also be accomplished in a stored proc.
In a high-velocity environment, avoiding transactions are a great way to get more throughput out of your database server with lower latencies.
Combine Postgres with pgBouncer in statement mode and you can scale it pretty dramatically.
My mother-in-law passed last summer, alone in her apartment. She was sick beforehand, quarantined, and living in a senior living community. When she was discovered the coroner did not come and investigate because it appears of natural causes, based on the observations of the local police officer. Her body was transported directly to the funeral home.
I insisted they do a COVID-19 test, which the coroner did at the funeral home. The results came back as positive. Had I not pushed them to actually test, it would have been misreported and her death mis-attributed.
It left me wondering if this was common and how many people may have passed in similar circumstances, without family pushing for testing.
A graph database is about storing data that the relationships between pieces of data, like a social graph as an example. You'd have a people and the relationships between them in the database.
6 years ago my company switched to Python 3.5 and there was a big push in the community at that point to move away from Python 2. I mean Python 3 came out around the same time as Windows Vista, which has been unsupported since 2017.
I remember early presentations on Elixir (I think first at Erlang DC in 2011 or 12?) and it's been great to watch Elixir mature and develop.
While I'm strongly in the Erlang camp, I do appreciate the work you and the contributors to Elixir have done for the ecosystem as a whole.
And something to work on for sure.
On the positive side, I don't think we'd have gotten rebar3 without hex guiding the way.
That being said, I wish hex.pm did a better job at distinguishing between elixir packages and erlang packages. It's always super disappointing when I try and stay pure Erlang to have to sift through Elixir packages for what I am looking for.
It's amazing how far Elixir has come in 10 years. I've always hoped it can become a gateway drug for Erlang. I don't think it will, and I guess that's okay, as it pushes Erlang forward in its own way.
Frankly 1.0 releases of just about anything these days are buggy.
I don't expect initial releases of anything to be error free, and in a world of internet based distribution and continuous updates of games, I'm turned off by constant complaints about initial releases.
Cyberpunk 2077 was pushed back to address problems and people complained. They released with problems and people complain.
Game companies can't win in any scenario.
Announce too soon? Complain. Release when you say you will, but with bugs, complain. Release late to address bugs, complain.
Tangentially related, IMO the term "beta release" has evolved from being a true "help us test and find bugs" as a marketing tool to excuse negative feedback.
Edit: should clarify, was making a joke.
If the Docker issue is resolve, I'll likely jump on a M1 MBP when they're available.
Heck at one of Postgres conferences there was a shirt that said something like "Tom Lane reviewed my patch and all I got was this stupid shirt."
While he was not a BDFL style person, in the past, if he didn't like a change, it didn't make it in.
Prototypes have no restrictions that we would normally place on code (coverage %, automated pipelines, etc) and can only be created in a sandbox AWS account that has no access to our internal systems. It allows developers to prove out concepts or work with product to quickly iterate on PoC.
On the other side, PoC's have a limited lifespan and if successful, are expected to be re-implemented as an MVP, following our internal standards and guidelines.
:)
2. The partitioning improvements are tremendous and well worth the change if you're using trigger+constraint based partitioning.
3. Parallelization and the addition of concurrent reindexing
4. Built-In Logical Replication
5. JIT query optimization