dictionary size soft limit

Open Beginner friendly
#5,757 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
67/100
Issue type
Documentation
Clarity
Mostly clear
Activity status
Active
Tech stack
lua
Domain
documentation

Research direction

The issue describes dictionary column degradation and how it appears in index:info(), but names no documentation file. Start by locating the existing documentation for dictionary indexes and index:info(); check how it explains column limits and degradation. Done when that documentation explains when degradation happens, its effect on storage and scans, and how to inspect the degradation field.

Written by the indexing model from the issue text.

Description

Now on attempt to insert (replace etc) a value that does not fit into
already full dictionary column becomes degraded. In this mode we convert
a block from dictionary layout to layout with plain strings before
mutating a block.

Degraded column is still scanned using dictionary layout, but in this
case dictionary is built per scan.

Degraded column mode is introduced for technical reasons. It is not
recommended to operate in this mode. Such column will become eventually
more or less same as column with plain strings in terms of memory
consumption and performance.

Whether column is degraded is visible in index:info():

tarantool> index:info().columns.<name>.degradation
---
- dictionary overflow
...
...

The field is nil for dictionary column without degradation or
non-dictionary column.
Requested by @nshy in https://github.com/tarantool/tarantool-ee/commit/b01e5649f49d5378d7e85fa11bc0c82058b5ec1e.

Dominant language
CSS
Stars
16
Forks
49
Avg merge
5d 18h
Merged PRs (30d)
1

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from tarantool/doc

All issues in tarantool/doc

Similar issues

More Documentation issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.