HN user

needusername

553 karma
Posts0
Comments388
View on HN
No posts found.
MySQL at Uber 1 year ago

using the JDBC™ protocol

JDBC is not a protocol, JDBC is an API, hence the need for a different JDBC driver per RDBMS. I doubt the author is a developer, I see this misunderstanding often with architects who don’t code.

- Temp files.

O_TMPFILE should do this.

- Unit files.

O_TMPFILE together with renameat2 and RENAME_EXCHANGE should do this.

I don't think there 17.0.3 ever will be available from openjdk.java.net

https://adoptopenjdk.net/upstream.html

These are the official upstream builds by the updates project built by Red Hat. Not to be confused by Red Hat Java, not to be confused by the AdoptOpenJDK/Adoptium builds. These can‘t be hosted on openjdk.java.net because they host only builds done by Oracle, not to be confused by Oracle JDK.

Note that they are on JDK 14.0.2. An old, unsupported version of Java which doesn't get any security patches anymore. Being on a non-LTS version of Java forces them to upgrade to a new major version of Java every six months to get security patches, which they apparently don't do.

For example, in CPython multiple threads can append to a list without a lock or insert items into a dict without a lock, and the data structure will never become corrupted.

How is this achieved?

Though it is worth pointing out that Java has a well-defined memory model, and Python doesn't.

Wouldn't you have to at least issue an mfence when a thread enters / exists the GIL?

Currently Python only allows certain thread interleavings, because those are the points where the GIL is released.

How is this currently avoided? My understanding is that anything that accepts a callback / lambda is potentially subject to interleavings as the code can call a C extension which releases the GIL. Moving code to C extensions is often recommended when Python performance is brought up. Am I misunderstanding something?

It's also unclear how tractable it is to retain current garbage collection semantics without a GIL

Why is it important to retain current garbage collection semantics? Why does Python prescribe a certain garbage collection implementation and does not allow for others like Java?

Good. I don't think anybody should use them and I hope nobody actually uses them.

If over a decade of doing Java on Linux has taught me anything then it is to avoid using anything Java related from any Linux distribution and instead "install" (unzip or untar) what you need yourself.

I don't see why Fedora needs to build their own versions of JARs instead of using the ones the projects builds. The only answer I heard is "this is how we roll". It seems like they have this one process built for C system libraries and try to use it for everything whether it makes sense or not.

The only exception I can think of is if you're on RHEL and want to use the RHEL Java because of the support contract.

Hasn't Nashorn been superseded by GraalJS?

It depends, do you want support for your JVM? If so:

* Graal CE has no support

* Graal EE requires either running on Oracle Cloud or calling Oracle Sales for a custom quote. These are non-starters for many.

* JVMCI requires `-XX:+UnlockExperimentalVMOptions` which often voids support.

* I believe Mandrel is supported but requires RHEL

emulate most of Oracle database functionality

What is the basis for this statement?

* MATCH_RECOGNIZE isn't supported

* reference partitions aren't supported

* TIMESTAMP is incompatible and the default compile options are comically bad

These are the first three things that came to mind and none of them are supported so I stopped looking further.