class_docstr: `FileSystemCheckpointStorage` checkpoints state as files to a filesystem.
  
  Each checkpoint will store all its files in a subdirectory that includes the
  checkpoints number, such as `hdfs://namenode:port/flink-checkpoints/chk-17/`.
  
  **State Size Considerations**
  
  This checkpoint storage stores small state chunks directly with the metadata, to avoid creating
  many small files. The threshold for that is configurable. When increasing this threshold, the
  size of the checkpoint metadata increases. The checkpoint metadata of all retained completed
  checkpoints needs to fit into the JobManager's heap memory. This is typically not a problem,
  unless the threashold `get_min_file_size_threshold` is increased significantly.
  
  **Persistence Guarantees**
  
  Checkpoints from this checkpoint storage are as persistent and available as the filesystem
  that it is written to. If the file system is a persistent distributed file system, this
  checkpoint storage supports highly available setups. The backend additionally supports
  savepoints and externalized checkpoints.
  
  **Configuration**
  
  As for all checkpoint storage policies, this backend 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 checkpoint storage was specified in the application, it may pick up additional
  configuration parameters from the Flink configuration. For example, if the storage is 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.
class_docstr_tok: ["`","FileSystemCheckpointStorage","`","checkpoints","state","as","files","to","a","filesystem",".","Each","checkpoint","will","store","all","its","files","in","a","subdirectory","that","includes","the","checkpoints","number",",","such","as","`","hdfs",":","\/\/namenode",":","port\/flink-checkpoints\/chk-17\/","`",".","*","*","State","Size","Considerations","*","*","This","checkpoint","storage","stores","small","state","chunks","directly","with","the","metadata",",","to","avoid","creating","many","small","files",".","The","threshold","for","that","is","configurable",".","When","increasing","this","threshold",",","the","size","of","the","checkpoint","metadata","increases",".","The","checkpoint","metadata","of","all","retained","completed","checkpoints","needs","to","fit","into","the","JobManager","'s","heap","memory",".","This","is","typically","not","a","problem",",","unless","the","threashold","`","get_min_file_size_threshold","`","is","increased","significantly",".","*","*","Persistence","Guarantees","*","*","Checkpoints","from","this","checkpoint","storage","are","as","persistent","and","available","as","the","filesystem","that","it","is","written","to",".","If","the","file","system","is","a","persistent","distributed","file","system",",","this","checkpoint","storage","supports","highly","available","setups",".","The","backend","additionally","supports","savepoints","and","externalized","checkpoints",".","*","*","Configuration","*","*","As","for","all","checkpoint","storage","policies",",","this","backend","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","checkpoint","storage","was","specified","in","the","application",",","it","may","pick","up","additional","configuration","parameters","from","the","Flink","configuration",".","For","example",",","if","the","storage","is","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","."]
docstr: Creates a new FileSystemCheckpointStorage, setting the paths for the checkpoint data
  in a file system.
  
  All file systems for the file system scheme in the URI (e.g., `file://`, `hdfs://`, or
  `s3://`) must be accessible via `FileSystem#get`.
  
  For a Job targeting HDFS, this means that the URI must either specify the authority (host
  and port), of the Hadoop configuration that describes that information must be in the
  classpath.
  
  Example:
  ::
      >>> checkpoint_storage = FileSystemCheckpointStorage("hdfs://checkpoints")
  
  :param checkpoint_path: The path to write checkpoint metadata to. If none, the value from
                          the runtime configuration will be used.
  :param file_state_size_threshold: State below this size will be stored as part of the
                                  metadata, rather than in files. If -1, the value configured
                                  in the runtime configuration will be used, or the default
                                  value (1KB) if nothing is configured.
  :param write_buffer_size: Write buffer size used to serialize state. If -1, the value
                              configured in the runtime configuration will be used, or the
                              default value (4KB) if nothing is configured.
  :param j_filesystem_checkpoint_storage: For internal use, please keep none.
