User:Totktonada - tsafin/tarantool GitHub Wiki

I'm Alexander Turenko. Tarantool developer.

Nice ideas

  • Built-in help (issue TBD).
  • Swiss army knife to overview CI results (issue).

Tracking

Listed things, which should not stall forever in my opinion. The order is random.

Appserver and ecosystem

  • Popen track is stalled.
  • net.box connection from older to newer tarantool may fail.
  • JDBC track is stalled.
  • Tuples marshalling without reencoding track is stalled.
    • Vladimir Davydov is working on msgpack object implementation, which should resolve the problem.
  • No good Lua memory introspection tool.
  • Lua output track looks stalled.
  • fstack in avro-schema can be reverted in favor of the new hack provided by Nick Zavaritsky (perf. gain is possible).
  • Stalled PRs / issues in packpack.
  • No agreement re Lua/C function comments style (read from words 'The function has the Lua API').
  • No built-in URL encoding support.

SQL

  • Whether out extended SQL result set metainfo fit good with JDBC?
  • No general description of SQL type system (AFAIK).
  • No SQL type arithmetic AFAIK (an expression type is not result of a type arithmetic, but deduced from a value).
  • There were thoughts around treating numeric literals as decimals, but there are no work on this. I guess presence of a more wide numeric type may affect type arithmetic at whole: say, how overflows are handled.
  • No support of compound statements in SQL.

Infrastructure

  • No tarantool-release packages (but I have PoC).
  • Our docker images are in some unclear state (the link is to discussion, not about per-push / per-release deployments).

Testing

  • Not upgraded mode is not tested.
  • No tests for net.box and _vcollation bug (it's my debt).
  • Performance testing: no powerful owner.
    • Back box testing: no deep understanding of workloads.
    • Perf. testing in docker, what a hell.
    • bench.tarantool.org is far from being usable as everyday tool
  • Not all tests are run in out-of-source build.
  • No per-push testing of modules and connectors.
    • It is almost done now for particular subset of modules and connectors. Nice!
  • No testing of tarantoolctl rocks.
  • test-run way to assign a port involves races.
  • We should consider support of luatest test files in test-run.
    • It was implemented, but significant work is necessary on the luatest side (tracked in luatest issues).
  • test-run is not convenient for writing a multi instance test.

Documentation

  • Still no full merger documentation.
  • Binary protocol documentation is far from being convenient for a connector developer.
  • No good documentation how to implement a module.
  • No good documentation how to implement a connector (pitfalls and so).
  • No recipes how to work with RPM / Deb packages (different scenarious).
  • Unclear guarantees about upgrade process (it is not based on testing, right?).

Code health

  • No recipe to upgrade a partially upgraded instance.
  • libcoro is old (Igor Munkin said that there were ARM related changes).
  • libyaml is relatively old.
  • Stalled PRs and issues in many repositories (modules, connectors).
    • Things going to be better (we setup triage process for issues), but still far from looking nice. At least for pull requests.
  • We should eventually upstream most of our patches to luarocks.

Recipes

Generate module.h documentation

Generate the HTML API documentation:

cmake .
make module_api
sed -e "s%@PROJECT_.\+_DIR@/%%" Doxyfile.API.in > Doxyfile.API
doxygen Doxyfile.API

Open the API documentation in a Web browser:

xdg-open doc/api/html/index.html