We are seeing an issue with the memory manager where an
UnsupportedOperationException is thrown on trying to set usageThreshold on
the memory pool.
at
sun.management.MemoryPoolImpl.setUsageThreshold(MemoryPoolImpl.java:114)
at
org.apache.pig.impl.util.SpillableMemoryManager.<init>(SpillableMemoryManager.java:130)
at
org.apache.pig.impl.util.SpillableMemoryManager.getInstance(SpillableMemoryManager.java:135)
at org.apache.pig.data.BagFactory.<init>(BagFactory.java:123)
at org.apache.pig.data.DefaultBagFactory.<init>(DefaultBagFactory.java:69)
at org.apache.pig.data.BagFactory.getInstance(BagFactory.java:81)
at
search.monitoring.dashboard.VariableLengthToBag.<clinit>(VariableLengthToBag.java:27)
Should these calls in SpillableMemoryManager check if these calls are
supported ?
biggestHeap.*setCollectionUsageThreshold*((long)(biggestSize *
collectionMemoryThresholdFraction));
// we set a higher threshold for usage threshold exceeded
notification
// since this is more likely to be effective sooner and we do not
// want to be spilling too soon
biggestHeap.*setUsageThreshold*((long)(biggestSize *
memoryThresholdFraction));