News for hackers. Stuff that matters.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by kuzehanka on Sunday April 14, 2019 @07:58AM (#19658871)
After trying CosmosDB I put it down pretty quickly. I can't say I'd recommend it to anyone.

Shockingly poor perf. Is CosmosDB really that bad or did we have it misconfigured? We're not sure, the docs didn't help us understand.

Random failures when connecting. Random errors (or worse, no errors but unexpected results) when querying.

Largely undocumented.

Painful interop with non-azure proprietary offerings.

Almost zero developer community. Most of the coverage of CosmosDB isn't by developers, it's by various MS affiliated blogs such as this one, which are more advertisements than resources.

Unfortunately CosmosDB seems to fit the Azure MO of investing more into sales/marketing than into engineering/support. I don't know about the general atmosphere, but in the circles where I work, Azure and its various proprietary components are losing developer goodwill at a staggering pace.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by maltalex on Sunday April 14, 2019 @11:01AM (#19659782)
To the brave, I recommend trying to make a copy of a CosmosDb collection.

The only solution that doesn't require spinning up a VM, reading all the data and writing it back again is the Azure Data Factory [0]. Which according to Azure's own benchmarks [1] manages to copy only 2MBps between two CosmosDb instances each with 100,000 RUs ("Resource Units"). That's more than half a day for a small 100GB collection.

And in case you're wondering whether 100K RUs is a lot, consider the cost: 5840$/Month for single-region writes. 11680$/Month for multi-region writes [2].

Oh, and as a bonus - can you guess the official procedure for restoring a collection from a backup? [3]:

> If you have accidentally deleted or corrupted your data, you should contact Azure support within 8 hours so that the Azure Cosmos DB team can help you restore the data from the backups.

And yeah, it's 8 hours because they backup the database every 4 hours and keep the last two backup copies [3]

[0]: https://docs.microsoft.com/en-us/azure/data-factory/introduc...

[1]: https://docs.microsoft.com/en-us/azure/data-factory/copy-act...

[2]: https://azure.microsoft.com/en-us/pricing/details/cosmos-db/

[3]: https://docs.microsoft.com/en-us/azure/cosmos-db/online-back...

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by llcoolv on Sunday April 14, 2019 @02:04PM (#19660749)
I am sorry to have to argue, but the multi-region writes are calculated N + 1, where N is the number of regions. So it would actually set you back $17520 [0]. And yes, I know that even their own documentation and calculator conflict on this, but they do charge the higher number.

0. https://docs.microsoft.com/bg-bg/azure/cosmos-db/optimize-co...

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by rnehme on Sunday April 14, 2019 @10:10PM (#19662806)
Hi, I am from Azure Cosmos DB Engineering Team.

We are in the process of updating the Azure pricing calculator to provide various options (e.g., # of regions, single vs. multi-master, etc.). The updates to the calculator are coming shortly.

In the meantime, please feel free to ping us at [email protected], if you need any help with cost estimates or have any questions.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by maltalex on Sunday April 14, 2019 @02:30PM (#19660870)
Even better.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by manigandham on Sunday April 14, 2019 @07:10PM (#19662232)
Why is using a VM not allowed? They have the Bulk Executor for large scale update/ingest: https://docs.microsoft.com/en-us/azure/cosmos-db/bulk-execut...

You can also use the changefeed system which is stored as an event-hub stream and then save it to another collection using Azure Functions.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by foobarbazetc on Sunday April 14, 2019 @10:42AM (#19659665)
I can say this exact thing about most Azure services. Nothing really works as documented and everything is more expensive than it should be. I always feel like I’m missing something.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by dman on Sunday April 14, 2019 @05:40PM (#19661868)
The perfected enterprise sales force at Microsoft. They are good, really good. Here is a fun anecdote - There was a lawsuit where it was alleged that Microsoft business practices against Novell were anticompetetive. Microsoft was forced to sell Suse Linux as part of the judgement. For the couple of quarters where this was in play, Microsoft managed to sell more Linux than Novell.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by tgtweak on Sunday April 14, 2019 @10:49AM (#19659704)
It's hard to get behind cloud services that require you to send an email to support engineers to reboot your instance.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by rad_gruchalski on Sunday April 14, 2019 @05:02PM (#19661701)
Wow, is that really the case? The last “cloud provider” I remember this to be the case was SoftLayer. Is Azure really that bad?
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by tgtweak on Sunday April 14, 2019 @05:40PM (#19661866)
With AKS (at least in early days, not beta or anything mind you) the kubernetes coordinator node was managed by Microsoft, after a some arbitrary amount of days/weeks it would become unresponsive and the recommended action was to open a ticket and wait for them it restart it.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by verst on Monday April 15, 2019 @06:56AM (#19664449)
Azure Kubernetes Service provides a free managed Kubernetes control plane. Certainly possibly that prior to general availability a support ticket had to be opened to restart this. The control plane's underlying VMs aren't exposed on purpose. That's similar to what other providers do with managed Kubernetes services.

Hopefully the unresponsiveness issue was addressed quickly after it was reported by you.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by chrischen on Sunday April 14, 2019 @05:35PM (#19661844)
Believe it or not Azure is the #2 cloud provider (by revenue?).
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by stillbourne on Monday April 15, 2019 @11:04PM (#19670807)
Wha? I've built several (Currently about 20) enterprise application integrations across our infrastructure using Logic Apps, Function Apps, Service Bus, Cosmos etc. The cost of running these is less then our budget for office supplies. I'm literally paying pennies.

Proof: https://imgur.com/a/asem3d9

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by ecmascript on Sunday April 14, 2019 @06:45PM (#19662140)
Cmon this is an extremely exaggerated opinion. I have used Azure and AWS and I find Azure to be much easier and user friendly.

Maybe at very large scale AWS shines through, but I would choose Azure over AWS any day.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by splinter89 on Sunday April 14, 2019 @09:37PM (#19662714)
you're literally the mythical unicorn, I don't know a single person that has appreciated using Azure.

I'd personally trade my first born with no second thoughts to use AWS instead.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by jaabe on Monday April 15, 2019 @02:43AM (#19663559)
I work in the European public sector, I can name you a few reasons to pick Azure over AWS. None of them are technical though, so you certainly have a point.

Microsoft is just better at selling the whole package to enterprise where your primary function isn’t tech.

They were first to incorporate EU legislation, and are frankly still the only of the three big cloud suppliers that can show us exactly where our data has been or passed through at any time.

Their support is also excellent. We pay Microsoft a lot of money, much more than the cost of Azure because of licensing, but with it comes support. If something breaks down, I can call Seattle directly after which we will receive hourly updates by phone until the matter is resolved.

With google you get to fill a form or chat with a bot. AWS is better, but again mostly to their big customers, and since we aren’t buying office 365 or licenses from them, we’re just not big enough to qualify for the support we need.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by stillbourne on Monday April 15, 2019 @11:05PM (#19670815)
Surely you exaggerate. Azure is great I think AWS is garbage in comparison.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by tracker1 on Thursday April 18, 2019 @01:04AM (#19688855)
I've found that the "Azure Storage" services (blob, queues, table) are pretty decent (for what they are). If you don't have huge throughput or size needs that is. Different beasts, but definitely useful imho.

If I need really high load/throughput, I'd probably reach for Cassandra on DO for best bang for the buck. YMMV though, and not too big on Cassandra unless you really need it.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by minedwiz on Sunday April 14, 2019 @12:00PM (#19660138)
If it is documented at all. Even their .NET SDK blows
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by kirillg_hn on Monday April 15, 2019 @03:09AM (#19663653)
Hi, I am from Cosmos DB engineering team, I'm sorry to hear you ran into issues with our .NET SDK. We're constantly updating our SDKs, and welcome feedback on GitHub, please post the issues there and we will get back to you shortly. For the current generally available .NET SDK V2, the GitHub page is at [1]. The upcoming V3 version of Cosmos DB .NET SDK is open sourced at [2], please give it a try when you have a chance / tell us what you think. [1] https://github.com/Azure/azure-cosmos-dotnet-v2 [2] https://github.com/Azure/azure-cosmos-dotnet-v3

Thanks for the feedback.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by victor106 on Sunday April 14, 2019 @12:39PM (#19660344)
I can second this. We evaluated AWS, Azure and GCP for a very large healthcare company and found that Azure was the worst cloud services provider for anything. This was in spite a big push by leadership to encourage Azure, developers just hated it

Between AWS and GCP even though AWS come out on top, GCP wins in quite a few services.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by dekayed on Sunday April 14, 2019 @02:51PM (#19660974)
Could you go more into this? How did you go about the evaluation and what metrics were you using? How did you capture the 'developers just hated it' in a way that leadership understood?

I'm not disputing the outcome, just feel like it would be useful for others in a similar situation.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by pojzon on Monday April 15, 2019 @01:13AM (#19663238)
Gonna second this. We are also in a situation where a few of the higher management were clearly bribed to push our company into Azure direction but the amount of problems we see may destroy our company..
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by libria on Sunday April 14, 2019 @02:33PM (#19660882)
What tips in AWS's favor, roughly speaking? My general feel is GCP is slightly cheaper but is missing some offerings, while AWS is a mature 1-stop shop that's well documented.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by llcoolv on Sunday April 14, 2019 @02:09PM (#19660780)
Well Azure comes with the biggest compliance/certification package - of course upper management will love it.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by usmannk on Sunday April 14, 2019 @02:48PM (#19660964)
Good luck with GCP support...
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by llcoolv on Sunday April 14, 2019 @01:58PM (#19660720)
Unfortunately, I could only second this opinion and add a few points of mine.

1. Many unexpected behaviours which you would not encounter in any other software - for example when you're blocked by its firewall, it would let you connect on all 7 OSI layers, then kick you out with "Command failed with error 13: 'Not Authenticated' on server xyz:10255'". By the way even Azure Portal itself doesn't know how to handle this behaviour correctly and when not included in the firewall whitelist just blinks like crazy.

2. Many seemingly basic features commonly found on other database systems are for some reason missing here - it doesn't support users as such, just issuing resource tokens[1] (which you must implement yourself). Thus, most CDB users just go straight with the master key even on production.

3. It is not fully (nor at least nearly fully) compatible with any of the advertised APIs - SQL doesn't support joins, MongoDB misses quite a few features and adds a requirement for the shardkey to be part of the query. Which is not supported by Spring Data, so you must do low-level queries for everything but select (think updates field by field with null checks).

4. The tooling is horrible - as it is not compatible with neither mongodb nor traditional sql, you would need to include the "CosmosDB Emulator" in your build in order to have at least some predictability. The problem? It only runs on docker4win and a Windows VM would need to be running by all developers on the team and workers of the CI/CD. As of April 2019

5. It is CRAZY expensive and the pricing is not really transparent - in our case we had 20 MB of data, 4 1000RUs collections and multi-master write in Western and Northern Europe. The monthly bill? 300 EUR even though Azure Portal was displaying 1/6 of that cost - apparently for multi-master you multiply by the number of regions + 1 (2+1 = 3) and for geo-redundancy only by the number of regions (2), thus the 6x higher cost. The result of that was that we were paying several times more to manage 20MB of data than for all the remaining data - hundreds of GB.

Maybe if you really, really need the planetary scale, the master-master replication and the <10ms SLAs it would make sense and the hassle and cost would be worth it (though I seriously doubt it), but in any other case it is a massive mistake to go this route.

1. https://docs.microsoft.com/en-us/azure/cosmos-db/secure-acce...

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by sthota on Monday April 15, 2019 @01:34AM (#19663301)
Hi, I am from Cosmos DB engineering team.

1. This occurs when, after the connection has been established, CRUD commands are sent before the authentication command. Note that some MongoDB drivers have a bug where they are not authenticating the connection in rare cases and sending CRUD commands. Could you please check and upgrade to the latest driver of Mongoose/NodeJS-Native/NodeJS-Core driver, which has a rewrite of their client-side auth stack and fixes a lot of bugs. One of such issues is described in https://jira.mongodb.org/browse/NODE-1798 which was fixed by https://github.com/mongodb-js/mongodb-core/commit/7ffb4bbe05...

2. Resource tokens provide fine grained access control but it does require you to implement a custom token management service. We are working on support for Azure AD integration and support for custom roles and policies. The feature is code complete and should be made available soon.

3. Cosmos DB’s SQL query language is supported on a non-relational data model - which maps cleanly to document/column-family/graph. It does not support joins since (unlike a relational model), a single Cosmos container can contain items belonging to any arbitrary schema.

4. Re. API for MongoDB requiring a shard key, we are going to relax this restriction before 7/30/2019. As you noted, we do support an emulator for Windows. We are working on a Linux emulator and should be released later this year.

5. The portal was displaying incorrect cost estimate in certain cases. We addressed it and the fix is being rolled out.

Thank you for the feedback!

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by pm90 on Sunday April 14, 2019 @02:02PM (#19660738)
> It is CRAZY expensive and the pricing is not really transparent - in our case we had 20 MB of data, 4 1000RUs collections and multi-master write in Western and Northern Europe. The monthly bill? 300 EUR even though Azure Portal was displaying 1/6 of that cost - apparently for multi-master you multiply by the number of regions + 1 (2+1 = 3) and for geo-redundancy only by the number of regions (2), thus the 6x higher cost. The result of that was that we were paying several times more to manage 20MB of data than for all the remaining data - hundreds of GB.

I get your point and they should definitely fix either the cost calculation, or paste a disclaimer for multi-region pricing. But I want to (sincerely) ask how you could assume that multi region would _not_ cost more than single region.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by llcoolv on Sunday April 14, 2019 @02:08PM (#19660769)
You are perfectly correct, but I assumed that for 2 regions it would cost twice the amount, not 6 times.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by rnehme on Tuesday April 16, 2019 @02:27AM (#19671555)
Hi, I am from Cosmos DB engineering team.

Thank you for the feedback!

We have published a number of documents on pricing transparency and cost optimization of your Cosmos DB cost that we want to make sure everyone is aware of:

[1] Pricing model - https://docs.microsoft.com/en-us/azure/cosmos-db/how-pricing...

[2] Optimize cost for your dev/test workloads - https://docs.microsoft.com/en-us/azure/cosmos-db/optimize-de...

[3] Total Cost of Ownership (TCO) - https://docs.microsoft.com/en-us/azure/cosmos-db/total-cost-...

[4] Understand your bill - https://docs.microsoft.com/en-us/azure/cosmos-db/understand-...

[5] Optimize provisioned throughput cost - https://docs.microsoft.com/en-us/azure/cosmos-db/optimize-co...

[6] Optimize query cost - https://docs.microsoft.com/en-us/azure/cosmos-db/optimize-co...

[7] Optimize storage cost - https://docs.microsoft.com/en-us/azure/cosmos-db/optimize-co...

[8] Optimize reads and writes cost - https://docs.microsoft.com/en-us/azure/cosmos-db/optimize-co...

[9] Optimize multi-regions cost - https://docs.microsoft.com/en-us/azure/cosmos-db/optimize-co...

[10] Optimize with reserved capacity - https://docs.microsoft.com/en-us/azure/cosmos-db/cosmos-db-r...

If you have any questions regarding pricing, please feel free to reach out to us directly at [email protected] (direct line to the product team).

We do really appreciate the feedback.

Thank you.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by manigandham on Sunday April 14, 2019 @06:26PM (#19662062)
CosmosDB is a JSON-based document store and it uses partitions to scale out your data. No document-store supports joins. The SQL support is only an interface to your data, it doesn't add relational functionality.

The partitionkey is required so that CosmosDB knows which partition to query. You can actually enable broadcast queries which will ask every partition if you don't want to include the partition key, but this will be slower and require more RUs.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by llcoolv on Monday April 15, 2019 @03:26AM (#19663716)
In reality it is a document store indeed, but it is advertised by MS themselves as "globally-distributed, multi-model database service". So...
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by m_fayer on Sunday April 14, 2019 @09:49AM (#19659390)
Same experience here. Also found it to be hideously expensive while setting all dials to minimum for experimentation and exploration. There may be a way to configure it for an affordable trial run, but it didn't motivate me to stay and figure it out.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by rnehme on Sunday April 14, 2019 @10:22PM (#19662826)
Hi, I am from Azure Cosmos DB Engineering Team.

For development (before going into production) with Azure Cosmos DB, we suggest a number of options (also documented here: https://docs.microsoft.com/en-us/azure/cosmos-db/optimize-de...):

[1] Cosmos DB emulator (Cosmos DB Local version) - https://docs.microsoft.com/en-us/azure/cosmos-db/local-emula.... The Azure Cosmos DB Emulator provides a local environment that emulates the Azure Cosmos DB service for development purposes. Using the Azure Cosmos DB Emulator, you can develop and test your application locally, without creating an Azure subscription or incurring any costs. When you're satisfied with how your application is working in the Azure Cosmos DB Emulator, you can switch to using an Azure Cosmos DB account in the cloud. Support for Cosmos DB emulator on Linux is coming.

[2] We provide Try Cosmos DB for free experience - https://azure.microsoft.com/try/cosmosdb/. There is Try Azure Cosmos DB for free experience which gives you a time-limited full-service experience with Azure Cosmos DB. It is designed for trying out Cosmos DB, doing a tutorial, a demo, doing a quick start, a lab without requiring an Azure account or a credit card.

[3] We provide a free tier (Cosmos DB is a part of free account) - https://azure.microsoft.com/free. In Azure, we support a free tier with 12 month access to all popular services in Azure. As a part of free tier specifically for Cosmos DB you get 5GB in storage and 400RUs.

Thanks so much!

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by swebs on Sunday April 14, 2019 @05:26PM (#19661799)
>Shockingly poor perf

>Random failures

>Largely undocumented

>Painful interop with non-azure proprietary offerings

>Almost zero developer community

>Most of the coverage ... isn't by developers, it's by various MS affiliated blogs such as this one, which are more advertisements than resources.

Welcome to Azure!

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by ResidentSleeper on Sunday April 14, 2019 @11:37AM (#19659994)
That's sad to hear. I've had a lot of fun playing around with Azure's table/blob storage services. Never deployed a large production app with them, but the performance seemed decent (eg. when using table storage as a json store). I did look at Cosmos DB but decided not to give it a try when I saw the pricing.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by ui-explorer12 on Sunday April 14, 2019 @01:32PM (#19660579)
I like their table/blob and queue storage, but maybe it's because it's relatively mature and the domain is well understood. Most of the comparable services from other providers are generic analogs.

I'm not sure I feel much different across Azure Cosmos and Aws Dynamo. It seems super-easy to get locked into a relatively expensive proprietary offering in each case.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by equasar on Sunday April 14, 2019 @01:32PM (#19660581)
I second this, Azure Table Storage is an amazing product, but would be a more powerful one if they enable indexing on all columns and also any automatic backup options, which are only available on CosmosDB Table, which makes me thing that Azure wants to push me to use CosmosDB if I want those features, since they don't have a roadmap for this for the Azure Table Storage.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by manigandham on Sunday April 14, 2019 @06:22PM (#19662044)
Azure Table storage is a key/value store similar to Hbase, Cassandra, GCP Bigtable, AWS DynamoDB and others. It's a very stable and scalable design which is why everyone has some version of it.

There's no way to add indexes to this data model, it's all done by just writing your data in another table using the key you want and the value pointing to the original table's row. Perhaps Azure could offer secondary indexes like AWS DynamoDB does but it's probably too complex of a feature to add at this point, which is why it took DynamoDB several years to get to working GSI.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by jbreiding on Sunday April 14, 2019 @09:38PM (#19662717)
Having the azure table storage be indexed into azure search with an azure function as the indexer delivers a pretty powerful alternative that isn't exactly batteries included, but close.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by maltalex on Sunday April 14, 2019 @05:00PM (#19661686)
These are two very different products at two very different price points.

10TB of Table storage is 655$ 10TB of CosmosDb is 2500$

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by rnehme on Sunday April 14, 2019 @09:59PM (#19662770)
Hi, I am from Azure Cosmos DB Engineering Team.

Please feel free to send us the details of your workload that suffered from poor performance to [email protected] (it is a direct way to reach the engineering team and it does not cost anything), and we can help determine why and provide with the recommendations.

For best practices and performance optimizations, the following links will help:

https://docs.microsoft.com/en-us/azure/cosmos-db/sql-api-que...

https://docs.microsoft.com/en-us/azure/cosmos-db/performance...

https://docs.microsoft.com/en-us/azure/cosmos-db/performance...

https://docs.microsoft.com/en-us/azure/cosmos-db/performance...

Also, the following conceptual docs will help:

https://docs.microsoft.com/en-us/azure/cosmos-db/partitionin...

https://docs.microsoft.com/en-us/azure/cosmos-db/partition-d...

https://docs.microsoft.com/en-us/azure/cosmos-db/request-uni...

We are doing a full refresh of our docs (rewriting a lot of the older content and adding new technical content). We welcome feedback on how we can make the docs better and invite everyone to contribute via public PR/Github. If there are any topics that are missing in our docs or are not easily discoverable, please let us know. We will make sure to address it.

We are committed to building a great community. As a relatively young database, we have ton of work ahead, but we are super committed to making sure we make developers successful.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by m0zg on Sunday April 14, 2019 @02:45PM (#19660939)
I've used it briefly internally at Microsoft 2009, I had almost the same experience. Super slow, takes a while to even start the query, non-standard query language. For internal users there were even more hurdles: you had to get approval and quota before you were able to use it at all, and the default answer to both requests was "no", you really had to justify it. As an aside, at MS "no" was the answer to any request you make of Legal. Lots of bicycles were reinvented from scratch, with lots bugs, just because Legal would not approve the use of BSD or MIT licensed code.

Imagine my shock when I started at Google a year later and discovered Dremel (now BigQuery) where I could just run a query and get the results back in seconds over tens of terabytes of data, with no quotas or approvals.

I think having a system like Dremel is a huge competitive advantage, because you don't have to guess blindly about things, you can just query them and get results immediately. If Cosmos is still the best MS has internally, they need to roll their own Dremel asap. Lots of great people from SQL Server team work at Google now, but MS still has plenty of people who could do a competent petascale columnar DB with one hand tied behind their back.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by dtrailin on Sunday April 14, 2019 @05:38PM (#19661856)
That's impressive, considering that this CosmosDB development only started in 2014! You are talking about Cosmos which is still around but is now used as the basis of Azure Data lake [0]. However, I think the closest MS has to Dremel is actually Kusto [1] which has a custom query language but works pretty well.

[0] https://azure.microsoft.com/en-ca/solutions/data-lake/

[1] https://docs.microsoft.com/en-us/azure/kusto/query/

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by m0zg on Sunday April 14, 2019 @06:25PM (#19662059)
You're probably right. However, having worked at MS for nearly a decade in the past, I'd be stunned if Cosmos did not serve, at least in part, as the foundation, and CosmosDB did not inherit a good chunk of the team.

Dremel now uses standard SQL and unlike Kusto it supports multiway joins and a bunch of other things expected of a more "general purpose" analytical DB.

Ultimately MS efforts will be stymied by the fact that their underlying storage story is nowhere near as good as Google's Colossus.

I won't disclose the details, but that's another thing that blew my mind: I could do linear reads (which is what columnar DBs do nearly all of the time) faster than I could process the data, from hundreds, or even thousands of workers at the same time.

The IO throughput there is truly immense, which is especially impressive given that all of the storage is remote.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by CurtHagenlocher on Sunday April 14, 2019 @07:38PM (#19662329)
Cosmos and CosmosDB have next-to-nothing in common and were not built by the same people.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by manigandham on Sunday April 14, 2019 @08:46PM (#19662550)
Why would you be stunned? They are completely separate systems.

It's like saying BigQuery and BigTable share something because they both have "Big" in their name.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by CurtHagenlocher on Sunday April 14, 2019 @04:02PM (#19661364)
It sounds like you're describing the internal big data platform "Cosmos", something which has been made publicly-available as "Azure Data Lake Analytics" and which has no relationship to "CosmosDB" other than a similar name.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by metildaa on Sunday April 14, 2019 @04:39PM (#19661565)
Sounds like a branding mishap, Microsoft created the same type of hard to understand mess with the Microsoft Dynamics branding.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by int_19h on Sunday April 14, 2019 @08:05PM (#19662423)
Like he said, the public product is called Azure Data Lake, and internal product names aren't brands (that's kind of the whole point of them).
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by curiousDog on Sunday April 14, 2019 @08:10PM (#19662438)
You're conflating CosmosDB and Cosmos (which has been publicly released as Azure Data lake Analytics and botched imo).
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by tasubotadas on Sunday April 14, 2019 @11:45AM (#19660048)
You also forgot to mention that it is crazy expensive if you have lots of collections
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by rnehme on Sunday April 14, 2019 @10:30PM (#19662845)
Hi, I am from Azure Cosmos DB Engineering Team.

@llcoolv has responded and the response is correct.

For scenarios where you create a lot of collections/tables, we recommend to provision throughput on a database and share the provisioned throughput among all the containers – to save on costs. You can change the throughput at database exactly like how you will change the throughput at container level. It is the same API, it is supported via CLI, SDK, Rest API and Portal as well.

The entry point for database level throughout is 400RUs $24 per month and you can add any number of collections/tables that can share this throughput. You can scale up and down in the increments of 100RUs (or $6/month).

Please see the following links for details:

[1] https://docs.microsoft.com/en-us/azure/cosmos-db/set-through...

[2] https://docs.microsoft.com/en-us/azure/cosmos-db/how-to-prov...

[3] https://docs.microsoft.com/en-us/azure/cosmos-db/how-to-prov...

Please see the sample here for moving data:

[4] https://github.com/Azure/azure-documentdb-dotnet/tree/master...

Thanks!

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by tasubotadas on Monday April 15, 2019 @01:24PM (#19667000)
Hello,

I am aware that one can provision per database, but as another poster mentioned, you can't change that once a database is created, and also you need to specify something that's called partition keys and that can't be done using MongoDB driver. If I recall correctly, you don't even have examples available for that in CosmosDB Python API.

I mean yeah - it's possible. But it is also a pain in the ass.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by rnehme on Tuesday April 16, 2019 @02:22AM (#19671536)
Hi, I am from Cosmos DB engineering team.

Yes, for shared throughput database, you will need to create a new database.

- You can create MongoDB API collections with shard keys defined. It is fully supported by MongoDB driver

- Support MongoDB collections without shard key specified is coming in May

Thank you for the feedback on the docs and the missing code samples. We will add those in the docs.

Thanks!

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by tasubotadas on Tuesday April 16, 2019 @04:18AM (#19671992)
Thanks. I wasn't aware that a shard key is mapped to a partition key.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by unoti on Sunday April 14, 2019 @02:00PM (#19660728)
I usually put multiple document types into a single collection and have a “type” field to get around this. The fields are indexed so this is efficient. To decide when to use a different collection I look at the scalability and other settings at the collection level, and group things that have similar needs together.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by tracker1 on Thursday April 18, 2019 @01:13AM (#19688894)
If you only have a few "type" options, that may be a poorly performing index unless it's used as a secondary to a query that narrows results more.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by llcoolv on Sunday April 14, 2019 @02:19PM (#19660827)
It actually supports throughput provisioning on database-level (or container-level as they sometimes call it). The only catch is that you'll have to recreate the db (on creation is the only time when you can enable it) and data migration is not exactly quick.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by mcv on Monday April 15, 2019 @07:53AM (#19664661)
That's good to know. My team is currently using Neo4j, but may be forced to switch to either Neptune or Cosmos. I figured those were probably pretty similar, but this sounds like Cosmos might be a really bad idea.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by onedataguy on Monday April 15, 2019 @02:07PM (#19667380)
I am a Cosmos DB graph engineer and would encourage you to take the service for a spin and build your opinion. This thread unfortunately has more emotions than truth to it. We build the service with best intentions in mind.

Feel free to reach out to us at [email protected] any time with any questions.

Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by llcoolv on Wednesday April 17, 2019 @11:58AM (#19683706)
Could you be a bit more specific on the what exactly is untrue?
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by enitihas on Sunday April 14, 2019 @01:05PM (#19660445)
That sounds really bad. I wonder how did Azure gain marketshare with a core offering (database) being so broken.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by llcoolv on Sunday April 14, 2019 @02:20PM (#19660831)
The core database is SQL Server and they also have PostgreSQL. This is what most people are using.
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by enitihas on Sunday April 14, 2019 @03:19PM (#19661148)
I should have been more precise. Cosmo DB is their core distributed database offering. Neither of SQL server of PostgreSQL is a distributed database. Both require applications to deal with the presence of multiple database nodes (sharding).
Re:Azure Cosmos DB: Microsoft's Cloud-Born Globally Distribu... by suff on Sunday April 14, 2019 @09:31AM (#19659305)
Putting it down quickly was your finely tuned technical instincts saving you from disaster.