func NewHotspot(lowerBound int64, upperBound int64, hotsetFraction float64, hotOpnFraction float64) *Hotspot {
	if hotsetFraction < 0.0 || hotsetFraction > 1.0 {
		hotsetFraction = 0.0
	}
	if hotOpnFraction < 0.0 || hotOpnFraction > 1.0 {
		hotOpnFraction = 0.0
	}
	if lowerBound > upperBound {
		lowerBound, upperBound = upperBound, lowerBound
	}
	interval := upperBound - lowerBound + 1
	hotInterval := int64(float64(interval) * hotsetFraction)
	return &Hotspot{
		lowerBound:     lowerBound,
		upperBound:     upperBound,
		hotsetFraction: hotsetFraction,
		hotOpnFraction: hotOpnFraction,
		hotInterval:    hotInterval,
		coldInterval:   interval - hotInterval,
	}
}
NewHotspot creates a Hotspot generator.
lowerBound: the lower bound of the distribution.
upperBound: the upper bound of the distribution.
hotsetFraction: percentage of data itme.
hotOpnFraction: percentage of operations accessing the hot set.
package generator
import "math/rand"
type Hotspot struct {
	Number
	lowerBound     int64
	upperBound     int64
	hotInterval    int64
	coldInterval   int64
	hotsetFraction float64
	hotOpnFraction float64
}