code: func (m *Mercury) UpdateNodeResource(ctx context.Context, node *types.Node, cpu types.CPUMap, quota float64, mem int64, action string) error {
  	switch action {
  	case store.ActionIncr:
  		node.CPU.Add(cpu)
  		node.SetCPUUsed(quota, types.DecrUsage)
  		node.MemCap += mem
  	case store.ActionDecr:
  		node.CPU.Sub(cpu)
  		node.SetCPUUsed(quota, types.IncrUsage)
  		node.MemCap -= mem
  	default:
  		return types.ErrUnknownControlType
  	}
  
  	go metrics.Client.SendNodeInfo(node)
  	return m.UpdateNode(ctx, node)
  }
docs: // UpdateNodeResource update cpu and mem on a node, either add or subtract