Lines Matching refs:slot

315   \item \textbf{Free slot:} A slot which is available, and can be given
317 \item \textbf{In-generation slot:} A slot is given to generator. Only
318 the generator should read/write this slot now. This is the only
319 mode when data can be written in the slot.
320 \item \textbf{In-consumption slot:} One or more consumers are currently
321 consuming this slot. In this mode, slot is strictly read-only
322 no one should modify the data in slot in this mode.
324 information to locate particular slot present in any shared-pool
326 communication to identify the exact slot. A typical slot-pointer
328 find the particular slot.
377 shared-pool into \textit{slots}. The size of slot
380 the slot size and the side-effects of small or large size are
428 \subsection{A meta-slot structure}
429 This structure hold the additional information about each slot in
435 \item \textbf{slot-id:} The slot identifier.
436 \item \textbf{offset:} The location of slot within the shared pool.
437 \item \textbf{data-len:} Size of valid data in the slot.
438 \item \textbf{state:} The state of slot (Free, in-Generation,
444 The producer maintains a separate meta-slot list for very shared-pool
446 every slot and its state.
466 \item meta-slot structure containing private information about
467 state of each slot in this shared-pool.
507 consumer-queue. \textit{The write-index points to the slot-pointer within
515 consumer-queue. \textit{The read-index points to the slot-pointer within
521 virtual-register indicate the number of slot-pointers which are
533 of the space in consumer-queue is used for storing slot-pointers.
534 The slot pointers are used to point a particular slot in one of the
539 holding this particular slot. These id's are given by the
543 a slot-pointer with shared-pool-id which it has not mapped yet.
548 continue to access the slot using slot-pointer.
549 \item \texttt{slot-index:} The index of slot within that
551 slot-index maps into the meta-slot structure which is private to
554 to detect it as meta-slot structure maintains the information
555 about which all consumers are currently consuming the slot and
557 validates if this consumer was consuming the slot being released.
558 The reason for maintaining this information in slot-index even
560 producer in relocating the slot within shared-pool when it is
562 \item \texttt{Offset:} The start of the slot within shared-buffer.
563 In case of fixed size slot, offset can be calculated by
564 slot-index.
566 slots, this flag tells us if there are more slot-pointers
570 identification number, but the slot-pointers belonging to same
572 which the slot-pointers are added to the consumer-queue is
574 slot-pointers in \textit{available to consume} section and also
605 which model of slot-consumption is used (refer
613 \ref{slot-forward}).
665 called when the number of free slot-pointers in the queue drops bellow
668 slot-pointers in consumer-queue, or producer will soon start dropping the
682 encounter them as part of slot-pointer while consuming
709 sent to the producer when consumer-queue is full and new free slot-pointer is
719 sent to the producer when consumer receives a slot-pointer with
725 \item \textbf{Forwarding slot-pointer to other consumer:}
726 \label{slot-forward}
728 slot-pointers within each other. There are two cases here. In
729 first case, the consumer forwards the slot-pointer to other
733 freeing the slot. But in case where consumer just wants to forward the
734 slot-pointer and continue on it's own working without bothering
736 that slot, then it should inform the producer that it has forwarded
737 that slot to some other consumer. It can be done with this
742 meta-slot structure inside producer for given slot with one more consumer.
743 This message contains the slot identification information
745 now release the slot whenever it is done using it's consumer-queue,
752 initiated by producer and this slot will not be a part of
757 information like consumer-id's, producer-id and slot-pointers.
759 consumer-id and slot-pointers are only valid in context of particular
772 \item Add empty slot (from producer to generator): This message will
773 add a new free slot into generator-queue.
786 slot-pointers between them.
831 \section{Memory management (slot management)}
840 shared-pools. Once created, slot remains valid until and unless the
841 shared-pool holding the slot needs to be freed. In the lifetime of
842 the slot, it goes through following states.
844 \item \textbf{Free:} This is the initial state, in this state slot
848 \item \textbf{In-generation:} This is the second stage of slot. In
849 this state, the slot is owned by the generator and no one should
851 the data will be written into the slot.
854 state. This is the state when generator returns the slot after it
861 slot-pointer and if needed, send them the notifications. Once the
862 slot-pointers are added into consumer-queue, the state of slot is
865 If no consumer is interested, then the slot is marked as free and
870 As instead of actually copying the data from the slot, slot-pointers
871 are provided to the consumers. These slot-pointers provide
877 about what to do with this slot.
880 Consume the slot as quickly as possible, and once consumed
881 add it to freed slot by moving the read-index.
884 free-slot management inside consumer-queue is sufficient enough
889 Saves the newly arrived slot-pointer and replace it with one of
890 the other slot-pointers which has been previously consumed and then add this
891 replaced slot to freed slot by moving the read index. This method
897 more flexibility but at cost of added free-slot management within
898 consumer. As consumer is releasing the slot in out-of-order of
904 can modify it then it should make copy of this slot in it's
905 private memory and release the actual slot. This way, application
906 is free to do anything it wants with the private slot. This
917 Once the consumer is done with consumption, the slot will be
919 the slot report that they are done with consumption then producer
920 can mark the slot as free and add it to the list of free slots for
925 The producer maintains a private meta-slot data-structure for each
926 slot to track these slots. It also maintains the list of free,
930 The slot management is not needed in consumer if they are following
932 consumer-queue implicitly does the slot management on behalf of consumers.
935 maintain the list of all slot-pointers which are currently accessible
936 and also the list of slot-pointers which are done with the use and can
941 it should be added back to the free-slot-pointers area of the consumer
957 The size of the slot is greatly dictated by the capabilities of the
960 slot will be the size of biggest data-element. If the
962 memory locations then, the slot size should be based on
963 the average data-element size. In any case, the slot size
964 must alway be a multiple of cache size and every slot should
973 when packets are small. On other hand, when slot size is small,
984 \label{sec:slot-security}
987 provided by the slot-pointers. Slot-pointers are designed to be valid
1013 producer. For example, when any consumer tries to free up the slot,
1014 the producer can verify if the consumer really holds that slot or not.