-
Notifications
You must be signed in to change notification settings - Fork 173
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Initial implementation of file-backed durable slab storage #221
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
will look at rest later
src/datapool/datapool_pmem.c
Outdated
uint64_t size; | ||
uint64_t flags; | ||
uint8_t unused[DATAPOOL_HEADER_LEN - 32]; | ||
struct { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's not really clear to me why these need to be in their own structs, rather than adding a user_data member
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And it should be the other way around. The signature and version should be first thing in the file. If only so that magic file isn't excessively complicated.
Now that I think about it, we should also add user_signature
or a layout
field, so that when there are two pelikan database files we can programmatically distinguish between them, and refuse to open, e.g., cuckoo hashtable in the slab engine, avoiding a segfault.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am working on it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done. User signature field was added.
@@ -41,3 +41,14 @@ datapool_size(struct datapool *pool) | |||
return cc_alloc_usable_size(pool); | |||
} | |||
|
|||
void |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
would appreciate comments to document why empty/unused functions are there
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
96eeea9
to
328ca05
Compare
328ca05
to
784946d
Compare
I updated this PR:
I am aware that number of changes is pretty big and could be problematic during code review, so I reorganize the whole Pull Request to sort it by commits. |
da160d2
to
42a2214
Compare
To enable durable storage, provide a path to a file in "slab_datapool" config option. If no file is provided, the datapool falls back to shared memory.
- USE_PMEM configuration allows to restore hashtable storage
- add user signature to distinguish different datapools
- add datapool_set_user_data/datapool_get_user_data to save specific user data in datapool header
- add prefault option to avoid page faults
Co-authored-by: Tomasz Idczak <tomasz.idczak@intel.com> Co-authored-by: Katarzyna Wasiuta <katarzyna.wasiuta@intel.com> Co-authored-by: Pawel Karpinski <pawel.karpinski@intel.com>
42a2214
to
2a3bf03
Compare
I rebase the branch regarding commit 35b5218 |
6b1d8d5 Improve the Rust build story (twitter#240) 5955d6b move nodelay setting to the server socket, and accepted connections will inherit that (twitter#238) aafd20f formatting (twitter#237) 3b5c069 Update ccommon_rs to use bytes v5.0 (twitter#235) df74087 Address clippy lints in rust code (twitter#234) 7c5bbd1 Make metrics and options Send + Sync (twitter#233) c2e617e Ensure that manually implemented C options use the correct name (twitter#232) 6e76741 Add some docs b5b4c5a Change check_pipe to use nanosleep instead of usleep (twitter#231) eb0a389 Use name of field instead of description for C metrics (twitter#230) 16ddc76 Fix broken buf impls (twitter#229) eefcdcb Avoid redundant rebuilds of rust packages in CI (twitter#228) 33f62a8 Update bindgen to also generate bindings recursively (twitter#227) 27ffc7c Implement bytes::Buf and Bytes::ButMut on Buf and OwnedBuf (twitter#226) f873930 Various small bugfixes and usability improvements for rust code (twitter#225) 37a1ecd Port option parsing module to Rust (twitter#224) 38f7556 Fix failed test detection (twitter#215) 0ab1604 Conditionally use std::any::type_name if it's supported (twitter#223) 98176d3 Backport changes from twitter#265 (twitter#222) ba54096 Remove test for removed rust logging functionality (twitter#221) 519118d Rewrite cmake cargo build wrapper (twitter#220) 5d23b3a Fix some small typos found in twitter#263 (twitter#219) 475dda7 Clean up logging shim (twitter#218) 1d28dd2 Expand rust bindings to add options, metrics, and ccbox (twitter#217) 88b5400 Upstream changes from twitter#261 (twitter#216) 4e99e63 fix a bug and change how check is found (twitter#214) 54067ef slightly simplify accept error-handling logic (twitter#210) e9fe980 Fix synchronize ccommon with pelikan deps/ccommon (twitter#212) 7eb6424 Cleanup libcheck related code (twitter#211) 683bc1a cc_bstring simplify and fix (twitter#207) 8737d99 continue on server socket on non-blocking errors (twitter#209) 2a62281 add atoi64 to bstring (twitter#206) f71c657 cc_option simplify _allowed_in_name (twitter#205) 24e3131 Add ITT instrumentation option (twitter#204) 236c98d Fix docs (twitter#200) e58f6a8 cc_array and cc_ring_array NULL fixes (twitter#201) 1c8df42 Add basic support of build type (twitter#199) 7107988 Fix now_ns() (twitter#198) da240e5 cc: extend cc_util module (twitter#196) 4846b15 Fix TAILQ_REINIT (twitter#195) 4f5dbb0 Update Cmake version to 2.8 (twitter#197) 2e6f78a cc_mm use OS_DARWIN macro to detect OS (twitter#194) 57acaf6 cc: extend queue module (twitter#193) a64ada2 cc: extend duration module (twitter#192) b117632 reverting CMake file changes (twitter#191) dea5bee backport changes made to ccommon in pelikan (twitter#190) a4c0334 add linebreak to stats_log() (twitter#188) 05eb03e fix inconsistent naming and bump version (twitter#187) 4acc53a Stats to file (twitter#186) 2168fec minimize osx build config (twitter#185) 42b24de Simplify rust options, specify fewer output targets (twitter#183) c9fa905 update CMakeRust used to latest version, tweaks to make build work (twitter#184) 2ef0163 Reorder dependency includes in cmake, don't parallel build (twitter#182) a6a54d9 remove endian-specific logic from str*cmp (twitter#177) 4c0668b epoll_create* ignores size hint in newer kernels, switch to new API (twitter#179) c9c5ee5 improve cc_bstring string literal and cstring names (twitter#176) 0184d73 Add unit tests for buffer, fix buf/dbuf bugs and refactor (twitter#174) d7dab43 create a .cargo/config so intellij uses the same target dir as cmake (twitter#173) e710712 use accept4 for tcp_accept when available (twitter#171) 21ba10e Remove cargo lock for shared lib, closes twitter#169 (twitter#172) 24660f1 update style guide (twitter#170) 17baf1e Per thread logging (twitter#168) git-subtree-dir: deps/ccommon git-subtree-split: 6b1d8d56b214e2a9d448625fe53303d57b4ac6d1
55769cc restore cmake for rust libraries (twitter#241) 6b1d8d5 Improve the Rust build story (twitter#240) 5955d6b move nodelay setting to the server socket, and accepted connections will inherit that (twitter#238) aafd20f formatting (twitter#237) 3b5c069 Update ccommon_rs to use bytes v5.0 (twitter#235) df74087 Address clippy lints in rust code (twitter#234) 7c5bbd1 Make metrics and options Send + Sync (twitter#233) c2e617e Ensure that manually implemented C options use the correct name (twitter#232) 6e76741 Add some docs b5b4c5a Change check_pipe to use nanosleep instead of usleep (twitter#231) eb0a389 Use name of field instead of description for C metrics (twitter#230) 16ddc76 Fix broken buf impls (twitter#229) eefcdcb Avoid redundant rebuilds of rust packages in CI (twitter#228) 33f62a8 Update bindgen to also generate bindings recursively (twitter#227) 27ffc7c Implement bytes::Buf and Bytes::ButMut on Buf and OwnedBuf (twitter#226) f873930 Various small bugfixes and usability improvements for rust code (twitter#225) 37a1ecd Port option parsing module to Rust (twitter#224) 38f7556 Fix failed test detection (twitter#215) 0ab1604 Conditionally use std::any::type_name if it's supported (twitter#223) 98176d3 Backport changes from twitter#265 (twitter#222) ba54096 Remove test for removed rust logging functionality (twitter#221) 519118d Rewrite cmake cargo build wrapper (twitter#220) 5d23b3a Fix some small typos found in twitter#263 (twitter#219) 475dda7 Clean up logging shim (twitter#218) 1d28dd2 Expand rust bindings to add options, metrics, and ccbox (twitter#217) 88b5400 Upstream changes from twitter#261 (twitter#216) 4e99e63 fix a bug and change how check is found (twitter#214) 54067ef slightly simplify accept error-handling logic (twitter#210) e9fe980 Fix synchronize ccommon with pelikan deps/ccommon (twitter#212) 7eb6424 Cleanup libcheck related code (twitter#211) 683bc1a cc_bstring simplify and fix (twitter#207) 8737d99 continue on server socket on non-blocking errors (twitter#209) 2a62281 add atoi64 to bstring (twitter#206) f71c657 cc_option simplify _allowed_in_name (twitter#205) 24e3131 Add ITT instrumentation option (twitter#204) 236c98d Fix docs (twitter#200) e58f6a8 cc_array and cc_ring_array NULL fixes (twitter#201) 1c8df42 Add basic support of build type (twitter#199) 7107988 Fix now_ns() (twitter#198) da240e5 cc: extend cc_util module (twitter#196) 4846b15 Fix TAILQ_REINIT (twitter#195) 4f5dbb0 Update Cmake version to 2.8 (twitter#197) 2e6f78a cc_mm use OS_DARWIN macro to detect OS (twitter#194) 57acaf6 cc: extend queue module (twitter#193) a64ada2 cc: extend duration module (twitter#192) b117632 reverting CMake file changes (twitter#191) dea5bee backport changes made to ccommon in pelikan (twitter#190) a4c0334 add linebreak to stats_log() (twitter#188) 05eb03e fix inconsistent naming and bump version (twitter#187) 4acc53a Stats to file (twitter#186) 2168fec minimize osx build config (twitter#185) 42b24de Simplify rust options, specify fewer output targets (twitter#183) c9fa905 update CMakeRust used to latest version, tweaks to make build work (twitter#184) 2ef0163 Reorder dependency includes in cmake, don't parallel build (twitter#182) a6a54d9 remove endian-specific logic from str*cmp (twitter#177) 4c0668b epoll_create* ignores size hint in newer kernels, switch to new API (twitter#179) c9c5ee5 improve cc_bstring string literal and cstring names (twitter#176) 0184d73 Add unit tests for buffer, fix buf/dbuf bugs and refactor (twitter#174) d7dab43 create a .cargo/config so intellij uses the same target dir as cmake (twitter#173) e710712 use accept4 for tcp_accept when available (twitter#171) 21ba10e Remove cargo lock for shared lib, closes twitter#169 (twitter#172) 24660f1 update style guide (twitter#170) 17baf1e Per thread logging (twitter#168) git-subtree-dir: deps/ccommon git-subtree-split: 55769cc8ae9e7d5c9ceda0472498276aec1d1ed5
* Squashed 'deps/ccommon/' changes from f5efe29..55769cc 55769cc restore cmake for rust libraries (#241) 6b1d8d5 Improve the Rust build story (#240) 5955d6b move nodelay setting to the server socket, and accepted connections will inherit that (#238) aafd20f formatting (#237) 3b5c069 Update ccommon_rs to use bytes v5.0 (#235) df74087 Address clippy lints in rust code (#234) 7c5bbd1 Make metrics and options Send + Sync (#233) c2e617e Ensure that manually implemented C options use the correct name (#232) 6e76741 Add some docs b5b4c5a Change check_pipe to use nanosleep instead of usleep (#231) eb0a389 Use name of field instead of description for C metrics (#230) 16ddc76 Fix broken buf impls (#229) eefcdcb Avoid redundant rebuilds of rust packages in CI (#228) 33f62a8 Update bindgen to also generate bindings recursively (#227) 27ffc7c Implement bytes::Buf and Bytes::ButMut on Buf and OwnedBuf (#226) f873930 Various small bugfixes and usability improvements for rust code (#225) 37a1ecd Port option parsing module to Rust (#224) 38f7556 Fix failed test detection (#215) 0ab1604 Conditionally use std::any::type_name if it's supported (#223) 98176d3 Backport changes from #265 (#222) ba54096 Remove test for removed rust logging functionality (#221) 519118d Rewrite cmake cargo build wrapper (#220) 5d23b3a Fix some small typos found in #263 (#219) 475dda7 Clean up logging shim (#218) 1d28dd2 Expand rust bindings to add options, metrics, and ccbox (#217) 88b5400 Upstream changes from #261 (#216) 4e99e63 fix a bug and change how check is found (#214) 54067ef slightly simplify accept error-handling logic (#210) e9fe980 Fix synchronize ccommon with pelikan deps/ccommon (#212) 7eb6424 Cleanup libcheck related code (#211) 683bc1a cc_bstring simplify and fix (#207) 8737d99 continue on server socket on non-blocking errors (#209) 2a62281 add atoi64 to bstring (#206) f71c657 cc_option simplify _allowed_in_name (#205) 24e3131 Add ITT instrumentation option (#204) 236c98d Fix docs (#200) e58f6a8 cc_array and cc_ring_array NULL fixes (#201) 1c8df42 Add basic support of build type (#199) 7107988 Fix now_ns() (#198) da240e5 cc: extend cc_util module (#196) 4846b15 Fix TAILQ_REINIT (#195) 4f5dbb0 Update Cmake version to 2.8 (#197) 2e6f78a cc_mm use OS_DARWIN macro to detect OS (#194) 57acaf6 cc: extend queue module (#193) a64ada2 cc: extend duration module (#192) b117632 reverting CMake file changes (#191) dea5bee backport changes made to ccommon in pelikan (#190) a4c0334 add linebreak to stats_log() (#188) 05eb03e fix inconsistent naming and bump version (#187) 4acc53a Stats to file (#186) 2168fec minimize osx build config (#185) 42b24de Simplify rust options, specify fewer output targets (#183) c9fa905 update CMakeRust used to latest version, tweaks to make build work (#184) 2ef0163 Reorder dependency includes in cmake, don't parallel build (#182) a6a54d9 remove endian-specific logic from str*cmp (#177) 4c0668b epoll_create* ignores size hint in newer kernels, switch to new API (#179) c9c5ee5 improve cc_bstring string literal and cstring names (#176) 0184d73 Add unit tests for buffer, fix buf/dbuf bugs and refactor (#174) d7dab43 create a .cargo/config so intellij uses the same target dir as cmake (#173) e710712 use accept4 for tcp_accept when available (#171) 21ba10e Remove cargo lock for shared lib, closes #169 (#172) 24660f1 update style guide (#170) 17baf1e Per thread logging (#168) git-subtree-dir: deps/ccommon git-subtree-split: 55769cc8ae9e7d5c9ceda0472498276aec1d1ed5 * Fixes to work with newer ccommon and cargo for rust builds Fixes various places where ccommon rust libraries were renamed or have interface changes. Changes the rust builds to use cargo instead of cmake. This made it easier to integrate the changes and makes building the rust portion more intuitive for rust developers. * add cargo build on osx to ci * fix copy paste error in travis config * fix the cmake rust build * cleanup * remove scripts folder
5e64de2 WIP: add fluxcapacitor support for linux build (twitter#242) 55769cc restore cmake for rust libraries (twitter#241) 6b1d8d5 Improve the Rust build story (twitter#240) 5955d6b move nodelay setting to the server socket, and accepted connections will inherit that (twitter#238) aafd20f formatting (twitter#237) 3b5c069 Update ccommon_rs to use bytes v5.0 (twitter#235) df74087 Address clippy lints in rust code (twitter#234) 7c5bbd1 Make metrics and options Send + Sync (twitter#233) c2e617e Ensure that manually implemented C options use the correct name (twitter#232) 6e76741 Add some docs b5b4c5a Change check_pipe to use nanosleep instead of usleep (twitter#231) eb0a389 Use name of field instead of description for C metrics (twitter#230) 16ddc76 Fix broken buf impls (twitter#229) eefcdcb Avoid redundant rebuilds of rust packages in CI (twitter#228) 33f62a8 Update bindgen to also generate bindings recursively (twitter#227) 27ffc7c Implement bytes::Buf and Bytes::ButMut on Buf and OwnedBuf (twitter#226) f873930 Various small bugfixes and usability improvements for rust code (twitter#225) 37a1ecd Port option parsing module to Rust (twitter#224) 38f7556 Fix failed test detection (twitter#215) 0ab1604 Conditionally use std::any::type_name if it's supported (twitter#223) 98176d3 Backport changes from twitter#265 (twitter#222) ba54096 Remove test for removed rust logging functionality (twitter#221) 519118d Rewrite cmake cargo build wrapper (twitter#220) 5d23b3a Fix some small typos found in twitter#263 (twitter#219) 475dda7 Clean up logging shim (twitter#218) 1d28dd2 Expand rust bindings to add options, metrics, and ccbox (twitter#217) 88b5400 Upstream changes from twitter#261 (twitter#216) 4e99e63 fix a bug and change how check is found (twitter#214) 54067ef slightly simplify accept error-handling logic (twitter#210) e9fe980 Fix synchronize ccommon with pelikan deps/ccommon (twitter#212) 7eb6424 Cleanup libcheck related code (twitter#211) 683bc1a cc_bstring simplify and fix (twitter#207) 8737d99 continue on server socket on non-blocking errors (twitter#209) 2a62281 add atoi64 to bstring (twitter#206) f71c657 cc_option simplify _allowed_in_name (twitter#205) 24e3131 Add ITT instrumentation option (twitter#204) 236c98d Fix docs (twitter#200) e58f6a8 cc_array and cc_ring_array NULL fixes (twitter#201) 1c8df42 Add basic support of build type (twitter#199) 7107988 Fix now_ns() (twitter#198) da240e5 cc: extend cc_util module (twitter#196) 4846b15 Fix TAILQ_REINIT (twitter#195) 4f5dbb0 Update Cmake version to 2.8 (twitter#197) 2e6f78a cc_mm use OS_DARWIN macro to detect OS (twitter#194) 57acaf6 cc: extend queue module (twitter#193) a64ada2 cc: extend duration module (twitter#192) b117632 reverting CMake file changes (twitter#191) dea5bee backport changes made to ccommon in pelikan (twitter#190) a4c0334 add linebreak to stats_log() (twitter#188) 05eb03e fix inconsistent naming and bump version (twitter#187) 4acc53a Stats to file (twitter#186) 2168fec minimize osx build config (twitter#185) 42b24de Simplify rust options, specify fewer output targets (twitter#183) c9fa905 update CMakeRust used to latest version, tweaks to make build work (twitter#184) 2ef0163 Reorder dependency includes in cmake, don't parallel build (twitter#182) a6a54d9 remove endian-specific logic from str*cmp (twitter#177) 4c0668b epoll_create* ignores size hint in newer kernels, switch to new API (twitter#179) c9c5ee5 improve cc_bstring string literal and cstring names (twitter#176) 0184d73 Add unit tests for buffer, fix buf/dbuf bugs and refactor (twitter#174) d7dab43 create a .cargo/config so intellij uses the same target dir as cmake (twitter#173) e710712 use accept4 for tcp_accept when available (twitter#171) 21ba10e Remove cargo lock for shared lib, closes twitter#169 (twitter#172) 24660f1 update style guide (twitter#170) 17baf1e Per thread logging (twitter#168) git-subtree-dir: deps/ccommon git-subtree-split: 5e64de297dbf1d49b59746431448f5f4dfb5d640
… metrics (#289) * adding metrics to the hash module * Squashed 'deps/ccommon/' changes from f5efe29..5e64de2 5e64de2 WIP: add fluxcapacitor support for linux build (#242) 55769cc restore cmake for rust libraries (#241) 6b1d8d5 Improve the Rust build story (#240) 5955d6b move nodelay setting to the server socket, and accepted connections will inherit that (#238) aafd20f formatting (#237) 3b5c069 Update ccommon_rs to use bytes v5.0 (#235) df74087 Address clippy lints in rust code (#234) 7c5bbd1 Make metrics and options Send + Sync (#233) c2e617e Ensure that manually implemented C options use the correct name (#232) 6e76741 Add some docs b5b4c5a Change check_pipe to use nanosleep instead of usleep (#231) eb0a389 Use name of field instead of description for C metrics (#230) 16ddc76 Fix broken buf impls (#229) eefcdcb Avoid redundant rebuilds of rust packages in CI (#228) 33f62a8 Update bindgen to also generate bindings recursively (#227) 27ffc7c Implement bytes::Buf and Bytes::ButMut on Buf and OwnedBuf (#226) f873930 Various small bugfixes and usability improvements for rust code (#225) 37a1ecd Port option parsing module to Rust (#224) 38f7556 Fix failed test detection (#215) 0ab1604 Conditionally use std::any::type_name if it's supported (#223) 98176d3 Backport changes from #265 (#222) ba54096 Remove test for removed rust logging functionality (#221) 519118d Rewrite cmake cargo build wrapper (#220) 5d23b3a Fix some small typos found in #263 (#219) 475dda7 Clean up logging shim (#218) 1d28dd2 Expand rust bindings to add options, metrics, and ccbox (#217) 88b5400 Upstream changes from #261 (#216) 4e99e63 fix a bug and change how check is found (#214) 54067ef slightly simplify accept error-handling logic (#210) e9fe980 Fix synchronize ccommon with pelikan deps/ccommon (#212) 7eb6424 Cleanup libcheck related code (#211) 683bc1a cc_bstring simplify and fix (#207) 8737d99 continue on server socket on non-blocking errors (#209) 2a62281 add atoi64 to bstring (#206) f71c657 cc_option simplify _allowed_in_name (#205) 24e3131 Add ITT instrumentation option (#204) 236c98d Fix docs (#200) e58f6a8 cc_array and cc_ring_array NULL fixes (#201) 1c8df42 Add basic support of build type (#199) 7107988 Fix now_ns() (#198) da240e5 cc: extend cc_util module (#196) 4846b15 Fix TAILQ_REINIT (#195) 4f5dbb0 Update Cmake version to 2.8 (#197) 2e6f78a cc_mm use OS_DARWIN macro to detect OS (#194) 57acaf6 cc: extend queue module (#193) a64ada2 cc: extend duration module (#192) b117632 reverting CMake file changes (#191) dea5bee backport changes made to ccommon in pelikan (#190) a4c0334 add linebreak to stats_log() (#188) 05eb03e fix inconsistent naming and bump version (#187) 4acc53a Stats to file (#186) 2168fec minimize osx build config (#185) 42b24de Simplify rust options, specify fewer output targets (#183) c9fa905 update CMakeRust used to latest version, tweaks to make build work (#184) 2ef0163 Reorder dependency includes in cmake, don't parallel build (#182) a6a54d9 remove endian-specific logic from str*cmp (#177) 4c0668b epoll_create* ignores size hint in newer kernels, switch to new API (#179) c9c5ee5 improve cc_bstring string literal and cstring names (#176) 0184d73 Add unit tests for buffer, fix buf/dbuf bugs and refactor (#174) d7dab43 create a .cargo/config so intellij uses the same target dir as cmake (#173) e710712 use accept4 for tcp_accept when available (#171) 21ba10e Remove cargo lock for shared lib, closes #169 (#172) 24660f1 update style guide (#170) 17baf1e Per thread logging (#168) git-subtree-dir: deps/ccommon git-subtree-split: 5e64de297dbf1d49b59746431448f5f4dfb5d640 * clean up cmake file * rename findcheck cmake module * adding new metrics to rust wrapper * add ci/cargo.sh to pelikan for consistent invocation * Squashed 'deps/ccommon/' changes from 5e64de2..0db032a 0db032a tuning cmake / ci further (#243) 49dcaff improve cargo build script (#244) git-subtree-dir: deps/ccommon git-subtree-split: 0db032afcac0a75887281c3876ed9f7bb10391ce * update ci based on changes first tested in ccommon
45b7bac add new libraries to contain config structs (twitter#245) 0db032a tuning cmake / ci further (twitter#243) 49dcaff improve cargo build script (twitter#244) 5e64de2 WIP: add fluxcapacitor support for linux build (twitter#242) 55769cc restore cmake for rust libraries (twitter#241) 6b1d8d5 Improve the Rust build story (twitter#240) 5955d6b move nodelay setting to the server socket, and accepted connections will inherit that (twitter#238) aafd20f formatting (twitter#237) 3b5c069 Update ccommon_rs to use bytes v5.0 (twitter#235) df74087 Address clippy lints in rust code (twitter#234) 7c5bbd1 Make metrics and options Send + Sync (twitter#233) c2e617e Ensure that manually implemented C options use the correct name (twitter#232) 6e76741 Add some docs b5b4c5a Change check_pipe to use nanosleep instead of usleep (twitter#231) eb0a389 Use name of field instead of description for C metrics (twitter#230) 16ddc76 Fix broken buf impls (twitter#229) eefcdcb Avoid redundant rebuilds of rust packages in CI (twitter#228) 33f62a8 Update bindgen to also generate bindings recursively (twitter#227) 27ffc7c Implement bytes::Buf and Bytes::ButMut on Buf and OwnedBuf (twitter#226) f873930 Various small bugfixes and usability improvements for rust code (twitter#225) 37a1ecd Port option parsing module to Rust (twitter#224) 38f7556 Fix failed test detection (twitter#215) 0ab1604 Conditionally use std::any::type_name if it's supported (twitter#223) 98176d3 Backport changes from twitter#265 (twitter#222) ba54096 Remove test for removed rust logging functionality (twitter#221) 519118d Rewrite cmake cargo build wrapper (twitter#220) 5d23b3a Fix some small typos found in twitter#263 (twitter#219) 475dda7 Clean up logging shim (twitter#218) 1d28dd2 Expand rust bindings to add options, metrics, and ccbox (twitter#217) 88b5400 Upstream changes from twitter#261 (twitter#216) 4e99e63 fix a bug and change how check is found (twitter#214) 54067ef slightly simplify accept error-handling logic (twitter#210) e9fe980 Fix synchronize ccommon with pelikan deps/ccommon (twitter#212) 7eb6424 Cleanup libcheck related code (twitter#211) 683bc1a cc_bstring simplify and fix (twitter#207) 8737d99 continue on server socket on non-blocking errors (twitter#209) 2a62281 add atoi64 to bstring (twitter#206) f71c657 cc_option simplify _allowed_in_name (twitter#205) 24e3131 Add ITT instrumentation option (twitter#204) 236c98d Fix docs (twitter#200) e58f6a8 cc_array and cc_ring_array NULL fixes (twitter#201) 1c8df42 Add basic support of build type (twitter#199) 7107988 Fix now_ns() (twitter#198) da240e5 cc: extend cc_util module (twitter#196) 4846b15 Fix TAILQ_REINIT (twitter#195) 4f5dbb0 Update Cmake version to 2.8 (twitter#197) 2e6f78a cc_mm use OS_DARWIN macro to detect OS (twitter#194) 57acaf6 cc: extend queue module (twitter#193) a64ada2 cc: extend duration module (twitter#192) b117632 reverting CMake file changes (twitter#191) dea5bee backport changes made to ccommon in pelikan (twitter#190) a4c0334 add linebreak to stats_log() (twitter#188) 05eb03e fix inconsistent naming and bump version (twitter#187) 4acc53a Stats to file (twitter#186) 2168fec minimize osx build config (twitter#185) 42b24de Simplify rust options, specify fewer output targets (twitter#183) c9fa905 update CMakeRust used to latest version, tweaks to make build work (twitter#184) 2ef0163 Reorder dependency includes in cmake, don't parallel build (twitter#182) a6a54d9 remove endian-specific logic from str*cmp (twitter#177) 4c0668b epoll_create* ignores size hint in newer kernels, switch to new API (twitter#179) c9c5ee5 improve cc_bstring string literal and cstring names (twitter#176) 0184d73 Add unit tests for buffer, fix buf/dbuf bugs and refactor (twitter#174) d7dab43 create a .cargo/config so intellij uses the same target dir as cmake (twitter#173) e710712 use accept4 for tcp_accept when available (twitter#171) 21ba10e Remove cargo lock for shared lib, closes twitter#169 (twitter#172) 24660f1 update style guide (twitter#170) 17baf1e Per thread logging (twitter#168) git-subtree-dir: deps/ccommon git-subtree-split: 45b7bac29f7bddfbb7441d93f11f1d81c0dcb4e8
* Squashed 'deps/ccommon/' changes from f5efe29..45b7bac 45b7bac add new libraries to contain config structs (#245) 0db032a tuning cmake / ci further (#243) 49dcaff improve cargo build script (#244) 5e64de2 WIP: add fluxcapacitor support for linux build (#242) 55769cc restore cmake for rust libraries (#241) 6b1d8d5 Improve the Rust build story (#240) 5955d6b move nodelay setting to the server socket, and accepted connections will inherit that (#238) aafd20f formatting (#237) 3b5c069 Update ccommon_rs to use bytes v5.0 (#235) df74087 Address clippy lints in rust code (#234) 7c5bbd1 Make metrics and options Send + Sync (#233) c2e617e Ensure that manually implemented C options use the correct name (#232) 6e76741 Add some docs b5b4c5a Change check_pipe to use nanosleep instead of usleep (#231) eb0a389 Use name of field instead of description for C metrics (#230) 16ddc76 Fix broken buf impls (#229) eefcdcb Avoid redundant rebuilds of rust packages in CI (#228) 33f62a8 Update bindgen to also generate bindings recursively (#227) 27ffc7c Implement bytes::Buf and Bytes::ButMut on Buf and OwnedBuf (#226) f873930 Various small bugfixes and usability improvements for rust code (#225) 37a1ecd Port option parsing module to Rust (#224) 38f7556 Fix failed test detection (#215) 0ab1604 Conditionally use std::any::type_name if it's supported (#223) 98176d3 Backport changes from #265 (#222) ba54096 Remove test for removed rust logging functionality (#221) 519118d Rewrite cmake cargo build wrapper (#220) 5d23b3a Fix some small typos found in #263 (#219) 475dda7 Clean up logging shim (#218) 1d28dd2 Expand rust bindings to add options, metrics, and ccbox (#217) 88b5400 Upstream changes from #261 (#216) 4e99e63 fix a bug and change how check is found (#214) 54067ef slightly simplify accept error-handling logic (#210) e9fe980 Fix synchronize ccommon with pelikan deps/ccommon (#212) 7eb6424 Cleanup libcheck related code (#211) 683bc1a cc_bstring simplify and fix (#207) 8737d99 continue on server socket on non-blocking errors (#209) 2a62281 add atoi64 to bstring (#206) f71c657 cc_option simplify _allowed_in_name (#205) 24e3131 Add ITT instrumentation option (#204) 236c98d Fix docs (#200) e58f6a8 cc_array and cc_ring_array NULL fixes (#201) 1c8df42 Add basic support of build type (#199) 7107988 Fix now_ns() (#198) da240e5 cc: extend cc_util module (#196) 4846b15 Fix TAILQ_REINIT (#195) 4f5dbb0 Update Cmake version to 2.8 (#197) 2e6f78a cc_mm use OS_DARWIN macro to detect OS (#194) 57acaf6 cc: extend queue module (#193) a64ada2 cc: extend duration module (#192) b117632 reverting CMake file changes (#191) dea5bee backport changes made to ccommon in pelikan (#190) a4c0334 add linebreak to stats_log() (#188) 05eb03e fix inconsistent naming and bump version (#187) 4acc53a Stats to file (#186) 2168fec minimize osx build config (#185) 42b24de Simplify rust options, specify fewer output targets (#183) c9fa905 update CMakeRust used to latest version, tweaks to make build work (#184) 2ef0163 Reorder dependency includes in cmake, don't parallel build (#182) a6a54d9 remove endian-specific logic from str*cmp (#177) 4c0668b epoll_create* ignores size hint in newer kernels, switch to new API (#179) c9c5ee5 improve cc_bstring string literal and cstring names (#176) 0184d73 Add unit tests for buffer, fix buf/dbuf bugs and refactor (#174) d7dab43 create a .cargo/config so intellij uses the same target dir as cmake (#173) e710712 use accept4 for tcp_accept when available (#171) 21ba10e Remove cargo lock for shared lib, closes #169 (#172) 24660f1 update style guide (#170) 17baf1e Per thread logging (#168) git-subtree-dir: deps/ccommon git-subtree-split: 45b7bac29f7bddfbb7441d93f11f1d81c0dcb4e8 * update manifest to include new ccommon crates * Squashed 'deps/ccommon/' changes from 45b7bac..0094e2a 0094e2a add convenience array api (#239) 6024ef7 add pipe config to rust ccommon-channel (#247) eaf7f07 remove ccommon-time (#248) git-subtree-dir: deps/ccommon git-subtree-split: 0094e2a99e4d535f8dec590e8474e6e4686bda07 * remove dep ccommon-time Co-authored-by: Brian Martin <bmartin@twitter.com>
6af1821 Pthread name (twitter#251) e77471e cmake: gen config.h into include to support make install (twitter#249) 0094e2a add convenience array api (twitter#239) 6024ef7 add pipe config to rust ccommon-channel (twitter#247) eaf7f07 remove ccommon-time (twitter#248) 45b7bac add new libraries to contain config structs (twitter#245) 0db032a tuning cmake / ci further (twitter#243) 49dcaff improve cargo build script (twitter#244) 5e64de2 WIP: add fluxcapacitor support for linux build (twitter#242) 55769cc restore cmake for rust libraries (twitter#241) 6b1d8d5 Improve the Rust build story (twitter#240) 5955d6b move nodelay setting to the server socket, and accepted connections will inherit that (twitter#238) aafd20f formatting (twitter#237) 3b5c069 Update ccommon_rs to use bytes v5.0 (twitter#235) df74087 Address clippy lints in rust code (twitter#234) 7c5bbd1 Make metrics and options Send + Sync (twitter#233) c2e617e Ensure that manually implemented C options use the correct name (twitter#232) 6e76741 Add some docs b5b4c5a Change check_pipe to use nanosleep instead of usleep (twitter#231) eb0a389 Use name of field instead of description for C metrics (twitter#230) 16ddc76 Fix broken buf impls (twitter#229) eefcdcb Avoid redundant rebuilds of rust packages in CI (twitter#228) 33f62a8 Update bindgen to also generate bindings recursively (twitter#227) 27ffc7c Implement bytes::Buf and Bytes::ButMut on Buf and OwnedBuf (twitter#226) f873930 Various small bugfixes and usability improvements for rust code (twitter#225) 37a1ecd Port option parsing module to Rust (twitter#224) 38f7556 Fix failed test detection (twitter#215) 0ab1604 Conditionally use std::any::type_name if it's supported (twitter#223) 98176d3 Backport changes from twitter#265 (twitter#222) ba54096 Remove test for removed rust logging functionality (twitter#221) 519118d Rewrite cmake cargo build wrapper (twitter#220) 5d23b3a Fix some small typos found in twitter#263 (twitter#219) 475dda7 Clean up logging shim (twitter#218) 1d28dd2 Expand rust bindings to add options, metrics, and ccbox (twitter#217) 88b5400 Upstream changes from twitter#261 (twitter#216) 4e99e63 fix a bug and change how check is found (twitter#214) 54067ef slightly simplify accept error-handling logic (twitter#210) e9fe980 Fix synchronize ccommon with pelikan deps/ccommon (twitter#212) 7eb6424 Cleanup libcheck related code (twitter#211) 683bc1a cc_bstring simplify and fix (twitter#207) 8737d99 continue on server socket on non-blocking errors (twitter#209) 2a62281 add atoi64 to bstring (twitter#206) f71c657 cc_option simplify _allowed_in_name (twitter#205) 24e3131 Add ITT instrumentation option (twitter#204) 236c98d Fix docs (twitter#200) e58f6a8 cc_array and cc_ring_array NULL fixes (twitter#201) 1c8df42 Add basic support of build type (twitter#199) 7107988 Fix now_ns() (twitter#198) da240e5 cc: extend cc_util module (twitter#196) 4846b15 Fix TAILQ_REINIT (twitter#195) 4f5dbb0 Update Cmake version to 2.8 (twitter#197) 2e6f78a cc_mm use OS_DARWIN macro to detect OS (twitter#194) 57acaf6 cc: extend queue module (twitter#193) a64ada2 cc: extend duration module (twitter#192) b117632 reverting CMake file changes (twitter#191) dea5bee backport changes made to ccommon in pelikan (twitter#190) a4c0334 add linebreak to stats_log() (twitter#188) 05eb03e fix inconsistent naming and bump version (twitter#187) 4acc53a Stats to file (twitter#186) 2168fec minimize osx build config (twitter#185) 42b24de Simplify rust options, specify fewer output targets (twitter#183) c9fa905 update CMakeRust used to latest version, tweaks to make build work (twitter#184) 2ef0163 Reorder dependency includes in cmake, don't parallel build (twitter#182) a6a54d9 remove endian-specific logic from str*cmp (twitter#177) 4c0668b epoll_create* ignores size hint in newer kernels, switch to new API (twitter#179) c9c5ee5 improve cc_bstring string literal and cstring names (twitter#176) 0184d73 Add unit tests for buffer, fix buf/dbuf bugs and refactor (twitter#174) d7dab43 create a .cargo/config so intellij uses the same target dir as cmake (twitter#173) e710712 use accept4 for tcp_accept when available (twitter#171) 21ba10e Remove cargo lock for shared lib, closes twitter#169 (twitter#172) 24660f1 update style guide (twitter#170) 17baf1e Per thread logging (twitter#168) git-subtree-dir: deps/ccommon git-subtree-split: 6af182198babff2db218d0149e64ee2fe840dc72
* Squashed 'deps/ccommon/' changes from f5efe29..6af1821 6af1821 Pthread name (#251) e77471e cmake: gen config.h into include to support make install (#249) 0094e2a add convenience array api (#239) 6024ef7 add pipe config to rust ccommon-channel (#247) eaf7f07 remove ccommon-time (#248) 45b7bac add new libraries to contain config structs (#245) 0db032a tuning cmake / ci further (#243) 49dcaff improve cargo build script (#244) 5e64de2 WIP: add fluxcapacitor support for linux build (#242) 55769cc restore cmake for rust libraries (#241) 6b1d8d5 Improve the Rust build story (#240) 5955d6b move nodelay setting to the server socket, and accepted connections will inherit that (#238) aafd20f formatting (#237) 3b5c069 Update ccommon_rs to use bytes v5.0 (#235) df74087 Address clippy lints in rust code (#234) 7c5bbd1 Make metrics and options Send + Sync (#233) c2e617e Ensure that manually implemented C options use the correct name (#232) 6e76741 Add some docs b5b4c5a Change check_pipe to use nanosleep instead of usleep (#231) eb0a389 Use name of field instead of description for C metrics (#230) 16ddc76 Fix broken buf impls (#229) eefcdcb Avoid redundant rebuilds of rust packages in CI (#228) 33f62a8 Update bindgen to also generate bindings recursively (#227) 27ffc7c Implement bytes::Buf and Bytes::ButMut on Buf and OwnedBuf (#226) f873930 Various small bugfixes and usability improvements for rust code (#225) 37a1ecd Port option parsing module to Rust (#224) 38f7556 Fix failed test detection (#215) 0ab1604 Conditionally use std::any::type_name if it's supported (#223) 98176d3 Backport changes from #265 (#222) ba54096 Remove test for removed rust logging functionality (#221) 519118d Rewrite cmake cargo build wrapper (#220) 5d23b3a Fix some small typos found in #263 (#219) 475dda7 Clean up logging shim (#218) 1d28dd2 Expand rust bindings to add options, metrics, and ccbox (#217) 88b5400 Upstream changes from #261 (#216) 4e99e63 fix a bug and change how check is found (#214) 54067ef slightly simplify accept error-handling logic (#210) e9fe980 Fix synchronize ccommon with pelikan deps/ccommon (#212) 7eb6424 Cleanup libcheck related code (#211) 683bc1a cc_bstring simplify and fix (#207) 8737d99 continue on server socket on non-blocking errors (#209) 2a62281 add atoi64 to bstring (#206) f71c657 cc_option simplify _allowed_in_name (#205) 24e3131 Add ITT instrumentation option (#204) 236c98d Fix docs (#200) e58f6a8 cc_array and cc_ring_array NULL fixes (#201) 1c8df42 Add basic support of build type (#199) 7107988 Fix now_ns() (#198) da240e5 cc: extend cc_util module (#196) 4846b15 Fix TAILQ_REINIT (#195) 4f5dbb0 Update Cmake version to 2.8 (#197) 2e6f78a cc_mm use OS_DARWIN macro to detect OS (#194) 57acaf6 cc: extend queue module (#193) a64ada2 cc: extend duration module (#192) b117632 reverting CMake file changes (#191) dea5bee backport changes made to ccommon in pelikan (#190) a4c0334 add linebreak to stats_log() (#188) 05eb03e fix inconsistent naming and bump version (#187) 4acc53a Stats to file (#186) 2168fec minimize osx build config (#185) 42b24de Simplify rust options, specify fewer output targets (#183) c9fa905 update CMakeRust used to latest version, tweaks to make build work (#184) 2ef0163 Reorder dependency includes in cmake, don't parallel build (#182) a6a54d9 remove endian-specific logic from str*cmp (#177) 4c0668b epoll_create* ignores size hint in newer kernels, switch to new API (#179) c9c5ee5 improve cc_bstring string literal and cstring names (#176) 0184d73 Add unit tests for buffer, fix buf/dbuf bugs and refactor (#174) d7dab43 create a .cargo/config so intellij uses the same target dir as cmake (#173) e710712 use accept4 for tcp_accept when available (#171) 21ba10e Remove cargo lock for shared lib, closes #169 (#172) 24660f1 update style guide (#170) 17baf1e Per thread logging (#168) git-subtree-dir: deps/ccommon git-subtree-split: 6af182198babff2db218d0149e64ee2fe840dc72 * disable http target * pin http test to http target
9caf864 Delete flaky assert within check_tcp (twitter#253) 05eca7f Update LICENSE to use the full text (twitter#252) 6af1821 Pthread name (twitter#251) e77471e cmake: gen config.h into include to support make install (twitter#249) 0094e2a add convenience array api (twitter#239) 6024ef7 add pipe config to rust ccommon-channel (twitter#247) eaf7f07 remove ccommon-time (twitter#248) 45b7bac add new libraries to contain config structs (twitter#245) 0db032a tuning cmake / ci further (twitter#243) 49dcaff improve cargo build script (twitter#244) 5e64de2 WIP: add fluxcapacitor support for linux build (twitter#242) 55769cc restore cmake for rust libraries (twitter#241) 6b1d8d5 Improve the Rust build story (twitter#240) 5955d6b move nodelay setting to the server socket, and accepted connections will inherit that (twitter#238) aafd20f formatting (twitter#237) 3b5c069 Update ccommon_rs to use bytes v5.0 (twitter#235) df74087 Address clippy lints in rust code (twitter#234) 7c5bbd1 Make metrics and options Send + Sync (twitter#233) c2e617e Ensure that manually implemented C options use the correct name (twitter#232) 6e76741 Add some docs b5b4c5a Change check_pipe to use nanosleep instead of usleep (twitter#231) eb0a389 Use name of field instead of description for C metrics (twitter#230) 16ddc76 Fix broken buf impls (twitter#229) eefcdcb Avoid redundant rebuilds of rust packages in CI (twitter#228) 33f62a8 Update bindgen to also generate bindings recursively (twitter#227) 27ffc7c Implement bytes::Buf and Bytes::ButMut on Buf and OwnedBuf (twitter#226) f873930 Various small bugfixes and usability improvements for rust code (twitter#225) 37a1ecd Port option parsing module to Rust (twitter#224) 38f7556 Fix failed test detection (twitter#215) 0ab1604 Conditionally use std::any::type_name if it's supported (twitter#223) 98176d3 Backport changes from twitter#265 (twitter#222) ba54096 Remove test for removed rust logging functionality (twitter#221) 519118d Rewrite cmake cargo build wrapper (twitter#220) 5d23b3a Fix some small typos found in twitter#263 (twitter#219) 475dda7 Clean up logging shim (twitter#218) 1d28dd2 Expand rust bindings to add options, metrics, and ccbox (twitter#217) 88b5400 Upstream changes from twitter#261 (twitter#216) 4e99e63 fix a bug and change how check is found (twitter#214) 54067ef slightly simplify accept error-handling logic (twitter#210) e9fe980 Fix synchronize ccommon with pelikan deps/ccommon (twitter#212) 7eb6424 Cleanup libcheck related code (twitter#211) 683bc1a cc_bstring simplify and fix (twitter#207) 8737d99 continue on server socket on non-blocking errors (twitter#209) 2a62281 add atoi64 to bstring (twitter#206) f71c657 cc_option simplify _allowed_in_name (twitter#205) 24e3131 Add ITT instrumentation option (twitter#204) 236c98d Fix docs (twitter#200) e58f6a8 cc_array and cc_ring_array NULL fixes (twitter#201) 1c8df42 Add basic support of build type (twitter#199) 7107988 Fix now_ns() (twitter#198) da240e5 cc: extend cc_util module (twitter#196) 4846b15 Fix TAILQ_REINIT (twitter#195) 4f5dbb0 Update Cmake version to 2.8 (twitter#197) 2e6f78a cc_mm use OS_DARWIN macro to detect OS (twitter#194) 57acaf6 cc: extend queue module (twitter#193) a64ada2 cc: extend duration module (twitter#192) b117632 reverting CMake file changes (twitter#191) dea5bee backport changes made to ccommon in pelikan (twitter#190) a4c0334 add linebreak to stats_log() (twitter#188) 05eb03e fix inconsistent naming and bump version (twitter#187) 4acc53a Stats to file (twitter#186) 2168fec minimize osx build config (twitter#185) 42b24de Simplify rust options, specify fewer output targets (twitter#183) c9fa905 update CMakeRust used to latest version, tweaks to make build work (twitter#184) 2ef0163 Reorder dependency includes in cmake, don't parallel build (twitter#182) a6a54d9 remove endian-specific logic from str*cmp (twitter#177) 4c0668b epoll_create* ignores size hint in newer kernels, switch to new API (twitter#179) c9c5ee5 improve cc_bstring string literal and cstring names (twitter#176) 0184d73 Add unit tests for buffer, fix buf/dbuf bugs and refactor (twitter#174) d7dab43 create a .cargo/config so intellij uses the same target dir as cmake (twitter#173) e710712 use accept4 for tcp_accept when available (twitter#171) 21ba10e Remove cargo lock for shared lib, closes twitter#169 (twitter#172) 24660f1 update style guide (twitter#170) 17baf1e Per thread logging (twitter#168) git-subtree-dir: deps/ccommon git-subtree-split: 9caf864dca0d699b0cb25f2710ba5b5b76e7f691
Added support to recreate hashtable after graceful shutdown.