Skip to content
Snippets Groups Projects
  1. Jul 13, 2023
  2. May 02, 2023
    • Denis Smirnov's avatar
      feat(POC): picodata engine · 93685c03
      Denis Smirnov authored
      Implement the picodata engine for sbroad to integrate distributed
      SQL into the picodata binary. In fact, picodata engine simple
      exports public rust functions from api.rs. On the picodata side
      they (and some lua functions) are imported and included into the
      bunary on the build phase.
      
      Current commit is POC and have some problems:
      - DDL is still not implemented in the picodata (_pico_space is mocked);
      - we include tarantool module symbols twice (first time in sbroad,
        second time in picodata binary);
      
      But anyway, it works and all these problems should be solved in the
      next commits.
      Verified
      93685c03
  3. Sep 21, 2022
  4. Sep 19, 2022
  5. Sep 15, 2022
  6. Sep 09, 2022
    • Denis Smirnov's avatar
      feat: opentelemetry · fad79ec7
      Denis Smirnov authored
      Implement opentelemetry instrumentation in sbroad.
      How to test:
      
      docker run --name jaeger -d --rm -p6831:6831/udp -p6832:6832/udp \
      -p16686:16686 -p14268:14268 jaegertracing/all-in-one:latest
      
      Then run a stress test with sbroad. The results would be available
      at http://localhost:16686/
      Verified
      fad79ec7
  7. Sep 08, 2022
  8. Aug 18, 2022
  9. Aug 02, 2022
  10. Jul 28, 2022
  11. Jul 05, 2022
  12. Jun 14, 2022
    • Denis Smirnov's avatar
      feat: implement new numeric types in IR · ecfd76c0
      Denis Smirnov authored
      We migrate from the `decimal` crate (used decQuad from decNumber
      to store the numbers) to Tarantool internal types provided by the
      Rust module. The reason was to make IR numeric values easy
      serializable to the query parameters (a part of the executor
      refactoring).
      
      The problem with Tarantool internal types is that the internal
      decNumber representation is provided by Tarantool ABI. So we always
      need Tarantool itself to use the types. It is ok for integration
      tests, but for unit tests with `cargo test` it is a problem. As a
      solution we have implemented some mocking infrastructure to build
      a static library based on the Tarantool decNumber, MsgPuck and some
      wrappers over them both to make unit tests work.
      Verified
      ecfd76c0
  13. Jun 01, 2022
  14. May 31, 2022
  15. Apr 21, 2022
    • Denis Smirnov's avatar
      feat: implement LRU cache and improve its benchmarks · 8f3d2866
      Denis Smirnov authored
      At the moment all the query ASTs are cached in the engine LRU cache.
      There is not much sense in it since we don't support parameters at
      the moment, but it would be done later.
      
      To get ready for parameters we have also added parameters support
      in the grammar, but didn't implement it in the AST code.
      Verified
      8f3d2866
  16. Apr 15, 2022
  17. Apr 12, 2022
  18. Apr 07, 2022
  19. Feb 07, 2022
  20. Jan 14, 2022
  21. Dec 28, 2021
  22. Dec 17, 2021
    • Denis Smirnov's avatar
      refactoring!: remove branch-base references · bf41f276
      Denis Smirnov authored
      BREAKING CHANGE: move from branch-based references in the tuple to
      the array-based. Also add a logical ID to all relational nodes and
      keep it in all its child tuples.
      
      Now, our reference coordination system in a tuple looks like:
      - parent relational node logical ID (we don't know actual position
        in the nodes list, so use "secondary index")
      - target - i.e. a position of the reffered node in the relational
        node's children list
      - posirtion in the reffered relational child node output tuple
      bf41f276
  23. Dec 14, 2021
  24. Dec 09, 2021
  25. Nov 30, 2021
  26. Nov 29, 2021
    • Denis Smirnov's avatar
      feat: implement IR · dc83f9e7
      Denis Smirnov authored
      At the moment IR (logical plan) is far from final release. Current
      commit fixes some point on a way to the final API and full test
      coverage.
      dc83f9e7
  27. Nov 22, 2021
    • Denis Smirnov's avatar
      feat: implement relation ir · ee45da42
      Denis Smirnov authored
      1. Implement columns (with types) and tables as a part of IR.
      2. Use serde deserialization trait to build tables from YAML files.
         It would be also helpful when writing tests for arbitrary plan
         transformations.
      ee45da42
  28. Nov 19, 2021
    • Denis Smirnov's avatar
      feat: implement values for ir · c71b5c38
      Denis Smirnov authored
      To work with Calcite and Tarantool the planner needs to store values
      in the plan leaf nodes. These values should be defined with exact types.
      At the moment we need only several primitive types:
      - boolean
      - null
      - number (decimal from decnumber library)
      - string
      
      As the planner analyzes SQL, it has to work with tree-valued logic
      (3VL). At the moment we'll need only equivalence operation, so it
      was implemented for the values in a 3VL manner.
      c71b5c38
  29. Nov 01, 2021
  30. Oct 29, 2021
Loading