8 ms·
El Carro: Run Oracle Databases on Kubernetes
- dijit 5y agoNote: i never really considered putting oracle in kubernetes to be a technical problem; since you can pass a “raw” block device from a distributed block storage. I consider it to be a licensing nightmare as the normal oracle license means you’ll need to license every single vCPU on the cluster. The express edition used here has some relatively anaemic usage limits which you could brush up against very quickly: “Oracle Database 18c Express Edition automatically constrains itself to the following resource restrictions; 2 CPU threads; 2 GB of RAM;and 12 GB of user data.” Still, it’s cool, but I would caution anyone against introducing an oracle dependency.
- gravypod 5y agoI've never used Oracle and, given it's reputation, never will. Is there anything that it does better than other databases?
- dijit 5y agoQuite a number of things but I’m scared to list them for fear of someone here thinking it might be a good idea to play with it. Things that oracle does right: high availability, consistency of data (which is harder than you think, and the tools we use tend to use are genuinely crap at this especially things like MySQL and MongoDB which are insanely popular), performance of OTLP workloads, and support* Your mileage may vary on that last point.
- Alupis 5y agoA more appropriate comparison against Oracle database would be MS SQL Server, or even Postgres, no? MySQL/MariaDB is a different product class with different priorities, and MongoDB is a "NoSQL" product.
- prpl 5y agoMysql, Postgres and Oracle are closer than ever in functionality, but I don’t think postgres/mysql alone can compare to “Oracle”, but if you compare postgres+greenplum/citus/XL or mysql+Vittess to Oracle+RAC that’s pretty close, but you’ll probably need to choose from a few extras to get all the way there. The key difference is Oracle is doing it all in one monolithic stack.
- Turbots 5y ago+1 for Postgres + Greenplum, fantastic, OPEN SOURCE (!), Database + Data Warehouse combination
- corty 5y agoOracle isn't really monolithic though. If you dig into it, it is all a really ancient aggregation of various tools and components from different eras. All of it has some Oracle branding on it, but usage-wise and functionality-wise it is inconsistent as hell, overlapping, downright weird and sometimes even dangerous to the non-wizard. Imagine the ancient font-installation dialogue in windows, times a thousand.
- dijit 5y agoMySQL directly competes. But Postgres and MSSQL are the true equivalents, you’re right. Correctness is hard was my main comment. There’s a whole class of other database types, but oracle can do NOSQL document storage just fine. Postgres and MSSQL can too, especially the former, but there are some weird quirks, like having documents larger than 16KiB means they’re stored off-row in a compressed TOAST table. Which hurts performance a lot.
- jandrewrogers 5y agoFor most (but not all) purposes, PostgreSQL is approximately as good, the devil is in the details of your specific application. Oracle is a competent OLTP system but it makes a different set of tradeoffs than PostgreSQL. For geospatial performance, as an example, neither platform clearly wins -- it goes back and forth depending on the details of what you are doing. The tl;dr: start with PostgreSQL and evaluate from there.
- killingtime74 5y agoSuing it's users
- jandrewrogers 5y agoI'm curious about this for tangential reasons. Does it allow you to pass through actual raw storage and network devices to the container?
- qeternity 5y agoKubernetes has a large ecosystem of network storage drivers which provide replication for non-HA applications. That said - it is entirely possible to run local storage for applications that provide their own replication. We run an LVM local storage provisioner for our in-cluster Postgres (orchestrated by Patroni). This gives us all sorts of snapshotting and resizing that you would find in network storage while having the performance of locally attached NVMEs
- spullara 5y agoIf, like me, you at some point need to support Oracle coming from Postgres there are a few annoyances you should be aware of: - No boolean type. Different folks will choose T/F chars, Y/N chars or 0/1 integers. - Strings are not nullable. An empty string and a null string are the same thing. - Date also has time. By default, you end up with some very annoying bugs. Expect to actually change the way some of your columns work.
- zepolen 5y agoThis is legit the biggest wtf I've read today, this is an over 20 year old enterprise db...
- hyperman1 5y agoWhat's really weird is the Stockholm syndrome of the Oracle users: They are proud of these limitations. I've heard all of these: * Boolean: You don't really need it, just use 0/1 or Y/N (or J/N or O/N or whatever NLS equivalent of Y/N you want). You might have to implement a few different mappers for the same data type, so what? * Strings: Semantically, a null string and an empty string are the same. You should be grateful the database works this way. All other DBs are wrong (you hear this a lot in Oracle land). * Dates: Oh, just ignore the time if you don't want it. What do you mean, time zones? Add the correct offset in your software, you lazy XXX. BTW, we migrated to a server with another time zone, hope this doesn't impact you? Now there are things that oracle is good at, mainly being trustworthy and scalable with your data, especially in clustered environments. But postgress is slowly but surely eating Oracle's niche here, and mysql has demonstrated customers will tolerate anything for lower costs. So their main value proposition today is that they are Enterprise Class, and all the big boys run Oracle so either join the club or get laughed at by the big boys.
- Turbots 5y agoThe Timezone one has affected me once. incredibly annoying and crazy that we have to take care of this in the application layer...
- 5y ago
- qeternity 5y agoWould love to see Google throw this sort of effort at something other than Oracle. The Zalando crew have done an amazing job with Patroni and their Postgres operator. But having Google’s resources could really elevate in-cluster databases to the mainstream.
- deleted 5y ago[deleted]
- salmo 5y agoOh my goodness, this is an awful idea. Oracle just runs hosted Exadata for OCI last I checked. RAC requires shared block storage and L2 private network. Cloud SDNs and storage require gross hacks with horrible performance consequences. Even “modern” virtualization is painful, but can work. Oracle isn’t going to fix all the bare-metal spaghetti assumptions in their clustered DB stack, and has been pretty clear about that. This could be useful for throwaway dev/test environments. Or maybe for apps that aren’t performance intensive or critical that are in “maintenance mode” and folks want to lift-and-shift. But they’ll probably spend more time on that than fixing/replacing/retiring the app. And all will require smaller data sets than what I see with big company legacy systems. And typically those systems are using Oracle to access data populated by another system, which makes me die a little inside. Pretty clearly a play to get big companies into GCP contracts, more than anything real. It’s to sell to execs who want to do the cool thing without paying to fix the old thing. ahem Thomas Kurian cough.
- foobarbazetc 5y agoThis, but for Postgres…
- kelseyhightower 5y agoStay tuned. A lot of the tech behind El Carro can be extracted into a generic controller and serve as the foundation for other databases including Postgres.