git-annex/Logs
Joey Hess ce455223df
split out appending to journal from writing, high level only
Currently this is not an improvement, but it allows for optimising
appendJournalFile later. With an optimised appendJournalFile, this will
greatly speed up access patterns like git-annex addurl of a lot of urls
to the same key, where the log file can grow rather large. Appending
rather than re-writing the journal file for each line can save a lot of
disk writes.

It still has to read the current journal or branch file, to check
if it can append to it, and so when the journal file does not exist yet,
it can write the old content from the branch to it. Probably the re-reads
are better cached by the filesystem than repeated writes. (If the
re-reads turn out to keep performance bad, they could be eliminated, at
the cost of not being able to compact the log when replacing old
information in it. That could be enabled by a switch.)

While the immediate need is to affect addurl writes, it was implemented
at the level of presence logs, so will also perhaps speed up location logs.
The only added overhead is the call to isNewInfo, which only needs to
compare ByteStrings. Helping to balance that out, it avoids compactLog
when it's able to append.

Sponsored-by: Dartmouth College's DANDI project
2022-07-18 13:22:50 -04:00
..
Chunk update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
ContentIdentifier Fix build with attoparsec-0.14 2021-03-24 12:11:50 -04:00
Difference update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Export deal better with clock skew situations, using vector clocks 2021-08-04 12:33:46 -04:00
MetaData update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
PreferredContent start implementing hidden git-annex repositories 2021-04-20 15:04:53 -04:00
Presence split out appending to journal from writing, high level only 2022-07-18 13:22:50 -04:00
Remote Fix build with attoparsec-0.14 2021-03-24 12:11:50 -04:00
SingleValue deal better with clock skew situations, using vector clocks 2021-08-04 12:33:46 -04:00
Trust start implementing hidden git-annex repositories 2021-04-20 15:04:53 -04:00
Activity.hs Future proof activity log parsing 2021-06-14 14:18:19 -04:00
Chunk.hs start implementing hidden git-annex repositories 2021-04-20 15:04:53 -04:00
Config.hs start implementing hidden git-annex repositories 2021-04-20 15:04:53 -04:00
ContentIdentifier.hs start implementing hidden git-annex repositories 2021-04-20 15:04:53 -04:00
Difference.hs start implementing hidden git-annex repositories 2021-04-20 15:04:53 -04:00
Export.hs deal better with clock skew situations, using vector clocks 2021-08-04 12:33:46 -04:00
File.hs more RawFilePath conversion 2020-11-05 18:45:37 -04:00
FsckResults.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00
Group.hs start implementing hidden git-annex repositories 2021-04-20 15:04:53 -04:00
Line.hs Fix build with attoparsec-0.14 2021-03-24 12:11:50 -04:00
Location.hs handle Annex.Branch.files with read-only unmerged git-annex branches 2021-12-27 15:28:31 -04:00
MapLog.hs deal better with clock skew situations, using vector clocks 2021-08-04 12:33:46 -04:00
MetaData.hs deal better with clock skew situations, using vector clocks 2021-08-04 12:33:46 -04:00
Multicast.hs start implementing hidden git-annex repositories 2021-04-20 15:04:53 -04:00
NumCopies.hs prevent numcopies or mincopies being configured to 0 2022-03-28 15:20:34 -04:00
PreferredContent.hs prevent dropping required content of other file using same content 2021-05-25 11:34:06 -04:00
Presence.hs split out appending to journal from writing, high level only 2022-07-18 13:22:50 -04:00
Remote.hs start implementing hidden git-annex repositories 2021-04-20 15:04:53 -04:00
RemoteState.hs start implementing hidden git-annex repositories 2021-04-20 15:04:53 -04:00
Schedule.hs start implementing hidden git-annex repositories 2021-04-20 15:04:53 -04:00
SingleValue.hs deal better with clock skew situations, using vector clocks 2021-08-04 12:33:46 -04:00
Smudge.hs more RawFilePath conversion 2020-11-03 10:11:04 -04:00
Transfer.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00
Transitions.hs fix obviously wrong attoparsec parser 2022-02-07 14:15:17 -04:00
Trust.hs info: Added --autoenable option 2022-06-01 14:20:38 -04:00
Unused.hs more RawFilePath conversion 2020-10-29 12:03:50 -04:00
Upgrade.hs add upgrade.log 2022-01-19 15:52:29 -04:00
UUID.hs start implementing hidden git-annex repositories 2021-04-20 15:04:53 -04:00
UUIDBased.hs deal better with clock skew situations, using vector clocks 2021-08-04 12:33:46 -04:00
View.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00
Web.hs deal better with clock skew situations, using vector clocks 2021-08-04 12:33:46 -04:00