func (m *linkedMap) put(key string, value *stickyStoreEntry) {
	if oldE, ok := m.m[key]; ok {
		m.l.Remove(oldE)
	}
	e := m.l.PushBack(&linkedMapKVPair{key: key, value: value})
	m.m[key] = e
}
put adds entry (key, value) to the map. Existing key will be overridden.
package grpc
import (
	"container/list"
)
type linkedMapKVPair struct {
	key   string
	value *stickyStoreEntry
}
type linkedMap struct {
	m map[string]*list.Element
	l *list.List  
}
func newLinkedMap() *linkedMap {
	return &linkedMap{
		m: make(map[string]*list.Element),
		l: list.New(),
	}
}