Skip to content
Snippets Groups Projects
  1. Jan 28, 2025
  2. Dec 19, 2024
  3. Nov 26, 2024
    • Dmitry Ivanov's avatar
      chore(build): introduce tarantool-build to build tarantool-sys · ebb48562
      Dmitry Ivanov authored
      This patch boils down to the following improvements:
      
      * Various linkage-related shenanigans have been documented and revamped.
      * All logic to build tarantool-sys is now encapsulated in tarantool-build.
      * Most of the magic `println!`s are now encapsulated in build-rs-helpers.
      * Unsound function `export_symbols` has been dropped in favor of
        explicit linker flags (`--require-defined` for linux & `-u` for mac).
      * `TarantoolBuildRoot` is now in charge of building and linking
        tarantool libs. It defines the build tree via path helper functions.
      * Picodata's `build.rs` should be a little easier to read.
      ebb48562
  4. Nov 20, 2024
  5. Nov 14, 2024
  6. Nov 13, 2024
  7. Oct 29, 2024
  8. Oct 25, 2024
  9. Oct 23, 2024
    • Dmitry Rodionov's avatar
      chore: temporarily revert to 24.6.0 in plugin crates · 063f78ac
      Dmitry Rodionov authored
      Needed since introduction of plugin version compatibility check in
      86a08ef9. For release candidate versions
      we need to properly bump all versions. We could've bumped picodata
      version instead but for simplicity just revert to currently unreleased
      24.6.0. Ideally we should describe release candidates in our versioning
      policy.
      063f78ac
    • Dmitry Rodionov's avatar
      picodata-plugin: prepare 24.6.1-rc1 · 90b59de0
      Dmitry Rodionov authored
      The patch prepares picodata-plugin and picodata-plugin-proc-macro
      for publishing to crates.io.
      
      This includes Makefile wrapper over cargo commands and manual CI job
      
      For now minimum of required fields have been filled. We should come back
      to fill proper readmes, categories, home page etc.
      90b59de0
    • Dmitry Rodionov's avatar
      chore: rename plugin crates · 9805c3bf
      Dmitry Rodionov authored
      picoplugin -> picodata-plugin
      picoplugin_gen -> picodata-plugin-proc-macro
      9805c3bf
  10. Oct 17, 2024
    • Maksim Kaitmazian's avatar
      feat(plugins): add picodata version compatibility check · 86a08ef9
      Maksim Kaitmazian authored
      This commit embeds in plugins a new variable, containing picoplugin
      version used to build it. If this version differs from the picodata version
      when the plugin gets loaded, the loading fails with an error reporting
      the expected and the current versions. This check can be disabled via env
      PICODATA_UNSAFE_DISABLE_PLUGIN_COMPATIBILITY_CHECK.
      86a08ef9
  11. Oct 10, 2024
  12. Oct 09, 2024
  13. Sep 25, 2024
  14. Sep 24, 2024
    • Arseniy Volynets's avatar
    • Yaroslav Dynnikov's avatar
      feat: make uuids truly unique · 23cddcd0
      Yaroslav Dynnikov authored
      Up to this patch `instance_uuid` and `replicaset_uuid` were generated
      using name-based UUID v3. So all instances named `i1` in all clusters
      had the same UUID.
      
      With this patch UUIDs become random v4. Particular UUID values are
      generated in two locations:
      
      1. `start_boot` (src/lib.rs)
      2. `handle_join_request_and_wait` -> `build_instance` (src/rpc/join.rs)
      
      Function `Instance::new()` is removed in favor of explicit struct
      construction.
      23cddcd0
  15. Sep 23, 2024
  16. Sep 20, 2024
    • Dmitry Rodionov's avatar
      chore: make serde-yaml development dependency · d6bd73b8
      Dmitry Rodionov authored and Denis Smirnov's avatar Denis Smirnov committed
      
      Previous version was using yaml-rust which is marked as unmaintained.
      This gets reported by dependency scanner we use for certification.
      Though worth noting that serde-yaml itself is now archived. There is a
      promising replacement library but no need to hurry with that just yet.
      But anyway, we don't need this library in the production build, only
      for tests. So, moved it to development dependencies.
      
      Co-authored-by: Denis Smirnov's avatarDenis Smirnov <sd@picodata.io>
      Verified
      d6bd73b8
  17. Sep 16, 2024
  18. Sep 10, 2024
    • Denis Smirnov's avatar
      feat: improve SQL performance · 967e904e
      Denis Smirnov authored
      1. A better VDBE caching was implemented for local SQL.
      2. Local SQL is called via C API rather then Lua.
      3. A new prepare-unprepare fiber added to manage SQL statement
         cache.
      Verified
      967e904e
  19. Sep 09, 2024
    • Arseniy Volynets's avatar
      feat: use two round protocol for cacheable requests · 5ccdddaa
      Arseniy Volynets authored and Arseniy Volynets's avatar Arseniy Volynets committed
      - For cacheable requests, we now send only cache required data needed to
      execute the query if it is in the storage cache. If query is not in the
      storage cache, storage returns empty result with flag indicating there
      was a cache miss. Then coordinator sends the second round of requests to
      replicasets where cache miss happened. It sends the full message there.
      - Parameters for required message are now computed without compilation
      to SyntaxPlan - Fixed parameter order in SyntaxPlan
      5ccdddaa
  20. Sep 06, 2024
    • Denis Smirnov's avatar
      feat: implement SQL cache fiber · 2580cb2d
      Denis Smirnov authored
      2580cb2d
    • Denis Smirnov's avatar
      feat: move to rust API for local SQL · 2c5217ff
      Denis Smirnov authored
      Verified
      2c5217ff
    • Denis Smirnov's avatar
      feat: improve tarantool caching for motions · 3af5734b
      Denis Smirnov authored
      Previously we cached only the leaf sub-trees of the IR plan under
      the first level of motions. The problem was in temporary tables as
      we used random names for them and dropped after usage (and invalidated
      corresponding prepared statements as well). Now we use idempotent
      names for temporary tables and truncate them after usage. It allows
      us to keep prepared statements in the cache. One more thing: as we
      use the same temporary table for multiple queries, we need to use
      latch locks for the prepared statement cache. One day we'll switch
      to more granular locks (mostly for vinyl spaces), but let's use
      current approach for the start.
      
      We also removed can_be_cached flag from the code. Only DQL uses VDBE
      and needs caching, and all these queries can be cached. The only
      exception are the queries with Local and LocalSegment motion policies
      but only DML can have them. So, no need for this flag and let's make the
      code cleaner.
      3af5734b
  21. Sep 03, 2024
  22. Aug 27, 2024
  23. Aug 22, 2024
  24. Aug 15, 2024
  25. Aug 12, 2024
  26. Aug 08, 2024
  27. Jul 30, 2024
  28. Jul 25, 2024
  29. Jul 18, 2024
    • Dmitry Rodionov's avatar
      chore: remove dependency on aws-lc-rs brought by pgwire · 2630ace7
      Dmitry Rodionov authored
      The problem appeared in form of a failed debian package build. aws-lc-rs
      build script was failing with:
      
      thread 'main' panicked at /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/aws-lc-sys-0.19.0/builder/cc_builder.rs:244:13:
      Your compiler (cc) is not supported due to a memcmp related bug
      reported in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95189.We
      strongly recommend against using this compiler.
      
      Since we use system openssl we dont need to rely on these backends.
      
      Error message is probably correct, so upgrading the compiler is still a
      good idea.
      2630ace7
Loading