Skip to content
Snippets Groups Projects
  1. Apr 10, 2024
  2. Apr 09, 2024
    • godzie44's avatar
      feature: plugins · 26b11774
      godzie44 authored and Yaroslav Dynnikov's avatar Yaroslav Dynnikov committed
      Introduce a plugin system for picodata cluster.
      Plugin system contains:
      - `picoplugin` crate with plugin interfaces.
      This crate exposes plugin interfaces for user implementation and API
      that used by picodata to interact with plugin as with a code from dynamic library.
      - Support for plugin work cycle in picodata instance work cycle.
      Picodata instance interacts with running plugin by `PluginManager`
      component.
      Typically, plugins react to events that occur in instance or whole cluster.
      - New lua API with plugin CRUD actions.
          - pico.create_plugin - load a new plugin into picodata cluster
          - pico.remove_plugin - remove plugin from picodata cluster
          - pico.update_plugin_config - update plugin service configuration
      26b11774
  3. Apr 08, 2024
  4. Mar 21, 2024
  5. Mar 06, 2024
  6. Feb 26, 2024
  7. Feb 20, 2024
    • Arseniy Volynets's avatar
      refactor: move tracing from sbroad to picodata · 598ffbf4
      Arseniy Volynets authored
      - Update sbroad submodule to commit,
      with refactored tracing api: tracer
      can be provided by library user (us).
      - Use tracer that creates traces under
      admin, because traces are created randomly
      for 1% of the queries and the user may not
      have the privileges to create/modify tracing
      tables
      - Move tracing related logic to picodata repo.
      In particular, now all tables storing tracing
      - Add sql tests that were removed from sbroad
      during refactoring
      - added extra parameter 'query_id' to pico.sql
      lua api. 'query_id' is used to identify
      each query in tracing tables, if not specified
      hash function on query text is used.
      - changed signature of pico.sql to:
      pico.sql(pattern[, params, options)
      options={'traceable'=boolean,'query_id'=string}
      598ffbf4
  8. Feb 07, 2024
  9. Jan 31, 2024
  10. Jan 30, 2024
    • Dmitry Rodionov's avatar
      chore: make static build default · 1bc0604f
      Dmitry Rodionov authored
      Having dynamic build as a default was dictated by certification and now
      when we merged certification patches back to master it started to cause
      friction. So this patch makes static build the default and introduces
      dynamic_build cargo feature instead of static_build one.
      1bc0604f
  11. Jan 26, 2024
    • Feodor Alexandrov's avatar
      feat: shredding option for .xlog and .snap deletion · d48683ce
      Feodor Alexandrov authored
      1. Add a new option picodata run --shredding to enable shredding upon xlog_remove_file_impl.
      2. For test purposes additionally use the inject_errors feature to keep files after shred operation
      and allow the test code to look inside and make sure that content was really shredded.
      d48683ce
  12. Jan 22, 2024
  13. Jan 19, 2024
  14. Dec 07, 2023
  15. Dec 03, 2023
  16. Nov 24, 2023
    • Dmitry Ivanov's avatar
      feat(audit): remove irrelevant fields from log entries · e27a0b47
      Dmitry Ivanov authored
      Now the records look like this:
      
      ```
      {
        "message": "instance is starting",
        "severity": "low",
        "time": "2023-11-22T22:10:24.211+0300",
        "title": "local_startup"
      }
      {
        "message": "target grade of instance `i1` changed to Online(7)",
        "severity": "low",
        "time": "2023-11-22T22:10:24.334+0300",
        "title": "change_target_grade"
      }
      {
        "message": "current grade of instance `i1` changed to Replicated(7)",
        "severity": "medium",
        "time": "2023-11-22T22:10:24.436+0300",
        "title": "change_current_grade"
      }
      ```
      e27a0b47
  17. Nov 23, 2023
  18. Nov 06, 2023
    • Kurdakov Alexander's avatar
      feat: add tier entity · 701aa4ab
      Kurdakov Alexander authored
      Transferred replication factor from Properties table to new Tier table
      
      Instance and Replicaset belongs to tier via new field tier in _pico_instance and _pico_replicaset
      
      New cli option init-cfg with path to configuration file in yaml format. For now contains only info about tiers.
      701aa4ab
  19. Nov 03, 2023
  20. Nov 01, 2023
    • Denis Smirnov's avatar
      feat!: implement entrypoints for PG extended protocol · efeb345c
      Denis Smirnov authored
      
      BREAKING CHANGE!:
      - pico.trace() function was removed. Use pico.sql() for tracing;
      - opentelemetry tables __SBROAD_STAT and __SBROAD_QUERY were renamed
        into _SQL_STAT and _SQL_QUERY tables.
      
      Introduce enrypoints for extended PG protocol:
      
      - pg_bind: bind parameters to portal (IR) by descriptor;
      - pg_close: remove portal from the storage by descriptor;
      - pg_describe: get the portal metadata and type by descriptor;
      - pg_execute: execute portal by descriptor;
      - pg_parse: parse an SQL pattern into IR (reusing LRU),
        save IR into portal storage and return the descriptor;
      - pg_portals: get a list of portal descriptors visible
        to the current user;
      
      Co-authored-by: default avatarKaitmazian Maksim <m.kaitmazian@picodata.io>
      Verified
      efeb345c
  21. Oct 30, 2023
  22. Oct 06, 2023
  23. Oct 02, 2023
  24. Sep 21, 2023
    • Dmitry Rodionov's avatar
      SQL REPL PoC in rust without Lua · faca599c
      Dmitry Rodionov authored
      This patch adds new command `picodata sql`. Arguments are the same as `picodata connect`. The idea would be to eventually replace picodata connect with this version.
      
      Simple prerequisites for testing with auth:
      
      ```lua
      pico.create_user("Yoda", "12341234")
      pico.grant_privilege("Yoda", "execute", "role", "super")
      ```
      Super grant wont be needed in the future when access control will be tuned properly (access to system spaces, context: https://git.picodata.io/picodata/picodata/picodata/-/merge_requests/663).
      
      Then run `target/debug/picodata run` in one terminal and `target/debug/picodata sql Yoda@localhost:3301` in another one
      
      Features:
      - Usual lib readline goodies, backward/forward search etc. Provided by [rustyline](https://lib.rs/crates/rustyline)
      - Simple file based history (~/.picodata_history by default)
      - Displays result sets in ascii tables. Styling can be customized if needed. Here we're using [comfy-table](https://lib.rs/crates/comfy-table) library
      - If you type `\e` command your `$EDITOR` will be opened so you can write the query there. Once you close your editor the query will be executed (suggested by @funbringer)
      
      There are a lot of things we can add. Completion, highlighting, more special commands.
      
      Close #363 
      faca599c
  25. Aug 18, 2023
  26. Aug 01, 2023
  27. Jul 28, 2023
  28. Jul 21, 2023
  29. Jul 11, 2023
    • Yaroslav Dynnikov's avatar
      build: do cargo update · 8e034e34
      Yaroslav Dynnikov authored and Yaroslav Dynnikov's avatar Yaroslav Dynnikov committed
      Don't update blake3 version, otherwise it results in
      
      ```
      Updating constant_time_eq v0.2.5 -> v0.3.0
      
      error: package `constant_time_eq v0.3.0` cannot be built because it
      requires rustc 1.66.0 or newer, while the currently active rustc version
      is 1.65.0
      ```
      8e034e34
  30. Jul 03, 2023
  31. Jun 16, 2023
  32. Jun 05, 2023
  33. Jun 02, 2023
  34. May 04, 2023
    • Denis Smirnov's avatar
      feat: add distributed SQL support · a1ed2657
      Denis Smirnov authored
      
      Current commit introduces distributed SQL in picodata (we use
      'sbroad' library). Now it is possible to execute cluster-wide
      SQL with 'pico.sql([[query]], {params})' lua method.
      
      Current limitations:
      1. DDL is still not implemented in picodata, so space sharding
         is mocked by '_pico_space' space (we'll remove it later).
      2. We still have duplicating symbols of the Tarantool module in
         sbroad and in picodata rlibs.
      3. We need to reuse piocdata's sharding functions and handle the
         case when different spaces in the query have different sharding
         functions.
      
      Co-authored-by: Georgy Moshkin's avatarGeorgy Moshkin <gmoshkin@picodata.io>
      Verified
      a1ed2657
  35. Apr 24, 2023
Loading