PersistenceLocation

PersistenceLocation["type"]

represents a persistence location of the given type.

PersistenceLocation["type",base]

includes the base address for a location type that allows multiple locations.

Details

  • Supported location types include:
  • "KernelSession"current invocation of the Wolfram Language kernel
    "FrontEndSession"current invocation of the Wolfram Notebook front end
    "Notebook"the notebook in which the current evaluation is being done
    "ServerSession"persistence for requests on a single web server
    "CookieManaged"persistence based on a Wolfram browser cookie
    "Local"local to a computer, based on user home directory
    "LocalShared"local to a computer, based on $BaseDirectory
    "Cloud"in the cloud defined by the current $CloudBase
    "Installation"installation defaults
  • PersistenceLocation["type","base"] can also be given as PersistenceLocation["type""base"].
  • In functions such as PersistentValue that use persistence locations, the forms "type" and "type"->"base" can be used and are equivalent to PersistenceLocation["type"] and PersistenceLocation["type","base"].
  • In PersistenceLocation["type"], the default base is determined by type as follows:
  • "Local"LocalObject["Persistence",$DefaultLocalBase]
    "LocalShared"LocalObject["Persistence",$BaseDirectory]
    "Cloud"CloudObject["/Persistence"]
  • DeleteObject[PersistenceLocation["type"]] deletes all objects stored in the given persistence location.
  • "ServerSession" specifies that values will be persistent only when the same server (typically with the same $MachineName) is used. In typical cloud configurations, successive requests will be executed on the same server when possible. With the "ServerSession" persistence location, actual values are stored on the server, and are typically referenced by a cookie in the browser.
  • "CookieManaged" specifies that values will be referenced by a browser cookie named "WolframPersistentCookie", and will persist as long as that cookie lasts. The actual values are stored in the cloud, and are available to all servers within a given cloud.
  • The default persistence time for "CookieManaged" is set for a particular cloud; for the Wolfram Cloud, it is typically one year. A shorter persistence time for a particular value can be specified by giving a setting for PersistenceTime.
  • "ServerSession" typically allows values to be retrieved and set more efficiently than "CookieManaged", since it maintains data directly on the server and does not require access to the cloud object store.

Examples

open allclose all

Basic Examples  (3)

The "Local" persistence location stores values as local objects under $LocalBase:

The "FrontEndSession" persistence location stores values in the running Wolfram Notebook front end:

The "Cloud" persistence location stores values as cloud objects:

Scope  (7)

The "KernelSession" persistence location maintains values in the kernel:

The "FrontEndSession" persistence location stores values in the running Wolfram Notebook front end:

The "Local" persistence location stores values as local objects under $LocalBase:

The "LocalShared" persistence location stores values as local objects under $BaseDirectory:

The "Installation" persistence location provides default values:

The "Cloud" persistence location stores values as cloud objects:

The "Notebook" persistence location stores values inside a kernel's evaluation notebook:

Generalizations & Extensions  (4)

Specify an alternate "KernelSession" location by giving a symbol name as the second argument:

Specify an alternate local location by giving the base directory as the second argument:

The alternate base can be given with a local object:

Specify an alternate cloud location by specifying a cloud directory as the second argument:

Site administrators with write permission in $BaseDirectory can add values to the "LocalShared" location:

Add a value to the writable variant of the shared local location:

All users can now see this value:

Properties & Relations  (4)

Persistent values stored at "KernelSession" are lost when the kernel is restarted:

Persistent values stored at "FrontEndSession" survive a kernel restart, as long as the front end is running:

The current default location for storing persistent values is a persistence location:

The current search path for obtaining persistent values is a list of persistence locations:

Find all objects stored in a persistence location:

Delete them:

Alternatively, use DeleteObject on the persistence location:

Possible Issues  (3)

The default $PersistencePath does not include the cloud location:

Adding the cloud location to the search path may introduce network delays for persistent object access:

The "LocalShared" persistence location is normally read-only:

The "Installation" persistence location allows adding new values but not removing any values:

Introduced in 2017
 (11.1)
 |
Updated in 2019
 (12.0)