Limitations

From Codawiki

Size Limitations

  • volume names: 32 characters
  • file names: 256 characters
  • path names: 1024 characters
  • ACLs per directory: 20
  • directory size: 256KB
    • this doesn't easily translate to # of files, because it depends on the average filename size, padding, space for the file identifiers, etc. a ballpark figure would be between 2048 and 4096 files.
  • volumes/server: 1024
  • replicas/volume: 8
  • users and groups: up to 2^31 (not tested)
  • users/group: up to 2^31 (not tested)
    • Here is a CVS commit message related to that, 2003/06/17 20:39:23 <jaharkes@cs.cmu.edu> Caching the rwcdb handle across accesses. Time to import 5000 users and a group containing all users went (on my laptop) from 21+ minutes to 11.621 seconds. The 100,000 user test is taking a lot longer to import but checking group membership as the import is still going
  • directories/volume: Depends on the size of the volume resolution log
  • resolution log: Administrative limit
    • By default a volume has 4096 entries, but this can be increased with 'volutil setlogparms <volid> reson 4 logsize <n>'.
  • files/volume: Unknown
    • not as simple as (files/directory * directories/volume) because at some point we have trouble finding enough unfragmented RVM memory to allocate the flat lookup table. I think RVM allocation issues hit around 200,000 files/volume, but I could be wrong.
  • files/server: Unknown, in the order of 10^6, limited by RVM size and average metadata/file (including directories)
  • servers/realm: 253
    • We need unique server-id's in the range [0:255]. But 0, 127, and 255 are 'reserved' to indicate 'no volume, replicated volume, and error'.
  • rvm data/server: anywhere between 1GB and 3GB
    • depends on where the OS loads it's shared libraries and such.
    • on Linux with glibc the limit is 1GB (with explicit glibc runtime loader, useful in some setups, just 768MB)
  • file size: 2^31 (or 2^30 ?), otherwise limited by size of client cache and disk space
    • trying to fetch a file larger than the client cache fails
      • Although you can create a file that is larger than the local cache, you can never get it back from the servers because the client is unable to clear enough cache-space to fetch it. -Jan Apr 27 2005
    • client must have 2x file size free space available for any given file if they're going to update that file while disconnected or weakly connected

Things you can't do