Hi Dan,
I'm seeing in our internal integration tests that we have some
configuration happening which (at least, intends to) configure the
native maps for the minicluster.
If you're not familiar, the MiniAccumuloConfig and MiniAccumuloCluster
classes are thin wrappers around MiniAccumuloConfigImpl and
MiniAccumuloClusterImpl. There is a setNativeLibPaths method on
MiniAccumuloConfigImpl which you can use to provide the path to the
native library shared object (.so). You will probably have to switch
from MiniAccumuloConfig/MiniAccumuloCluster to
MiniAccumuloConfigImpl/MiniAccumuloClusterImpl to use the "hidden" methods.
You could also look at MiniClusterHarness.java in >=1.7 if you want a
concrete example of how we initialize things for our tests.
- Josh
Dan Blum wrote:
In order to test to make sure we don't have more code that needs a
workaround for https://issues.apache.org/jira/browse/ACCUMULO-4148 I am
trying again to enable the native maps for Mini, which we use for testing.
I set tserver.memory.maps.native.enabled to true in the site XML, and this
is getting picked up since I see this in the Mini logs:
[server.Accumulo] INFO : tserver.memory.maps.native.enabled = true
However, NativeMap should log something when it tries to load the library,
whether it succeeds or fails, but it logs nothing. The obvious conclusion is
that something about how MiniAccumuloCluster starts means that this setting
is ignored or overridden, but I am not finding it. (I see the mergeProp call
in MiniAccumuloConfigImpl.initialize which will set TSERV_NATIVEMAP_ENABLED
to false, but that should only set it if it's not already in the properties,
which it should be, and as far as I can tell the log message above is issued
after this.)