docstr_tok: ["Creates","a","new","FileSystemCheckpointStorage",",","setting","the","paths","for","the","checkpoint","data","in","a","file","system",".","All","file","systems","for","the","file","system","scheme","in","the","URI","(","e.g.",",","`","file",":","\/\/","`",",","`","hdfs",":","\/\/","`",",","or","`","s3",":","\/\/","`",")","must","be","accessible","via","`","FileSystem","#","get","`",".","For","a","Job","targeting","HDFS",",","this","means","that","the","URI","must","either","specify","the","authority","(","host","and","port",")",",","of","the","Hadoop","configuration","that","describes","that","information","must","be","in","the","classpath",".","Example",":",":",":",">",">",">","checkpoint_storage","=","FileSystemCheckpointStorage","(","``","hdfs",":","\/\/checkpoints","''",")",":","param","checkpoint_path",":","The","path","to","write","checkpoint","metadata","to",".","If","none",",","the","value","from","the","runtime","configuration","will","be","used",".",":","param","file_state_size_threshold",":","State","below","this","size","will","be","stored","as","part","of","the","metadata",",","rather","than","in","files",".","If","-1",",","the","value","configured","in","the","runtime","configuration","will","be","used",",","or","the","default","value","(","1KB",")","if","nothing","is","configured",".",":","param","write_buffer_size",":","Write","buffer","size","used","to","serialize","state",".","If","-1",",","the","value","configured","in","the","runtime","configuration","will","be","used",",","or","the","default","value","(","4KB",")","if","nothing","is","configured",".",":","param","j_filesystem_checkpoint_storage",":","For","internal","use",",","please","keep","none","."]
code: def __init__(
      self,
      checkpoint_path=None,
      file_state_size_threshold=None,
      write_buffer_size=-1,
      j_filesystem_checkpoint_storage=None,
  ):
      """
      Creates a new FileSystemCheckpointStorage, setting the paths for the checkpoint data
      in a file system.
  
      All file systems for the file system scheme in the URI (e.g., `file://`, `hdfs://`, or
      `s3://`) must be accessible via `FileSystem#get`.
  
      For a Job targeting HDFS, this means that the URI must either specify the authority (host
      and port), of the Hadoop configuration that describes that information must be in the
      classpath.
  
      Example:
      ::
          >>> checkpoint_storage = FileSystemCheckpointStorage("hdfs://checkpoints")
  
      :param checkpoint_path: The path to write checkpoint metadata to. If none, the value from
                              the runtime configuration will be used.
      :param file_state_size_threshold: State below this size will be stored as part of the
                                      metadata, rather than in files. If -1, the value configured
                                      in the runtime configuration will be used, or the default
                                      value (1KB) if nothing is configured.
      :param write_buffer_size: Write buffer size used to serialize state. If -1, the value
                                  configured in the runtime configuration will be used, or the
                                  default value (4KB) if nothing is configured.
      :param j_filesystem_checkpoint_storage: For internal use, please keep none.
      """
      if j_filesystem_checkpoint_storage is None:
          gateway = get_gateway()
          JFileSystemCheckpointStorage = (
              gateway.jvm.org.apache.flink.runtime.state.storage.FileSystemCheckpointStorage
          )
          JPath = gateway.jvm.org.apache.flink.core.fs.Path
  
          if checkpoint_path is None:
              raise ValueError("checkpoint_path must not be None")
          else:
              checkpoint_path = JPath(checkpoint_path)
  
          if file_state_size_threshold is None:
              file_state_size_threshold = -1
  
          j_filesystem_checkpoint_storage = (
              JFileSystemCheckpointStorage(
                  checkpoint_path,
                  file_state_size_threshold,
                  write_buffer_size,
              )
          )
  
      super(FileSystemCheckpointStorage, self).__init__(
          j_filesystem_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 FileSystemCheckpointStorage object from inherited base classes: CheckpointStorage with example: obj = FileSystemCheckpointStorage(checkpoint_path, file_state_size_threshold, write_buffer_size, j_filesystem_checkpoint_storage)