caching - Translog in ElasticSearch: real-time CRUD and cheap fsyncs? -
while going through elasticsearch's definitive guide, stumble upon mystery. first established search near real-time, since changes need refreshed new segment filesystem cache (by default every second) after can seen search mechanism, , no fsync used because costly.
then comes along translog. reason, can used have real-time crud. engine first goes through segments knows in filesystem cache, , adds changes finds in translog. if translog can kept up-to-date in realtime, what's inherent issue in keeping segments up-to-date in realtime? prevent many segments in cache?
additionally, why can translog fsynced every 5 seconds default no problems, while segments can't?
segments immutable. never updated rather merged other segments make bigger segments. having immutable segments, elasticsearch offloads caching os via page/file caching.
the translog acts append buffer gets promoted persisted segment once it's flushed.
Comments
Post a Comment