- Strong “disk consistency” for clients which are connected directly to the Archil disk
- Eventual “synchronization consistency” for clients which are connected directly to the attached data sources
Strong disk consistency
When clients are connected directly to the Archil disk, Archil offers strong read-after-write consistency. Specifically, any time a client issues an “fsync” operation to the file system, or Archil proactively flushes its cache, the client will push all latest writes to the Archil disk. A successfulfsync means the data is durably committed — stored redundantly across multiple Availability Zones, as described in
Data durability. When another client issues
a read request to the disk, it will see the latest writes immediately. Operations such as rename are atomic — another client’s next read of the
affected path returns either the old state or the new state, never a partial result.
Client-side caching
To enhance performance, the Archil client aggressively caches data and directory information from the server. Therefore, not all reads will result in a request to the server — where data is strongly consistent. This can result in delays of seconds before new files or changes to existing files are reflected in a second disk client. The client-side cache configuration is adjustable using thearchil set-cache-expiry command. Read more about the command here.
You can also force a client to drop its cached entries and re-read from the server with archil invalidate-cache.
Eventual synchronization consistency
Archil disks provide eventual consistency between the file system view and the backing data source. For example, an object that is created directly in Amazon S3 will not appear in the Archil disk (via tools likels) for a few minutes after creation. Similarly, a file that is created in the Archil disk
(using a tool such as touch) can take tens of seconds to appear when calling the S3 API directly (such as by using aws s3 ls).