Ok, that makes sense. This is a scan-time iterator. The data will be about
18kb in length. The data is a new row that was just inserted into the
table, that's going to be used as input in a computation with a bunch of
other rows. Are you saying it'd be better to read that row in the init
method of the Iterator on the tablet servers, vs passing the data in from
the client? What's the best way to do that?

On Sun, May 2, 2021 at 10:32 PM Christopher <[email protected]> wrote:

> Iterator parameters are passed as strings, so you have to encode
> binary data if you need to send that. The limit should be reasonable,
> but there's no hard-coded limit. If you are storing options for an
> iterator configured on a table, one would expect it to be able to be
> small enough to be stored easily in a ZooKeeper node, possibly
> alongside other options and table configuration, so it shouldn't be
> big enough to make ZooKeeper have trouble. If you are passing the
> option as part of a scan-time iterator, it should fit in an RPC
> message over Thrift.
>
> I would keep them small (a few hundred characters or less), no more
> than a few thousand, if you really need to. If you need to pass large
> parameters, consider passing them indirectly, like passing the name of
> a file in HDFS that stores the binary data that the iterator reads
> when initialized.
>
> Your experience will vary depending on the configuration of your
> system's components and the hardware resources your machine has
> available.
>
> On Sun, May 2, 2021 at 8:39 PM Sanjay Deshmukh <[email protected]> wrote:
> >
> > Is there a limit to how long an Iterator parameter can be? And does it
> have to be a String, or is there a way to send arbitrary binary without
> encoding it in a string?
> >
> >
> > --
> > Sanjay Deshmukh
> > [email protected]
>


-- 
Sanjay Deshmukh
[email protected]

Reply via email to