Hello Adar Dembo,
I'd like you to do a code review. Please visit
http://gerrit.cloudera.org:8080/5475
to review the following change.
Change subject: WIP: KUDU-1775 (part 3): enforce max cell size and max PK size
......................................................................
WIP: KUDU-1775 (part 3): enforce max cell size and max PK size
This adds limits on the size of any individual cell as well as a limit
on the maximum size of an encoded key.
* Large cells are known to cause problems such as KUDU-1524 (crash
during flush).
* Large PKs have been seen to cause problems where the key column's
cfile footer increases beyond the hard-coded maximum size of 64KB.
If a user attempts to insert a non-conforming row, or update a cell to
be larger than the maximum, they will receive an InvalidArgument error
for that row.
This patch takes the approach of doing the validation at the tablet
layer rather than somewhere higher up the stack. The reasoning is that
we don't want to reject an entire batch of operations due to one bad
row, and we are not well equipped to set per-row errors anywhere except
at the tablet layer.
Because this is an incompatible change (it's possible that users have
been successfully using larger cells) the limits are added as
configurable flags, but tagged as unsafe.
WIP: I want to test what happens when restarting a tablet server if a
WAL contains a non-conforming update/insert. I also imagine we have some
tests which insert non-conforming data and we'll need to bump the
appropriate flag or modify the test.
Change-Id: Ib6b94cffd9c3efbe80a4b31e9272b376a4e41d15
---
M docs/schema_design.adoc
M src/kudu/client/client-test.cc
M src/kudu/tablet/tablet.cc
M src/kudu/tablet/tablet.h
M src/kudu/tserver/tablet_server-test.cc
5 files changed, 172 insertions(+), 24 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/75/5475/1
--
To view, visit http://gerrit.cloudera.org:8080/5475
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib6b94cffd9c3efbe80a4b31e9272b376a4e41d15
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Todd Lipcon <[email protected]>
Gerrit-Reviewer: Adar Dembo <[email protected]>