| Version 0.3 (11/02/11) |
| - fixed some pointer comparisons in an attempt to prevent a crash where INKHandleStringRelease was called on a bad char* |
| |
| Version 0.2 (10/31/11) |
| - fixed lots of memory leaks |
| |
| Version 0.1 (04/20/10) |
| - initial version |
| |
| Upload proxy specs for phase I: |
| |
| 1. Memory buffering (buffer the entire POST data in IOBuffer before connecting to OS) |
| 1.1. Memory buffer size is configured with "mem_buffer_size" in config file. Default and minimum value is 32K |
| You can increase it in the config file. If a request's size is larger than "mem_buffer_size" specifiied |
| in config file, then the upload proxy feature will be disabled for this particular request |
| |
| 2. Disk buffering (buffer the entire POST data on disk before connecting to OS) |
| 2.1. Use disk async IO. This involved some changes in ATS core |
| . new APIs wrapping around ink_aio_read() and ink_aio_write() |
| . change to distinguish between api call's AIO and cache's AIO |
| . guarantee api call's AIO only involves certain amount of threads |
| . the number of threads is configurable in plugin's config file (default is 4) |
| |
| 2.2. Directories and files generated on disk |
| . base directory: FOOBAR/var/buffer_upload_tmp/ (configurable in config file) |
| . number of subdirectories: 64 (configurable in config file) |
| . filename are randomly generated |
| . files will be removed when the entire data have been sent out to OS |
| . remove dangling files (left on disk due to transaction interruption or traffic server crash) at startup time |
| |
| 2.3. Default chunk size when reading from disk: 16K, configurable in config file |
| |
| 3. Default buffering mode: disk aio buffering mode |
| 3.1. to turn off disk buffering, add a "use_disk_buffer 0" line in config file |
| |
| 4. Trigger POST buffering on certain URLs |
| 4.1. certain URLs will be provided in a plain text file (one URL each line) |
| 4.2. specify filename in config file by "url_list_file" |
| 4.3. max length of each URL: 4096 (configurable in config file) |
| 4.4. use exact match, don't support regex for now |
| |
| 5. URL conversion for Mail's specific URL format |
| 5.1. for now check if the "host" part in the URL is same as the proxy server name, then will do this conversion |
| 5.2. To turn on URL conversion feature, set "convert_url 1" in config file |
| |
| 6. All request headers inlcuding cookies plus the entire POST data will be buffered (either in memory or on disk) |
| |
| 7. Config file can be explicitly sepcified as a parameter in command line (in plugin.config file) |
| |
| |
| a sample config file: |
| |
| use_disk_buffer 1 |
| convert_url 1 |
| chunk_size 1024 |
| url_list_file /tmp/url_list.conf |
| max_url_length 10000 |
| base_dir /tmp/test1 |
| subdir_num 100 |
| thread_num 10 |
| mem_buffer_size 40000 |
| |
| |
| default config file: FOOBAR/etc/upload.conf |
| |
| default config values: |
| use_disk_buffer 1 |
| convert_url 0 |
| chunk_size 16384 |
| url_list_file none |
| max_url_length 4096 |
| base_dir FOOBAR/var/buffer_upload_tmp |
| subdir_num 64 |
| thread_num 4 |
| mem_buffer_size 32768 |
| |
| |