What prevents a transaction from being prematurely aborted while there are some intents in flight?
From what I understand, transaction A can still be replicating intents and transaction B, not knowing that coordinator for transaction A is still at work, start a recovery process. This makes transaction A abort which could be prevented by waiting for intents of A to be successfully replicated.
Assuming the owner is smart and does not want anyone to detect that such a thing exists, then no one can. As soon as the owner feels that someone else knows, they will send a message back as a warning and tell themselves to be more careful.
For the world in general, indeed, it is better than having a dead or hardly-maintained project (which needs financial incentives from project owners). Don't you agree?
I don't really think increasing the world's stock of proprietary software is something to laud. Still, with their "switch to Apache after 3 years", I guess that this is still, on balance, better than nothing.
What I reject is the idea that the only choices are "make this kind of switch" OR "having a dead or hardly-maintained project". Sounds a bit "fallacy of the excluded middle" to me. But they have the right to license their thing however they want, so what right do any of us really have to complain. I just find it frustrating to see people retreating from an Open Source position given my own deeply rooted ideological bias towards F/OSS.
> What I reject is the idea that the only choices are "make this kind of switch" OR "having a dead or hardly-maintained project". Sounds a bit "fallacy of the excluded middle" to me.
In general, that's of course obviously true. For software like this, that's geared toward use by businesses and SaaS applications, I agree with Cockroach Labs. Their hosted solution doesn't stand a chance if AWS decides to do a hosted version of CockroachDB, and they won't see a penny of that revenue. Since contributions outside of employees of Cockroach Labs are pretty minimal, it's a textbook recipe for eventual project death.
> But they have the right to license their thing however they want, so what right do any of us really have to complain.
Correct. And yet that doesn't seem to stop some people...
> I just find it frustrating to see people retreating from an Open Source position given my own deeply rooted ideological bias towards F/OSS.
I get that, and at some time in the past I probably agreed with you. At this point I'm too cynical to believe that Free Software can succeed solely on its merits. The economics just don't work out, especially when you're in a part of the industry with a lot of competition.
And regardless, the new licensing terms are (in practical terms) identical to Apache for the vast majority of people who already use or might use CockroachDB. All they're restricting is the ability to create a Cockroach DB hosting business, and if you really want to do that, my moral position is that you should be financially contributing back to the DB anyway; otherwise you're taking freeloading to an extreme degree there.
In general, that's of course obviously true. For software like this, that's geared toward use by businesses and SaaS applications, I agree with Cockroach Labs. Their hosted solution doesn't stand a chance if AWS decides to do a hosted version of CockroachDB, and they won't see a penny of that revenue.
I understand why this is the default assumption that people tend to make, but I'm not sure this analysis goes deep enough. I believe things are more nuanced than "you can't compete with Amazon". There are always a lot of different axes on which you can segment a market, and different attributes on which one can compete. And ironically, the fact that AWS (and other public cloud providers) exist simultaneously makes it easier to run your own cloud based service. And yes, it's possible to have something hosted on AWS while Amazon compete with you at the same time - see Netflix for the obvious example.
Note that I'm not saying it's easy to do any of this, and maybe a thorough enough analysis would reveal that, for CockroachDB it really is the case that "we can't compete in a market where AWS is playing". But I wouldn't necessarily take that as a given without having done a lot more research.
Actually, Scylla 3.0 is still RC [1] and as mentioned in the article will be released later this month.
And I don't think OLTP/OLAP is about LWTs. I think they are just talking about Scylla's ability to process normal updates in a timely manner while doing OLAP queries.
And you're right about ACID transactions. Multiple rows across two or more partitions can not be updated atomically, even with LWTs, but it is possible for a single partition.
OLTP traditionally refers to the type of updates you do during normal use of your application. Frequent, small and incremental updates vs large sweeping reads and aggregations (OLAP)
The T does stand for transactional but in this context it is not referring to transactions in the database sense
Anemic objects and whether they are harmful or harmless has been debated in software engineering for long.
I find over-relying on encapsulation more harmful than useful nowadays specially if you are going to write scalable software that are inherently distributed. For example, hiding accessing a database behind a simple getter function makes another programmer ignore performance implication and other issues that may arise.
Yes, but OTOH, it lessens the likelyhood of errors, and means you'll have to rewrite minimum amounts of code when you, say, switch from MySQL to Postgres.
Abstraction always lessens awareness of that which is abstracted. Decide where to draw the line for your app.
We have confirmed that Comodo submitted Requests for Express Abandonment for all three trademark registration applications in question. We’re happy to see this positive step towards resolution, and will continue to monitor the requests as they make their way through the system.
We’d like to thank our community for their support.
From what I understand, transaction A can still be replicating intents and transaction B, not knowing that coordinator for transaction A is still at work, start a recovery process. This makes transaction A abort which could be prevented by waiting for intents of A to be successfully replicated.