Software /
code /
prosody-modules
Comparison
mod_storage_xmlarchive/README.markdown @ 2854:687b19cad4f5
mod_storage_xmlarchive/README: Add description of how data is stored
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 28 Dec 2017 22:30:56 +0100 |
parent | 2818:88474dd1af48 |
child | 2855:7713cd4fff8f |
comparison
equal
deleted
inserted
replaced
2853:a844d1535c4d | 2854:687b19cad4f5 |
---|---|
61 ``` | 61 ``` |
62 | 62 |
63 Where `$DIR` is `to` or `from`, `$STORE` is e.g. `archive` or `archive2` | 63 Where `$DIR` is `to` or `from`, `$STORE` is e.g. `archive` or `archive2` |
64 for MAM and `muc_log` for MUC logs. Finally, `$JID` is the JID of the | 64 for MAM and `muc_log` for MUC logs. Finally, `$JID` is the JID of the |
65 user or MUC room to me migrated, which can be repeated. | 65 user or MUC room to me migrated, which can be repeated. |
66 | |
67 Data structure | |
68 ============== | |
69 | |
70 Data is split in three kinds of files and messages are grouped by day. | |
71 Prosodys `util.datamanager` is used, so all special characters in these | |
72 filenames are escaped and reside under `hostname/store` in Prosodys Data | |
73 directory, commonly `/var/lib/prosody`. | |
74 | |
75 `username.list` | |
76 : A list of dates in `YYYY-MM-DD` format. | |
77 | |
78 `username@YYYY-MM-DD.list` | |
79 : Index containing metadata for messages stored on that day. | |
80 | |
81 `username@YYYY-MM-DD.xml` | |
82 : Messages in textual XML format, separated by newlines. | |
83 | |
84 This makes it fairly simple and fast to find messages by timestamp. | |
85 Queries that are not time based, but limited to a specific contact may | |
86 be expensive as potentially the entire archive will be read. | |
87 | |
88 Each archive ID is of the form `YYYY-MM-DD-random`, making lookups by | |
89 archive id just as simple as time based queries. |