$Id: handle-allocator.tex,v 1.1 2003/01/24 23:29:18 pcarns Exp $
The Trove interface gives out handles - unique identifiers to trove objects. In addition to being unique, handles will not be reused within a configurable amount of time. These two constraints make for a handle allocator that ends up being a bit more complicated than one might expect. Add to that the fact that we want to serialize on disk all or part of the handle allocator's state, and here we are with a document to explain it all.
struct extent { int64_t first; int64_t last; };
struct extentlist { int64_t __size; int64_t num_extents; int64_t num_handles; struct timeval timestamp; struct extent * extents; };
We save our state by writing out and reading from the three TROVE_handle members, making use of the higher level trove interface.
struct handle_ledger { struct extentlist free_list; struct extentlist recently_freed_list; struct extentlist overflow_list; FILE *backing_store; TROVE_handle free_list_handle; TROVE_handle recently_freed_list_handle; TROVE_handle overflow_list_handle; }
Let be the minimum response time for an operation of any sort,
be the time a handle must sit before being moved back to the free list, and
be the total number of handles available on a server.
The pathological case would be one where a caller
This results in the largest number of handles being unavailable due to sitting
on the overflow_list. Call the number of handles waiting
in ``purgatory'' ( waiting for
to pass)
![]() |
(1) |
![]() |
(2) |
![]() |
(3) |
We should try to collect statistics and see what and
end up being for real and pathological workloads.
This document was generated using the LaTeX2HTML translator Version 2002-2-1 (1.71)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -split 0 -show_section_numbers -nonavigation handle-allocator.tex
The translation was initiated by Samuel Lang on 2010-02-04