Repository navigation
Conversation
There was a problem hiding this comment.
I would think that this would be better as boolean and not Boolean?
There was a problem hiding this comment.
I am trying to avoid auto boxing mishaps since these fields are populated using reflection. I've found less complication when using reflection to use objects vs. primitives. If you feel strongly about using a primitive I'll work on it.
|
@double16 In general this seems quite a desirable feature, however I have a few concerns or suggestions for improvement:
I am happy to discuss the above with you and work with you to help make this happen. The Dockerfiles are currently maintained here: https://github.com/evolvedbinary/docker-rocksjava. You will see some embryonic Alpine attempts there, although I could not get them to work. I have access to a PPC64le system at IBM if we want to test and produce builds for musl on ppc64le as well. Cheers |
|
@adamretter All good points, I'll work through these and see how far I get. Before digging into the code, a couple questions: IIRC, Docker requires 64-bit, how do you produce the 32-bit versions on Docker? QEMU has a PPC64 emulator, do you have experience on how well that emulates the PPC64le target? I'm thinking to do the initial work using QEMU and then if you'd like to test with real hardware later, that would speed up the development cycle. I wasn't too happy with the Any opinions on back-porting? My primary use case is running Kafka in containers and Alpine is MUCH smaller for JVM work loads. However, even recent versions of Kafka aren't using very recent RocksDB. |
Docker runs on a 64-bit host, but can happily run a 32-bit container. We also use the
I have no experience with QEMU PPC64 emulator. Don't worry about the PPC64le version. If you can get the x86 and x86_64 versions correct, I am happy to add the PPC64le stuff.
Hmm good point. I am not sure yet.
Nope. I think the best thing is to move forwards rather than back-port. Regards Kafka specifically, I understand that they are just one minor version behind. They have opened this issue with 5.8.0 #3072 but we are waiting to hear back from them still... |
There was a problem hiding this comment.
@adamretter I need to change this condition to something like /lib/libc.musl*.so*. Will that work for ppc64le?
There was a problem hiding this comment.
Hmmm I am a little worried about the fragility there also, what if musl is installed somewhere else? Is there a better way to detect it?
There was a problem hiding this comment.
I looked at a node.js library that detects libc variants and there are two checks before the filesystem check:
getconf GNU_LIBC_VERSION(I could not find a similar MUSL_LIBC_VERSION variable)ldd /bin/sh | grep 'musl'
I prefer the ldd check. The first one assumes if it's not glibc, assume musl.
|
@adamretter I have the alpine docker images building rocksdb. Should I update the '-v1' Dockerfiles, or create new '-v2' ? Concerning the Vagrant boxes, several of the Alpine boxes I've tried do not have rsync, so I'd need to create new base boxes. I'd rather not spend the time to do that unless it's needed. |
|
@double16 Feel free to replace the Alpine Dockers completely. I can delete the old "-v1" ones, so if you name them without a "-vn" prefix that should be fine. Regards Vagrant, I guess not to worry too much as we are moving to Docker AFAIK, so perhaps just remove the Vagrant stuff from your PR? I think the |
|
Is there anything holding this PR back that I could address? |
|
@double16 Sorry I dropped the ball on this one. Let me take a look in the next day or so and get back to you... |
|
Is there any place to upvote this? |
|
Hmm this does seem like a good thing. I just need to find some time to work on it... |
|
@denisa Do you realize that these Docker images are only for building RocksDB, not for running an app with RocksDB. |
|
umh… I currently need to take one of the openjdk/alpine image, install some libraries, then install my rocksdb-using application. I understand that once this has been merged/released, I will only need to take one of the openjdk/alpine image, then install my rocksdb-using application. |
There was a problem hiding this comment.
What would be the case if ldd was not available? It's not usually installed with musl, you have to manually symlink it. And what if /bin/sh does not exist or is a wrapper script?
|
@adamretter do you still think you are able to find some time to review it? |
|
@siying Sure, I will get back on this. |
|
@double16 Okay I just rebased this, and I will now work through some of the remaining issues |
facebook-github-bot
left a comment
There was a problem hiding this comment.
@siying is landing this pull request. If you are a Facebook employee, you can view this diff on Phabricator.
|
This pull request has been merged in 8ae149e. |
* upstream/master: (572 commits) Work around weird unused errors with Mingw (meta#6075) Support options.max_open_files = -1 with periodic_compaction_seconds (meta#6090) Fix HISTORY.md for 6.6.0 (meta#6096) Expose and elaborate FilterBuildingContext (meta#6088) Fix compilation under MSVC VS2015 (meta#6081) Add shared library for musl-libc (meta#3143) Refactor and clean up the code that reads a blob from a file (meta#6093) Allow fractional bits/key in BloomFilterPolicy (meta#6092) Refactor blob file creation logic (meta#6066) Use lowercase for shlwapi.lib rpcrt4.lib (meta#6076) Fix naming of library on PPC64LE (meta#6080) Small improvements to Docker build for RocksJava (meta#6079) Remove unused/undefined ImmutableCFOptions() (meta#6086) Update 3rd-party libraries used by RocksJava (meta#6084) Make default value of options.ttl to be 30 days when it is supported. (meta#6073) Ignore value of BackupableDBOptions::max_valid_backups_to_open when B… (meta#6072) Update HISTORY.md for forward compatibility (meta#6085) Support ttl in Universal Compaction (meta#6071) Fix the constness issues around autovector::iterator_impl's dereference operators (meta#6057) Support options.ttl with options.max_open_files = -1 (meta#6060) ...
Summary: Add the jni library for musl-libc, specifically for incorporating into Alpine based docker images. The classifier is `musl64`. I have signed the CLA electronically. Pull Request resolved: meta#3143 Differential Revision: D18719372 fbshipit-source-id: 6189d149310b6436d6def7d808566b0234b23313
Summary: Add the jni library for musl-libc, specifically for incorporating into Alpine based docker images. The classifier is `musl64`. I have signed the CLA electronically. Pull Request resolved: meta#3143 Differential Revision: D18719372 fbshipit-source-id: 6189d149310b6436d6def7d808566b0234b23313
Add the jni library for musl-libc, specifically for incorporating into Alpine based docker images. The classifier is
musl64.I have signed the CLA electronically.