006653ed8e
This change removes the timestamp field from messages and conversations in favor of multiple semantically named timestamp fields: sent_at, received_at on messages; active_at on conversations. This requires/lets us rethink and improve our indexing scheme thusly: The inbox index on conversations will order entries by the conversation.active_at property, which should only appear on conversations destined for the inbox. The receipt index will use the message.sent_at property, for effecient lookup of outgoing messages by timestamp, for use in processing delivery receipts. The group index on conversation.members is multi-entry, meaning that looking up any phone number in this index will efficiently yield all groups the number belongs to. The conversation index lets us scan messages in a single conversation, in the order they were received (or the reverse order). It is a compound index on [conversationId, received_at]. |
||
---|---|---|
.. | ||
models | ||
storage | ||
views | ||
api.js | ||
background.js | ||
chromium.js | ||
components.js | ||
crypto.js | ||
curve25519_compiled.js | ||
database.js | ||
errors.js | ||
helpers.js | ||
index.js | ||
libphonenumber-util.js | ||
nativeclient.js | ||
options.js | ||
protobufs.js | ||
protocol.js | ||
sendmessage.js | ||
storage.js | ||
stringview.js | ||
webcrypto.js | ||
websocket-resources.js | ||
websocket.js |