func (n *node) IsHidden() bool {
	_, name := path.Split(n.Path)
	return name[0] == '_'
}
IsHidden function checks if the node is a hidden node. A hidden node
will begin with '_'
A hidden node will not be shown via get command under a directory
For example if we have /foo/_hidden and /foo/notHidden, get "/foo"
will only return /foo/notHidden
package store
import (
	"path"
	"sort"
	"time"
	etcdErr "github.com/coreos/etcd/error"
	"github.com/jonboulle/clockwork"
)
const (
	CompareMatch = iota
	CompareIndexNotMatch
	CompareValueNotMatch
	CompareNotMatch
)
var Permanent time.Time
type node struct {
	Path string
	CreatedIndex  uint64
	ModifiedIndex uint64
	Parent *node `json:"-"`  
	ExpireTime time.Time
	Value      string            
	Children   map[string]*node  
	store *store
}
func newKV(store *store, nodePath string, value string, createdIndex uint64, parent *node, expireTime time.Time) *node {
	return &node{
		Path:          nodePath,
		CreatedIndex:  createdIndex,
		ModifiedIndex: createdIndex,
		Parent:        parent,
		store:         store,
		ExpireTime:    expireTime,
		Value:         value,
	}
}
func newDir(store *store, nodePath string, createdIndex uint64, parent *node, expireTime time.Time) *node {
	return &node{
		Path:          nodePath,
		CreatedIndex:  createdIndex,
		ModifiedIndex: createdIndex,
		Parent:        parent,
		ExpireTime:    expireTime,
		Children:      make(map[string]*node),
		store:         store,
	}
}