nidx-binding 6.3.5.post224__tar.gz → 6.3.5.post234__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- nidx_binding-6.3.5.post234/.sqlx/query-8d33717587c6ee8f5fc339a80b1212a73d6c03e45856b1d55457fc8074709dd0.json +32 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/PKG-INFO +1 -1
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_protos/pyproject.toml +1 -1
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/pyproject.toml +1 -1
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/indexer.rs +8 -3
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/lib.rs +1 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/metrics.rs +28 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/scheduler/metrics_task.rs +7 -1
- nidx_binding-6.3.5.post234/src/utilization_tracker.rs +62 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/worker.rs +8 -4
- nidx_binding-6.3.5.post224/.sqlx/query-bfb8ae2e860e451b0868a7b1b50a451d998b2105f9fdfd307b26a1775d145e9f.json +0 -26
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-0cfce9b29547f8f5bafa6e440f86103be7b8c4ad2fd92db9ac223f4efbe23d10.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-1a561eed00f3dbe868bf5030059793300209179dc8fb73e4b57a54b5e81262fe.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-1d3fca2682e25a01143da92285297f134a6a105a96f64d87e0db3abb219855e4.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-249b3b57c27a71baa823f1fe0f0bba9c9af36f61c28f731e58beea60ec48e687.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-24cb6b683daa42d7125f862e25943ab4be7bf275cd8739f8da4859d701795e1a.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-263c8fce6db5b03bbd012fafdba6943cbee6ed7eb8976cdef4f5b01dde7ca6fd.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-2a5d92fb1638df830a4477a7cdf24e6db6b43034b7bbe74fdfb63e8afe2c4071.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-2b065a363f58caed60e3706603c1260dbf5a4c795604a5b68edda22eb07fec1b.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-3fc3cb39934683de8cd475ce1368c8373453eb1e01f81587d66b9d14b109ce6e.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-48f33b77b7c1633467b0b2efcaa1d3c207e7757e4f1d83b40d15e6ca365f7771.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-4ae09f2c08e2f324bee01bb8487a8f37678a1c5e9d327339235c50d4921a8949.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-4d7a76fa413c9ef0ce2a47ac7bb7e01d3e6a2aabded9487d21010a53efee8852.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-4fcbdd6657c7dc9b60b3a563dd41711b3dbcf72ce063427b7a01f8cddf34c244.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-577109ac00ccfbd38ecaccab94116f2f46a4caf5612afa372cded197123c1e08.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-5db25f97d8578d6d78f2f6bd4b72cc82a9b1b82805c6422d967ac63b20d99db4.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-5ec3233a3a23e926055056d46bdde17836a633066dbb5f349502648cd3ea9a60.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-66edb6ea424d8681927dcddb6bac5f1239175f4775d1f40417ba15054b0c6f19.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-6f9c6d201c1b5712efb68c363bffd3e0169c11f2a8f925e8cd4e8808599ff7b4.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-733c3ebacc86f444bf5e2dd79ade660c291e88a00fc09b722f6e2e191545874c.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-77a245aed9f6f8b9fc643efbd4b1e2e8e99bbba085e3e75a4f29321cd7b2a25c.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-7a3bf27c330c468a596e8a297cf7d8b192e31e67ecc5177c1267f579e8e247c7.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-7a7e59e47b30b12237511fd3d7da2d17b0471ad2b006af48d6a6f587c779692b.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-7dcbb33312cc9f11ae3a6d73b1ace017a9f19a8bf8f10304fc57977c8efeadff.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-7efa7c0d747afc4b6aed0586ff846c27839c3213ff7ee9f30c89b0d0f17e60e3.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-8493140d788604d498a4e48da4158708572ccc9d60185290a00d549cc84533db.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-8493bb0059b013eaca42fd10cd7d04f0d06a8acaed379eff0d23f3229edde9ee.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-87996b3d6c7a2195438d7038015b06949102bce8c7b8cd8db1f83aaf23cbe489.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-8f096d8171b89f9615d18f95d696dc9e4fb3674e103161a713cdc806f7a68506.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-917732a56ee04bf3a6e127319dda8225210869c82f9828d878162394dba4e078.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-95fe4ef93ee90733db1b67ed7987f80b5aac792f1590b979c68b418d1599eb98.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-9b67658569b343d8b4b61ae0a7dc721f367f2ba33c7b69b9e68bfd5c9bff5206.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-9c8062ea55d070afef68309e58fa987eb37fda44e1efbf68c8ba2af7846cc968.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-a06e1d9f6f95e4c4c2b98310ebddcc9d963cc033582bf2e945e8bf3a301b4247.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-a55265c9b07bd1399961a6f1e757201fd0eebe868ddaf96437111113d80fce92.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-a891a37be5c2d7cce775c2dd33726b0318fd3839beab222a1b22bc6174604207.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-a945191bb4b3e37d6823ed3ad499339d007d69983105de8567777d9daf517b28.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-abe9f7832f2bd799ac44008da031e8d8ab52d4f5fbfc2a7e3974e8873bae55b2.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-aca588cca57a85e4d7fcc40c23cd87e57d53d11ca550d78e7e3d5e39e524fcd3.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-b02f8aafc00a7724510772ac41269e368c5bccf03ef7b4590e0ef6fd1a1bf64f.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-b742e17cabe2d64617e9aa64bafc782172f7a4f8023d1b54f952a0fb39f6b2b8.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-b94e349dbc0daec57f8f8f6e9e2dffb06100b1bb2b41d297c9f3b191da37a83d.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-bd9afa22994aba671dbf7b5f89b53c2ee02f53c0442a81265786a6d52d08512f.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-be60554eca98a5899efc6b49785cecd6444a6d39afed9e4a884ce2dbf162012c.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-bf49702b506c9a1650ece1f8e8d9f14834a902f8caefafe30ded55e2790f2188.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-bfcd21ed704cd305db5c17fcdec7d92aa4ac501913c9c9514d8ff92928c0c7e7.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-c3ab694650f49a75b146fb877a92e48c4f20f0d99f70f8ec859fbb763b01a1e5.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-c55542bb9fae544d87fae6f30e0fe8a9088d12075f4442ab4fe2fcd05e472234.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-cb29a6556d35ac630ee0aa885dd7341cf9573bd3efd216ff8a887b87686b03db.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-d0a1f341a89f5f14696b10baa72db9d95551c2b7e5fc67308fd52dc03dd98a92.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-d2ad0a0ca2649c9e4873cfcc1fc66d2d07cc45d0f65c560b06d7b5f592f4fa8a.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-d6cfe78eb635ba0b89ca4021a4dc8182d18ab5b197f30149cd28488eba4c1df5.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-d729b56dea00e49dcdba8cf0001e2811da27351eabe98212db3b589f18fc6f32.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-d9658bfd4e7170b41d03f2ddf2446d0bf54171c0d39d53bf20af2b8437f2ec48.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-dbba7b3d3289425bae711aedbf73fbc3699f857f86f84d95c3b556d05c5658b0.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-dcb96b649d6d63a58efd5d445453a4f3d7869a56ff714b69bedf3d616a0473ca.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-ebd876fbf5362a5900e75bc05f2f11c73c406ef7da4e95097fc6a1c3d1b8bc54.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-eef5cc6bce1cc14eba8f3e68971724ef181e88cffcedd74673615f2026b89a62.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/.sqlx/query-ef56d5fefc5774040d1ee397beadb475f6af02768c22f0e583c74062e2e821ce.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/Cargo.lock +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/Cargo.toml +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/README.md +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/migrations/20241007163501_initial.sql +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/migrations/20241211120039_merge_job_priority.sql +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/migrations/20241211121159_basic_indexes.sql +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/migrations/20241212151105_check_segment_records.sql +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/migrations/20250110145554_in_flight_messages.sql +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_binding/Cargo.toml +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_binding/src/lib.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/Cargo.toml +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/src/fuzzy_query.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/src/lib.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/src/query_io.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/src/reader.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/src/request_types.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/src/resource_indexer.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/src/schema.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/src/search_query.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/src/search_response.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/src/set_query.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/src/stop_words.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/README.md +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/ar.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/az.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/bn.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/ca.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/ch.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/da.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/de.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/el.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/en.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/es.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/eu.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/extract.py +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/fi.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/fr.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/he.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/hu.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/id.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/it.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/kk.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/ne.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/nl.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/no.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/pt.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/ro.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/ru.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/sl.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/sv.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/tg.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/tr.json +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/tests/common/mod.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/tests/reader.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_protos/Cargo.toml +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_protos/build.py +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_protos/build.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_protos/src/lib.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_protos/src/nidx.proto +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_relation/Cargo.toml +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_relation/src/graph_collector.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_relation/src/graph_query_parser.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_relation/src/io_maps.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_relation/src/lib.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_relation/src/reader.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_relation/src/resource_indexer.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_relation/src/schema.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_relation/src/top_unique_n.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_relation/tests/common/mod.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_relation/tests/test_graph_query_parser_search.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_relation/tests/test_graph_search.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_relation/tests/test_reader.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_relation/tests/test_writer.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_tantivy/Cargo.toml +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_tantivy/src/index_reader.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_tantivy/src/lib.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_tests/Cargo.toml +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_tests/src/graph.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_tests/src/lib.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_text/Cargo.toml +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_text/src/lib.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_text/src/prefilter.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_text/src/query_io.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_text/src/reader.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_text/src/request_types.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_text/src/resource_indexer.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_text/src/schema.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_text/src/search_query.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_text/tests/common/mod.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_text/tests/test_flow.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_text/tests/test_search.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_text/tests/test_streaming.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_types/Cargo.toml +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_types/src/lib.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_types/src/prefilter.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_types/src/query_language.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/Cargo.toml +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/config.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/data_point/disk_hnsw.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/data_point/mod.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/data_point/node.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/data_point/ops_hnsw.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/data_point/params.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/data_point/ram_hnsw.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/data_point/tests.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/data_point_provider/mod.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/data_point_provider/reader.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/data_types/data_store.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/data_types/mod.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/data_types/trie.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/data_types/trie_ram.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/formula/mod.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/indexer.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/inverted_index/fst_index.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/inverted_index/map.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/inverted_index.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/lib.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/query_io.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/request_types.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/utils.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/vector_types/dense_f32.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/src/vector_types/mod.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/tests/common/mod.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/tests/test_basic_search.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_vector/tests/test_hidden.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/api/grpc.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/api/shards.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/api.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/control.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/errors.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/grpc_server.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/import_export.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/main.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/metadata/deletion.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/metadata/index.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/metadata/index_request.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/metadata/merge_job.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/metadata/segment.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/metadata/shard.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/metadata.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/scheduler/audit_task.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/scheduler/log_merge.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/scheduler/merge_task.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/scheduler/purge_tasks.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/scheduler/vector_merge.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/scheduler.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/searcher/grpc.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/searcher/index_cache.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/searcher/query_language.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/searcher/query_planner.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/searcher/shard_search.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/searcher/shard_selector.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/searcher/shard_suggest.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/searcher/streams.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/searcher/sync.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/searcher.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/segment_store.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/settings.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/telemetry/duration_layer.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/telemetry/log_format.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/telemetry/middleware.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/telemetry.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/src/tool.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/tests/common/mod.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/tests/common/services.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/tests/test_date_range_search.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/tests/test_search_filtering.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/tests/test_search_relations.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/tests/test_search_sorting.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/tests/test_searcher_cluster.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/tests/test_security_search.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/tests/test_shards.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/tests/test_shards_api.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/tests/test_suggest.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/tests/test_synced_searcher.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/tests/test_vector_normalization.rs +0 -0
- {nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/tests/test_vectorsets.rs +0 -0
@@ -0,0 +1,32 @@
|
|
1
|
+
{
|
2
|
+
"db_name": "PostgreSQL",
|
3
|
+
"query": "\n SELECT\n COUNT(*) FILTER (WHERE started_at IS NULL AND enqueued_at < NOW() - INTERVAL '1 minute') AS \"queued!\",\n COUNT(*) FILTER (WHERE started_at IS NULL AND enqueued_at > NOW() - INTERVAL '1 minute') AS \"recently_queued!\",\n COUNT(*) FILTER (WHERE started_at IS NOT NULL) AS \"running!\"\n FROM merge_jobs;\n ",
|
4
|
+
"describe": {
|
5
|
+
"columns": [
|
6
|
+
{
|
7
|
+
"ordinal": 0,
|
8
|
+
"name": "queued!",
|
9
|
+
"type_info": "Int8"
|
10
|
+
},
|
11
|
+
{
|
12
|
+
"ordinal": 1,
|
13
|
+
"name": "recently_queued!",
|
14
|
+
"type_info": "Int8"
|
15
|
+
},
|
16
|
+
{
|
17
|
+
"ordinal": 2,
|
18
|
+
"name": "running!",
|
19
|
+
"type_info": "Int8"
|
20
|
+
}
|
21
|
+
],
|
22
|
+
"parameters": {
|
23
|
+
"Left": []
|
24
|
+
},
|
25
|
+
"nullable": [
|
26
|
+
null,
|
27
|
+
null,
|
28
|
+
null
|
29
|
+
]
|
30
|
+
},
|
31
|
+
"hash": "8d33717587c6ee8f5fc339a80b1212a73d6c03e45856b1d55457fc8074709dd0"
|
32
|
+
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: nidx_binding
|
3
|
-
Version: 6.3.5.
|
3
|
+
Version: 6.3.5.post234
|
4
4
|
Classifier: Programming Language :: Rust
|
5
5
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
6
6
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
@@ -4,7 +4,7 @@ build-backend = "pdm.backend"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "nidx_protos"
|
7
|
-
version = "6.3.5.
|
7
|
+
version = "6.3.5.post234"
|
8
8
|
license = { text = "AGPL" }
|
9
9
|
description = "Protobuf definitions for nucliadb/nidx"
|
10
10
|
authors = [ { name = "Nuclia", email = "nucliadb@nuclia.com" }]
|
@@ -13,7 +13,7 @@ classifiers = [
|
|
13
13
|
"Programming Language :: Python :: Implementation :: CPython",
|
14
14
|
"Programming Language :: Python :: Implementation :: PyPy",
|
15
15
|
]
|
16
|
-
version = "6.3.5.
|
16
|
+
version = "6.3.5.post234"
|
17
17
|
|
18
18
|
[project.urls]
|
19
19
|
Homepage = "https://nuclia.com"
|
@@ -42,10 +42,9 @@ use crate::errors::NidxError;
|
|
42
42
|
use crate::grpc_server::GrpcServer;
|
43
43
|
use crate::metrics::IndexKindLabels;
|
44
44
|
use crate::metrics::OperationStatusLabels;
|
45
|
-
use crate::metrics::indexer
|
46
|
-
use crate::metrics::indexer::PER_INDEX_INDEXING_TIME;
|
47
|
-
use crate::metrics::indexer::TOTAL_INDEXING_TIME;
|
45
|
+
use crate::metrics::indexer::*;
|
48
46
|
use crate::segment_store::pack_and_upload;
|
47
|
+
use crate::utilization_tracker::UtilizationTracker;
|
49
48
|
use crate::{Settings, metadata::*};
|
50
49
|
|
51
50
|
#[cfg(feature = "telemetry")]
|
@@ -138,7 +137,12 @@ pub async fn run_nats(settings: Settings, shutdown: CancellationToken) -> anyhow
|
|
138
137
|
None => tempfile::env::temp_dir(),
|
139
138
|
};
|
140
139
|
|
140
|
+
let utilization = UtilizationTracker::new(|busy, duration| {
|
141
|
+
INDEXING_BUSY.get_or_create(&busy.into()).inc_by(duration.as_secs_f64());
|
142
|
+
});
|
143
|
+
|
141
144
|
while !shutdown.is_cancelled() {
|
145
|
+
utilization.idle().await;
|
142
146
|
let sub_msg = tokio::select! {
|
143
147
|
sub_msg = subscription.next() => sub_msg,
|
144
148
|
_ = shutdown.cancelled() => { return Ok(()) }
|
@@ -164,6 +168,7 @@ pub async fn run_nats(settings: Settings, shutdown: CancellationToken) -> anyhow
|
|
164
168
|
continue;
|
165
169
|
}
|
166
170
|
|
171
|
+
utilization.busy().await;
|
167
172
|
let span = info_span!("indexer_message", ?seq);
|
168
173
|
let (msg, acker) = msg.split();
|
169
174
|
|
@@ -127,6 +127,31 @@ impl OperationStatusLabels {
|
|
127
127
|
}
|
128
128
|
}
|
129
129
|
|
130
|
+
#[derive(Clone, Debug, PartialEq, Eq, Hash, EncodeLabelValue)]
|
131
|
+
enum Utilization {
|
132
|
+
Free,
|
133
|
+
Busy,
|
134
|
+
}
|
135
|
+
|
136
|
+
#[derive(Clone, Debug, EncodeLabelSet, PartialEq, Eq, Hash)]
|
137
|
+
pub struct UtilizationLabels {
|
138
|
+
status: Utilization,
|
139
|
+
}
|
140
|
+
|
141
|
+
impl From<bool> for UtilizationLabels {
|
142
|
+
fn from(busy: bool) -> Self {
|
143
|
+
if busy {
|
144
|
+
Self {
|
145
|
+
status: Utilization::Busy,
|
146
|
+
}
|
147
|
+
} else {
|
148
|
+
Self {
|
149
|
+
status: Utilization::Free,
|
150
|
+
}
|
151
|
+
}
|
152
|
+
}
|
153
|
+
}
|
154
|
+
|
130
155
|
pub mod common {
|
131
156
|
metrics! {
|
132
157
|
SPAN_DURATION: Family<Vec<(String, String)>, Histogram>{exponential_buckets(0.001, 2.0, 20)} as "span_duration_seconds" ("Duration of a tracing span"),
|
@@ -137,6 +162,7 @@ pub mod scheduler {
|
|
137
162
|
#[derive(Clone, Debug, EncodeLabelValue, PartialEq, Eq, Hash)]
|
138
163
|
pub enum JobState {
|
139
164
|
Queued,
|
165
|
+
RecentlyQueued,
|
140
166
|
Running,
|
141
167
|
}
|
142
168
|
|
@@ -169,6 +195,7 @@ pub mod indexer {
|
|
169
195
|
INDEXING_COUNTER: Family<OperationStatusLabels, Counter> as "indexer_message_count" ("Number of indexing operations per status"),
|
170
196
|
TOTAL_INDEXING_TIME: Histogram[exponential_buckets(0.01, 2.0, 12)] as "total_indexing_time_seconds" ("Time it took to process an entire index message"),
|
171
197
|
PER_INDEX_INDEXING_TIME: Family<IndexKindLabels, Histogram>{exponential_buckets(0.01, 2.0, 12)} as "indexing_time_seconds" ("Time it took to index a resource to an index"),
|
198
|
+
INDEXING_BUSY: Family<UtilizationLabels, Counter::<f64, AtomicU64>> as "indexer_utilization_seconds" ("Time spent in free/busy status"),
|
172
199
|
}
|
173
200
|
}
|
174
201
|
|
@@ -176,5 +203,6 @@ pub mod worker {
|
|
176
203
|
metrics! {
|
177
204
|
MERGE_COUNTER: Family<OperationStatusLabels, Counter> as "merge_job_count" ("Number of merge jobs per status"),
|
178
205
|
PER_INDEX_MERGE_TIME: Family<IndexKindLabels, Histogram>{exponential_buckets(1.0, 2.0, 12)} as "merge_time_seconds" ("Time it took to run a merge job"),
|
206
|
+
WORKER_BUSY: Family<UtilizationLabels, Counter::<f64, AtomicU64>> as "merge_worker_utilization_seconds" ("Time spent in free/busy status"),
|
179
207
|
}
|
180
208
|
}
|
@@ -30,7 +30,8 @@ pub async fn update_merge_job_metric(metadb: &NidxMetadata) -> anyhow::Result<()
|
|
30
30
|
let job_states = sqlx::query!(
|
31
31
|
r#"
|
32
32
|
SELECT
|
33
|
-
COUNT(*) FILTER (WHERE started_at IS NULL) AS "queued!",
|
33
|
+
COUNT(*) FILTER (WHERE started_at IS NULL AND enqueued_at < NOW() - INTERVAL '1 minute') AS "queued!",
|
34
|
+
COUNT(*) FILTER (WHERE started_at IS NULL AND enqueued_at > NOW() - INTERVAL '1 minute') AS "recently_queued!",
|
34
35
|
COUNT(*) FILTER (WHERE started_at IS NOT NULL) AS "running!"
|
35
36
|
FROM merge_jobs;
|
36
37
|
"#
|
@@ -42,6 +43,11 @@ pub async fn update_merge_job_metric(metadb: &NidxMetadata) -> anyhow::Result<()
|
|
42
43
|
state: JobState::Queued,
|
43
44
|
})
|
44
45
|
.set(job_states.queued);
|
46
|
+
metrics::scheduler::QUEUED_JOBS
|
47
|
+
.get_or_create(&JobFamily {
|
48
|
+
state: JobState::RecentlyQueued,
|
49
|
+
})
|
50
|
+
.set(job_states.queued);
|
45
51
|
metrics::scheduler::QUEUED_JOBS
|
46
52
|
.get_or_create(&JobFamily {
|
47
53
|
state: JobState::Running,
|
@@ -0,0 +1,62 @@
|
|
1
|
+
// Copyright (C) 2021 Bosutech XXI S.L.
|
2
|
+
//
|
3
|
+
// nucliadb is offered under the AGPL v3.0 and as commercial software.
|
4
|
+
// For commercial licensing, contact us at info@nuclia.com.
|
5
|
+
//
|
6
|
+
// AGPL:
|
7
|
+
// This program is free software: you can redistribute it and/or modify
|
8
|
+
// it under the terms of the GNU Affero General Public License as
|
9
|
+
// published by the Free Software Foundation, either version 3 of the
|
10
|
+
// License, or (at your option) any later version.
|
11
|
+
//
|
12
|
+
// This program is distributed in the hope that it will be useful,
|
13
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
// GNU Affero General Public License for more details.
|
16
|
+
//
|
17
|
+
// You should have received a copy of the GNU Affero General Public License
|
18
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
19
|
+
//
|
20
|
+
|
21
|
+
use std::time::{Duration, Instant};
|
22
|
+
|
23
|
+
use tokio::{sync::mpsc::*, time::sleep};
|
24
|
+
|
25
|
+
pub struct UtilizationTracker {
|
26
|
+
channel: Sender<bool>,
|
27
|
+
}
|
28
|
+
|
29
|
+
impl UtilizationTracker {
|
30
|
+
pub fn new(publish: impl Fn(bool, Duration) + Send + 'static) -> Self {
|
31
|
+
let (tx, rx) = channel(10);
|
32
|
+
tokio::spawn(run(publish, rx));
|
33
|
+
Self { channel: tx }
|
34
|
+
}
|
35
|
+
|
36
|
+
pub async fn busy(&self) {
|
37
|
+
let _ = self.channel.send(true).await;
|
38
|
+
}
|
39
|
+
|
40
|
+
pub async fn idle(&self) {
|
41
|
+
let _ = self.channel.send(false).await;
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
async fn run(publish: impl Fn(bool, Duration), mut channel: Receiver<bool>) {
|
46
|
+
let mut busy = false;
|
47
|
+
let mut since = Instant::now();
|
48
|
+
loop {
|
49
|
+
tokio::select! {
|
50
|
+
rxed = channel.recv() => {
|
51
|
+
let Some(rxed) = rxed else { break };
|
52
|
+
publish(busy, since.elapsed());
|
53
|
+
busy = rxed;
|
54
|
+
since = Instant::now();
|
55
|
+
},
|
56
|
+
_ = sleep(Duration::from_secs(30)) => {
|
57
|
+
publish(busy, since.elapsed());
|
58
|
+
since = Instant::now();
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
@@ -39,11 +39,9 @@ use tracing::*;
|
|
39
39
|
use crate::{
|
40
40
|
NidxMetadata, Settings,
|
41
41
|
metadata::{Deletion, Index, IndexKind, MergeJob, NewSegment, Segment},
|
42
|
-
metrics::{
|
43
|
-
IndexKindLabels, OperationStatusLabels,
|
44
|
-
worker::{MERGE_COUNTER, PER_INDEX_MERGE_TIME},
|
45
|
-
},
|
42
|
+
metrics::{IndexKindLabels, OperationStatusLabels, worker::*},
|
46
43
|
segment_store::{download_segment, pack_and_upload},
|
44
|
+
utilization_tracker::UtilizationTracker,
|
47
45
|
};
|
48
46
|
|
49
47
|
pub async fn run(settings: Settings, shutdown: CancellationToken) -> anyhow::Result<()> {
|
@@ -55,9 +53,14 @@ pub async fn run(settings: Settings, shutdown: CancellationToken) -> anyhow::Res
|
|
55
53
|
None => tempfile::env::temp_dir(),
|
56
54
|
};
|
57
55
|
|
56
|
+
let utilization = UtilizationTracker::new(|busy, duration| {
|
57
|
+
WORKER_BUSY.get_or_create(&busy.into()).inc_by(duration.as_secs_f64());
|
58
|
+
});
|
59
|
+
|
58
60
|
while !shutdown.is_cancelled() {
|
59
61
|
let job = MergeJob::take(&meta.pool).await?;
|
60
62
|
if let Some(job) = job {
|
63
|
+
utilization.busy().await;
|
61
64
|
let span = info_span!("worker_job", ?job.id);
|
62
65
|
info!(job.id, "Running job");
|
63
66
|
|
@@ -85,6 +88,7 @@ pub async fn run(settings: Settings, shutdown: CancellationToken) -> anyhow::Res
|
|
85
88
|
// Stop keep alives
|
86
89
|
keepalive.abort();
|
87
90
|
} else {
|
91
|
+
utilization.idle().await;
|
88
92
|
debug!("No jobs, waiting for more");
|
89
93
|
tokio::select! {
|
90
94
|
_ = tokio::time::sleep(Duration::from_secs(5)) => {},
|
@@ -1,26 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"db_name": "PostgreSQL",
|
3
|
-
"query": "\n SELECT\n COUNT(*) FILTER (WHERE started_at IS NULL) AS \"queued!\",\n COUNT(*) FILTER (WHERE started_at IS NOT NULL) AS \"running!\"\n FROM merge_jobs;\n ",
|
4
|
-
"describe": {
|
5
|
-
"columns": [
|
6
|
-
{
|
7
|
-
"ordinal": 0,
|
8
|
-
"name": "queued!",
|
9
|
-
"type_info": "Int8"
|
10
|
-
},
|
11
|
-
{
|
12
|
-
"ordinal": 1,
|
13
|
-
"name": "running!",
|
14
|
-
"type_info": "Int8"
|
15
|
-
}
|
16
|
-
],
|
17
|
-
"parameters": {
|
18
|
-
"Left": []
|
19
|
-
},
|
20
|
-
"nullable": [
|
21
|
-
null,
|
22
|
-
null
|
23
|
-
]
|
24
|
-
},
|
25
|
-
"hash": "bfb8ae2e860e451b0868a7b1b50a451d998b2105f9fdfd307b26a1775d145e9f"
|
26
|
-
}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/migrations/20241007163501_initial.sql
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/src/request_types.rs
RENAMED
File without changes
|
{nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/src/resource_indexer.rs
RENAMED
File without changes
|
File without changes
|
{nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/src/search_query.rs
RENAMED
File without changes
|
{nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/src/search_response.rs
RENAMED
File without changes
|
File without changes
|
File without changes
|
{nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/README.md
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/stop_words/extract.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{nidx_binding-6.3.5.post224 → nidx_binding-6.3.5.post234}/nidx_paragraph/tests/common/mod.rs
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|