class_docstr: The `CheckpointStorage` checkpoints state directly to the JobManager's memory (hence the
  name), but savepoints will be persisted to a file system.
  
  This checkpoint storage is primarily for experimentation, quick local setups, or for streaming
  applications that have very small state: Because it requires checkpoints to go through the
  JobManager's memory, larger state will occupy larger portions of the JobManager's main memory,
  reducing operational stability. For any other setup, the `FileSystemCheckpointStorage`
  should be used. The `FileSystemCheckpointStorage` but checkpoints state directly to files
  rather than to the JobManager's memory, thus supporting larger state sizes and more highly
  available recovery.
  
  **State Size Considerations**
  
  State checkpointing with this checkpoint storage is subject to the following conditions:
  
  - Each individual state must not exceed the configured maximum state size
    (see :func:`get_max_state_size`.
  
  - All state from one task (i.e., the sum of all operator states and keyed states from all
    chained operators of the task) must not exceed what the RPC system supports, which is
    be default < 10 MB. That limit can be configured up, but that is typically not advised.
  
  - The sum of all states in the application times all retained checkpoints must comfortably
    fit into the JobManager's JVM heap space.
  
  **Persistence Guarantees**
  
  For the use cases where the state sizes can be handled by this storage, it does
  guarantee persistence for savepoints, externalized checkpoints (of configured), and checkpoints
  (when high-availability is configured).
  
      **Configuration**
  
  As for all checkpoint storage, this type can either be configured within the application (by
  creating the storage with the respective constructor parameters and setting it on the execution
  environment) or by specifying it in the Flink configuration.
  
  If the storage was specified in the application, it may pick up additional configuration
  parameters from the Flink configuration. For example, if the backend if configured in the
  application without a default savepoint directory, it will pick up a default savepoint
  directory specified in the Flink configuration of the running job/cluster. That behavior is
  implemented via the :func:`configure` method.
class_docstr_tok: ["The","`","CheckpointStorage","`","checkpoints","state","directly","to","the","JobManager","'s","memory","(","hence","the","name",")",",","but","savepoints","will","be","persisted","to","a","file","system",".","This","checkpoint","storage","is","primarily","for","experimentation",",","quick","local","setups",",","or","for","streaming","applications","that","have","very","small","state",":","Because","it","requires","checkpoints","to","go","through","the","JobManager","'s","memory",",","larger","state","will","occupy","larger","portions","of","the","JobManager","'s","main","memory",",","reducing","operational","stability",".","For","any","other","setup",",","the","`","FileSystemCheckpointStorage","`","should","be","used",".","The","`","FileSystemCheckpointStorage","`","but","checkpoints","state","directly","to","files","rather","than","to","the","JobManager","'s","memory",",","thus","supporting","larger","state","sizes","and","more","highly","available","recovery",".","*","*","State","Size","Considerations","*","*","State","checkpointing","with","this","checkpoint","storage","is","subject","to","the","following","conditions",":","-","Each","individual","state","must","not","exceed","the","configured","maximum","state","size","(","see",":","func",":","`","get_max_state_size","`",".","-","All","state","from","one","task","(","i.e.",",","the","sum","of","all","operator","states","and","keyed","states","from","all","chained","operators","of","the","task",")","must","not","exceed","what","the","RPC","system","supports",",","which","is","be","default","<","10","MB",".","That","limit","can","be","configured","up",",","but","that","is","typically","not","advised",".","-","The","sum","of","all","states","in","the","application","times","all","retained","checkpoints","must","comfortably","fit","into","the","JobManager","'s","JVM","heap","space",".","*","*","Persistence","Guarantees","*","*","For","the","use","cases","where","the","state","sizes","can","be","handled","by","this","storage",",","it","does","guarantee","persistence","for","savepoints",",","externalized","checkpoints","(","of","configured",")",",","and","checkpoints","(","when","high-availability","is","configured",")",".","*","*","Configuration","*","*","As","for","all","checkpoint","storage",",","this","type","can","either","be","configured","within","the","application","(","by","creating","the","storage","with","the","respective","constructor","parameters","and","setting","it","on","the","execution","environment",")","or","by","specifying","it","in","the","Flink","configuration",".","If","the","storage","was","specified","in","the","application",",","it","may","pick","up","additional","configuration","parameters","from","the","Flink","configuration",".","For","example",",","if","the","backend","if","configured","in","the","application","without","a","default","savepoint","directory",",","it","will","pick","up","a","default","savepoint","directory","specified","in","the","Flink","configuration","of","the","running","job\/cluster",".","That","behavior","is","implemented","via","the",":","func",":","`","configure","`","method","."]
docstr: Creates a new JobManagerCheckpointStorage, setting optionally the paths to persist
  checkpoint metadata to, as well as configuring state thresholds.
  
  WARNING: Increasing the size of this value beyond the default value
  (:data:`DEFAULT_MAX_STATE_SIZE`) should be done with care.
  The checkpointed state needs to be send to the JobManager via limited size RPC messages,
  and there and the JobManager needs to be able to hold all aggregated state in its memory.
  
  Example:
  ::
      >>> checkpoint_storage = JobManagerCheckpointStorage()
  
  :param checkpoint_path: The path to write checkpoint metadata to. If none, the value from
                          the runtime configuration will be used.
  :param max_state_size: The maximal size of the serialized state. If none, the
                         :data:`DEFAULT_MAX_STATE_SIZE` will be used.
  :param j_jobmanager_checkpoint_storage: For internal use, please keep none.
docstr_tok: ["Creates","a","new","JobManagerCheckpointStorage",",","setting","optionally","the","paths","to","persist","checkpoint","metadata","to",",","as","well","as","configuring","state","thresholds",".","WARNING",":","Increasing","the","size","of","this","value","beyond","the","default","value","(",":","data",":","`","DEFAULT_MAX_STATE_SIZE","`",")","should","be","done","with","care",".","The","checkpointed","state","needs","to","be","send","to","the","JobManager","via","limited","size","RPC","messages",",","and","there","and","the","JobManager","needs","to","be","able","to","hold","all","aggregated","state","in","its","memory",".","Example",":",":",":",">",">",">","checkpoint_storage","=","JobManagerCheckpointStorage","(",")",":","param","checkpoint_path",":","The","path","to","write","checkpoint","metadata","to",".","If","none",",","the","value","from","the","runtime","configuration","will","be","used",".",":","param","max_state_size",":","The","maximal","size","of","the","serialized","state",".","If","none",",","the",":","data",":","`","DEFAULT_MAX_STATE_SIZE","`","will","be","used",".",":","param","j_jobmanager_checkpoint_storage",":","For","internal","use",",","please","keep","none","."]
code: def __init__(
      self,
      checkpoint_path=None,
      max_state_size=None,
      j_jobmanager_checkpoint_storage=None,
  ):
      """
      Creates a new JobManagerCheckpointStorage, setting optionally the paths to persist
      checkpoint metadata to, as well as configuring state thresholds.
  
      WARNING: Increasing the size of this value beyond the default value
      (:data:`DEFAULT_MAX_STATE_SIZE`) should be done with care.
      The checkpointed state needs to be send to the JobManager via limited size RPC messages,
      and there and the JobManager needs to be able to hold all aggregated state in its memory.
  
      Example:
      ::
          >>> checkpoint_storage = JobManagerCheckpointStorage()
  
      :param checkpoint_path: The path to write checkpoint metadata to. If none, the value from
                              the runtime configuration will be used.
      :param max_state_size: The maximal size of the serialized state. If none, the
                             :data:`DEFAULT_MAX_STATE_SIZE` will be used.
      :param j_jobmanager_checkpoint_storage: For internal use, please keep none.
      """
      if j_jobmanager_checkpoint_storage is None:
          gateway = get_gateway()
          JJobManagerCheckpointStorage = (
              gateway.jvm.org.apache.flink.runtime.state.storage.JobManagerCheckpointStorage
          )
          JPath = gateway.jvm.org.apache.flink.core.fs.Path
  
          if checkpoint_path is not None:
              checkpoint_path = JPath(checkpoint_path)
          if max_state_size is None:
              max_state_size = (
                  JJobManagerCheckpointStorage.DEFAULT_MAX_STATE_SIZE
              )
          j_jobmanager_checkpoint_storage = (
              JJobManagerCheckpointStorage(
                  checkpoint_path, max_state_size
              )
          )
  
      super(JobManagerCheckpointStorage, self).__init__(
          j_jobmanager_checkpoint_storage
      )
  
imports: from abc import ABCMeta
  from py4j.java_gateway import get_java_class
  from typing import Optional
  from pyflink.java_gateway import get_gateway
label_desc: Use image node_id 1 to create a new JobManagerCheckpointStorage object from inherited base classes: CheckpointStorage with example: obj = JobManagerCheckpointStorage(checkpoint_path, max_state_size, j_jobmanager_checkpoint_storage)