feat: cancel queued and active SQLite reads
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- javascript, react-native, sqlite
Hướng nghiên cứu
Start by tracing the current JavaScript queue and native per-connection FIFO, then read SQLite's sqlite3_interrupt() documentation for cross-thread and transaction behavior. Add coverage for cancellation before admission, while queued in both layers, during a long-running query, and after completion. Done means cancelled reads reject recognizably, only their connection is interrupted, later queries still run, and connection closure remains safe.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Async reads can queue behind an older query even after their caller no longer needs the result. A screen that changes query parameters quickly may therefore wait for several obsolete reads. The current JavaScript queue and native per-connection FIFO have no operation-specific cancellation path.
Add cancellation for asynchronous read queries and prepared-statement reads. A request cancelled before it starts should leave both queues without running SQL. An active request should interrupt only its own connection and reject with a recognizable cancellation error. Handle the race where a query finishes while cancellation is requested, and make sure a late cancellation cannot interrupt the next job. Keep connection closure safe while an interrupt is in flight.
Start with read-only operations. SQLite can roll back an entire explicit transaction when an interrupted write fails, so cancellation of writes, batches, and callback transactions needs a separate contract. Test cancellation before admission, while queued in JavaScript, while queued natively, during a long-running query, and just after completion. Verify that later queries on the same connection still run.
Related: #62. SQLite documents the cross-thread and transaction behavior of sqlite3_interrupt() at https://www.sqlite.org/c3ref/interrupt.html.
- Ngôn ngữ chính
- C
- Star
- 580
- Fork
- 53
- Merge trung bình
- 1 ngày 19 giờ
- Pull request đã merge (30 ngày)
- 68
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của margelo/react-native-nitro-sqlite
-
feat: bind named SQL parametersĐang mởarea:api area:runtime enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
margelo/react-native-nitro-sqlite#402 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:api area:runtime enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 28/100
margelo/react-native-nitro-sqlite#401 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:api area:runtime enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 28/100
margelo/react-native-nitro-sqlite#399 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:api area:runtime enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
margelo/react-native-nitro-sqlite#398 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:api area:runtime enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 48/100
margelo/react-native-nitro-sqlite#397 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của margelo/react-native-nitro-sqlite
Issue tương tự
-
UB: (int) cast of a user double outside int range in dispatch / vm_index_is_int / flat_index_atĐang mởarea:runtime-vm
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
InauguralSystems/EigenScript#1748 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
wasm-micro-runtime/wasm-micro-runtime#5159 ·
Maintainer thường phản hồi trong vòng 7 ngày
-
chore: update release scheduleĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 4 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 Nửa ngày Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 1 ngày