Configurations used for index recovery

To enable index recovery, you must configure some of the underlying entities.

Configuration properties that must be set:
  • atlas.index.recovery.enable: To enable or disable index recovery.

Example: atlas.index.recovery.enable=true.

By default index recovery is enabled on Atlas startup. To disable index recovery, set the value to false. When no index recovery data is available by default, Atlas considers recovery start time based on TTL - (current time minus tx.log TTL). By default SOLR tx.log default TTL is configured as 10 days.

  • atlas.graph.index.status.check.frequency: To configure the frequency of SOLR health check. It takes input as time in milliseconds. By default SOLR health checkup takes effect every 30 seconds.

Example: atlas.graph.index.status.check.frequency=5000.

  • atlas.index.recovery.start.time: To start index recovery by custom recovery time as provided by the user. This property must be set to a timestamp in the yyyy-MM-dd'T'HH:mm:ssformat

If there are frequent SOLR restart operations or if SOLR is down, setting the start time configuration provides additional clarity.

Example: atlas.index.recovery.start.time=2023-03-24T09:17:23.656Z.

  • write.ahead.log.ttl.in.hours: To configure time duration for which the write-ahead transaction log is available. This property value must be set in hours.

Example: write.ahead.log.ttl.in.hours=36.

List of REST API for dynamic index recovery

You can use Atlas REST APIs that provide flexibility to start index recovery on demand, for index recovery. POST API and GET API are the supported APIs to handle index recovery.

POST API - Start on-demand index recovery

With this API, you can commence index recovery on-demand operation providing the start time for index recovery.

API: POST api/atlas/v2/indexrecovery/start?startTime=2023-04-10T06:17:23.656Z

This API recovers indices starting from earliest of 2023-04-10T06:17:23.656Z or from the transaction log available time.

GET API - Get index recovery timing details

Without REST API, if youwanted to retrieve the details about previous or upcoming index recovery, the only option available is to search through Atlas logs. But with this API, you can directly request for index recovery details.

API: GET api/atlas/v2/indexrecovery/

Response to GET API provides recovery time of previous and recent/upcoming index recovery and also provides the customTime which indicates on-demand index recovery started by you through the REST API.

Index recovery time

Learn about the Index recovery vertex properties and how Index recovery time persists in a single graph vertex.

Index recovery vertex has the following properties:

  • Property-1: Key as “__idxRecovery_name” and with constant value as ”__solrIndexRecoveryInfo”.
  • Property-2: Key as “__idxrecovery_startTime” and it holds the current recovery time.
  • Property-3: Key as “__idxrecovery_prevTime” and it holds the previous recovery time.
  • Property-4 Key as “__idxRecovery_customTime” and it holds the previous recovery time started through REST API.

    Whenever Apache Solr moves to an unhealthy state the upcoming recovery time is logged in Atlas application log as Index Recovery: Stopped! Recovery time: <timestamp>

    Every time Solr moves to an Active state from an unhealthy state it is logged in Atlas application log as Index Recovery: Started! Recovery time: <timestamp> and current recovery time is reset to null by assigning that time to previous recovery time.