logoalt Hacker News

spijdartoday at 5:55 PM0 repliesview on HN

Why use swap files when we could have swap directories? ;-)

Sprite had (IMO) a really interesting solution to swap. Each host had a directory, referenced by its host ID under the `/swap` directory, and inside that directory, individual segments of virtual memory would be saved: https://github.com/OSPreservProject/sprite/blob/master/src/k...

Sprite overcommited memory like a modern OS, and stored segments individually so that process migration worked (if a segment was swapped-out, the path to the swap file would remain the same anywhere on the cluster, so if the process was migrated, you didn't need to swap-in the segment before migration):

  eery@cherimoya [1] > cd /swap
  eery@cherimoya [2] > ls
  1   10 11  12 13  14 15  16 17  2 3   4 5   6 7   8 9
  eery@cherimoya [3] > ls 3
  1    113  129  148  161  172  185  20 218  238  252  33   48  63   77   95
  100  114  130  15   162  173  186  203 219  24   253  34   49  64   8    96
  101  115  132  150  163  174  187  204 22   240  254  36   50  66   80   97
  102  116  133  152  164  175  188  205 221  242  255  38   51  67   81   98
  103  117  134  153  165  176  19   207 222  243  26   39   52  7    82   99
  104  12   135  154  166  177  190  209 225  244  27   4    55  70   85
  105  121  139  155  167  179  191  21 226  246  28   40   56  71   86
  106  122  14   156  168  180  193  210 227  247  29   42   57  72   87
  107  125  140  157  169  181  194  213 23   248  3    44   6  73   9
  11   126  143  158  17  182  197  214 230  249  30   45   60  74   90
  111  127  145  159  170  183  198  215 233  25   31   46   61  75   91
  112  128  146  16   171  184  199  216 237  250  32   47   62  76   92
  eery@cherimoya [4] > ls 5
  82  83
  eery@cherimoya [5] > ls 15
  111  126  14   155  17  181  217  253 4    57   72   86   98
  116  131  141  160  170  19   24   29 47   62   77   9
  121  136  150  165  177  210  25   34 52   67   8    95
  eery@cherimoya [6] > grep cherimoya /etc/spritehosts
  12   pc386   cherimoya.shockfox.net           cherimoya
  eery@cherimoya [7] > ls 12
  eery@cherimoya [8] >