class_docstr: The actor to handle the race condition when NoDataToSpill happens.
  There are two situations when spill raises `NoDataToSpill`,
  one is that space is allocated while objects are not put into storage,
  another is some objects are pinned that can not be spilled,
  so we create an asyncio event if not have enough objects to spill,
  when put or unpin happens, we will notify and check spillable size,
  if size is enough for spilling, call event.set() to wake up spilling task.
class_docstr_tok: ["The","actor","to","handle","the","race","condition","when","NoDataToSpill","happens",".","There","are","two","situations","when","spill","raises","`","NoDataToSpill","`",",","one","is","that","space","is","allocated","while","objects","are","not","put","into","storage",",","another","is","some","objects","are","pinned","that","can","not","be","spilled",",","so","we","create","an","asyncio","event","if","not","have","enough","objects","to","spill",",","when","put","or","unpin","happens",",","we","will","notify","and","check","spillable","size",",","if","size","is","enough","for","spilling",",","call","event.set","(",")","to","wake","up","spilling","task","."]
code: def notify_spillable_space(
      self, spillable_size: int, quota_left: int
  ):
      event = self._event
      if event is None:
          return
      logger.debug("Notify to check if has space for spilling")
      if spillable_size + quota_left > event.size:
          logger.debug(
              "Check pass, wake up spill task, spill bytes is %s",
              event.size - quota_left,
          )
          event.size = event.size - quota_left
          event.set()
  
imports: import asyncio
  import logging
  from abc import ABC, abstractmethod
  from collections import defaultdict
  from typing import List, Tuple
  from ...None import oscar
  from ...storage import StorageLevel
  from .core import DataManagerActor
  from .errors import NoDataToSpill
  from .handler import StorageHandlerActor
label_desc: Use image node_id 4 for calling the SpillManagerActor obj's underlying member method code with example usage: obj.notify_spillable_space(spillable_size, quota_left) without return types