summaryrefslogtreecommitdiff
path: root/notes/large_data_types.txt
blob: 5e4f18d5acf9a61ca9d64f8dd6f2f4c904619d22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

large data types
================

for large data types it can be useful to override the way it it accessed,
for several reasons:

- to save memory usage in general.
- to save memory bandwidth for types that are mostly
  "passed around" (i.e. copied, e.g. to/from shared memory or disk).
- to use memory more efficiently for "read-rarely, write-never" data.
- to avoid using up address space on 16 and 32 bit platforms.
- to access data in some form of a cluster.

these types could:
- be compressed
- be swapped out to disk
- be stored remotely

since read and write-back operations would be overloaded, we could also
implement:
- transactions
- logging
- versioning
- m-of-n comparison between nodes (e.g. for correctness)
- encryption (e.g. for passwords and keys in memory).
-- for "register only" plaintext access, the kernel needs support,
   and plaintext access needs to be restartable if it was
   interrupted (context-switch) and the register data was lost.