GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  MR::TARANTOOL::BOX::SINGLETON (3)

.ds Aq ’

NAME

MR::Tarantool::Box::Singleton - A singleton wrapper for MR::Tarantool::Box.

Provides connection-persistence and replica fallback. Please read "MR::Tarantool::Box manual" first.

CONTENTS

SYNOPSIS



    package Some::Tarantool::Box::Singleton;
    use MR::Tarantool::Box::Singleton;
    use base MR::Tarantool::Box::Singleton;

    BEGIN { # generates "TUPLE_$field_name" constants, and methods: FIELDS, FIELDS_HASH
        __PACKAGE__->mkfields(qw/ id f1 f2 f3 field4 f5 f6 f7 misc_string /); # applicable for DEFAULT_SPACE only
    }

    sub SERVER   { Some::Config->GetBoxServer()   }
    sub REPLICAS { Some::Config->GetBoxReplicas() }

    sub DEFAULT_SPACE { 0 }

    sub SPACES   {[{
        space         => 0,
        indexes => [ {
            index_name   => primary_id,
            keys         => [TUPLE_id],
        }, {
            index_name   => secondary_f1f2,
            keys         => [TUPLE_f1, TUPLE_f2],
        }, ],
        format        => QqLlSsCc&,
        default_index => primary_id,
    }, {
        space         => 1,
        indexes => [ {
            index_name   => primary_id,
            keys         => [0],
        }, ],
        format        => &&&&,
        fields        => [qw/ string1 str2 s3 s4 /],
    }]}



DESCRIPTION

    METHODS

mkfields



    BEGIN {
        $CLASS->mkfields(@names);
    }



o Generates constants TUPLE_$fieldname => $fieldposition in $CLASS. Just Like if you say use constant TUPLE_id => 0, TUPLE_f1 => 1, ...;
o Generates $CLASS variable @fields containing field names, and a $CLASS method FIELDS returning @fields.
o Generates $CLASS variable %fields containing field names mapping to positions, and a $CLASS method FIELDS_HASH returning \%fields.
o These @fields are applied to the DEFAULT_SPACE, if fields were not set explicitly for that space.
declare_stored_procedure


    $CLASS->declare_stored_procedure(%args);
   
    $CLASS->declare_stored_procedure(
        name             => "box.do.something",                        # internal procedure name, in da box
        method_name      => "CallMyTestingStoredProcedure",            # will generate method named
        options          => { default => options },                    # MR::Tarantool::Box->Call \%options
        params           => [ qw{ P1 P2 P3 Param4 }],                  # names
   
        unpack_format    => "&LSC(L$)*",
   
        params_format    => [qw{ C S L a* }],
        params_default   => [ 1, 2, undef, the_default ],            # undefs are mandatory params
    );
   
    ...
   
    my $data = $CLASS->CallMyTestingStoredProcedure(
        P1 => $val1,
        P2 => $val2,
        P3 => $val3,
        Param4 => $val3,
        { option => $value }, # optional
    ) or warn $CLASS->ErrorStr;



Declare a stored procedure. This generates $CLASS method $args{method_name} which calls Tarantool/Box procedure $args{name}, using $args{options} as default \%options for MR::Tarantool::Box->Call call. The generated method has the following prototype:


    $CLASS->CallMyTestingStoredProcedure( %sp_params, \%optional_options );



Parameters description:
<B>B>%args<B>B>:
<B>nameB> => $tarantool_box_sp_name The name of procedure in Tarantool/Box to call.
<B>method_nameB> => $class_method_name Class method name to generate.
<B>optionsB> => \%options Options to pass to MR::Taranatool::Box-Call|MR::Taranatool::Box/Call> method.
<B>paramsB> => \@names Procedure input parameters’ names
<B>params_defaultB> => \@defaults Procedure input parameters default values. Undefined or absent value makes its parameter mandatory.
<B>params_formatB> => \@format pack()-compatible format to pack input parameters. Must match params.
<B>unpack_formatB> => $format pack()-compatible format to unpack procedure output.
<B>B>%sp_params<B>B>: Name => $value pairs.
<B>B>%optional_options<B>B>: Options to pass to MR::Taranatool::Box-Call|MR::Taranatool::Box/Call> method. This overrides %options values key-by-key.
Configuration methods
<B>SERVERB> Must return a string of ip:port of master server.
<B>REPLICASB> Must return a comma separated string of ip:port pairs of replica servers (see is_replica). Server is chosen from the list randomly.
<B>MR_TARANTOOL_BOX_CLASSB> Must return name of the class implementing MR::Tarantool::Box interface, or it’s descendant.
<B>SPACESB>, <B>RAISEB>, <B>TIMEOUTB>, <B>SELECT_TIMEOUTB>, <B>RETRYB>, <B>SELECT_RETRYB>, <B>SOFT_RETRYB>, <B>DEBUGB> See corresponding arguments of MR::Tarantool::Box-new|MR::Tarantool::Box/new> method.
Add, Insert, Replace, UpdateMulti, Delete

These methods operate on SERVER only. See corresponding methods of MR::Tarantool::Box class.

Select, Call

These methods operate on SERVER at first, and then <B>mayB> try to query REPLICAS.

See corresponding methods of MR::Tarantool::Box class.

These methods have additional %options params:
<B>is_replicaB> => \$is_result_from_replica If this option is set, then if the query to SERVER fails, REPLICAS will be queried one-by-one until query succeeds or the list ends, and $is_result_from_replica will be set to true, no matter whether any query succeeds or not.
Error, ErrorStr

Return error code or description (see <MR::Tarantool::Box|MR::Tarantool::Box/Error>).

LICENCE AND COPYRIGHT

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

SEE ALSO

<http://tarantool.org>

MR::Tarantool::Box

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 MR::TARANTOOL::BOX::SINGLETON (3) 2012-05-17

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.