Configurations used for index recovery
To enable index recovery, you must configure some of the underlying entities.
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 theyyyy-MM-dd'T'HH:mm:ss
format
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
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
Every time Solr moves to an Active state from an unhealthy state it is logged in Atlas application log asIndex Recovery: Stopped! Recovery time: <timestamp>
Index Recovery: Started! Recovery time: <timestamp>
and current recovery time is reset to null by assigning that time to previous recovery time.