Hi Yingchun, Tao and all Pegasus developers,

Firstly I agree that all source code directories are moved from
"src/rdsn/src/" to "src/", since rdsn has been a part of Pegasus and is no
longer a "third-party" library.

Secondly I also agree that in the first stage we just "move" without any
code change. Actually there are some unreasonable structures in current
directories, however any modification will change code. I think each
modification can be launched as an independent issue to solve.

--
Best wishes,
Dan

On Wed, Oct 19, 2022 at 3:35 PM Yingchun Lai <[email protected]>
wrote:

> I've described this change in GitHub [1], and also show the refactor in the
> mail list here.
> Keep in mind that this is not the final view of the structure, we will do
> more small adjusticement in the future.
>
> Directories in `src` before this refactor:
> ```
> .
> ├── base
> │   └── test
> ├── client_lib
> ├── geo
> │   ├── bench
> │   ├── lib
> │   └── test
> ├── include
> │   ├── pegasus
> │   └── rrdb
> ├── rdsn
> │   └── src
> │       ├── aio
> │       │   └── test
> │       ├── block_service
> │       │   ├── fds
> │       │   ├── hdfs
> │       │   ├── local
> │       │   └── test
> │       ├── client
> │       ├── common
> │       │   ├── serialization_helper
> │       │   └── test
> │       ├── failure_detector
> │       │   └── test
> │       ├── http
> │       │   └── test
> │       ├── meta
> │       │   ├── duplication
> │       │   └── test
> │       │       ├── balancer_simulator
> │       │       ├── meta_state
> │       │       └── misc
> │       ├── nfs
> │       │   └── test
> │       ├── perf_counter
> │       │   └── test
> │       ├── remote_cmd
> │       ├── replica
> │       │   ├── backup
> │       │   │   └── test
> │       │   ├── bulk_load
> │       │   │   └── test
> │       │   ├── duplication
> │       │   │   └── test
> │       │   ├── split
> │       │   │   └── test
> │       │   ├── storage
> │       │   │   └── simple_kv
> │       │   │       └── test
> │       │   └── test
> │       ├── runtime
> │       │   ├── rpc
> │       │   ├── security
> │       │   ├── task
> │       │   └── test
> │       ├── tools
> │       ├── utils
> │       │   ├── absl
> │       │   │   ├── base
> │       │   │   │   └── internal
> │       │   │   └── utility
> │       │   ├── hpc_locks
> │       │   ├── long_adder_bench
> │       │   └── test
> │       │       └── nth_element_bench
> │       └── zookeeper
> │           └── test
> ├── redis_protocol
> │   ├── proxy
> │   ├── proxy_lib
> │   └── proxy_ut
> ├── reporter
> ├── sample
> ├── server
> │   └── test
> ├── shell
> │   ├── commands
> │   ├── linenoise
> │   └── sds
> └── test
>     ├── bench_test
>     ├── function_test
>     │   ├── backup_restore_test
>     │   ├── base_api_test
>     │   ├── bulk_load_test
>     │   ├── detect_hotspot_test
>     │   ├── partition_split_test
>     │   ├── recovery_test
>     │   ├── restore_test
>     │   ├── throttle_test
>     │   └── utils
>     ├── kill_test
>     └── pressure_test
> ```
>
> Directories in `src` after this refactor:
> ```
> .
> ├── aio
> │   └── test
> ├── base
> │   └── test
> ├── block_service
> │   ├── fds
> │   ├── hdfs
> │   ├── local
> │   └── test
> ├── client
> ├── client_lib
> ├── common
> │   ├── serialization_helper
> │   └── test
> ├── failure_detector
> │   └── test
> ├── geo
> │   ├── bench
> │   ├── lib
> │   └── test
> ├── http
> │   └── test
> ├── include
> │   ├── pegasus
> │   └── rrdb
> ├── meta
> │   ├── duplication
> │   └── test
> │       ├── balancer_simulator
> │       ├── meta_state
> │       └── misc
> ├── nfs
> │   └── test
> ├── perf_counter
> │   └── test
> ├── redis_protocol
> │   ├── proxy
> │   ├── proxy_lib
> │   └── proxy_ut
> ├── remote_cmd
> ├── replica
> │   ├── backup
> │   │   └── test
> │   ├── bulk_load
> │   │   └── test
> │   ├── duplication
> │   │   └── test
> │   ├── split
> │   │   └── test
> │   ├── storage
> │   │   └── simple_kv
> │   │       └── test
> │   └── test
> ├── reporter
> ├── runtime
> │   ├── rpc
> │   ├── security
> │   ├── task
> │   └── test
> ├── sample
> ├── server
> │   └── test
> ├── shell
> │   ├── commands
> │   ├── linenoise
> │   └── sds
> ├── test
> │   ├── bench_test
> │   ├── function_test
> │   │   ├── backup_restore_test
> │   │   ├── base_api_test
> │   │   ├── bulk_load_test
> │   │   ├── detect_hotspot_test
> │   │   ├── partition_split_test
> │   │   ├── recovery_test
> │   │   ├── restore_test
> │   │   ├── throttle_test
> │   │   └── utils
> │   ├── kill_test
> │   └── pressure_test
> ├── tools
> ├── utils
> │   ├── absl
> │   │   ├── base
> │   │   │   └── internal
> │   │   └── utility
> │   ├── hpc_locks
> │   ├── long_adder_bench
> │   └── test
> │       └── nth_element_bench
> └── zookeeper
>     └── test
> ```
>
> 1.
>
> https://github.com/apache/incubator-pegasus/issues/1053#issuecomment-1283555776
>
>
> Best regards,
> Yingchun Lai
>
>
> On Wed, Oct 19, 2022 at 9:54 AM Tao Wu <[email protected]>
> wrote:
>
> > It sounds good to me. I don't see any negative impact as long as the
> final
> > branch is compile-able. My personal suggestion is that you can do it at
> > weekend (Oct 22) so that the pending PR won't break your refactoring
> > frequently. In my experience in many enormous refactorings to RisingWave,
> > it did work better. Also, I personally suggest that you can create an
> issue
> > for the final structure. The community should have a consensus on that
> > before you do the refactoring.
> >
> > Yingchun Lai <[email protected]> 于 2022年10月18日周二 下午11:58写道:
> >
> > > Hi Pegasus developers,
> > > After the xiaomi/rdsn project being merged into the Pegasus project,
> the
> > > rdsn source code directory structure is kept as before in the
> independent
> > > xiaomi/rdsn repository. But it's just a temporary status, we are
> planning
> > > to integrate the two projects closer in the long-term plan.
> > > The following things I'm going to do is moving source code directories
> in
> > > 'src/rdsn/src/*' to 'src/*', for example,
> > > '*src/rdsn/src/*runtime/api_task.h'
> > > will be moved to '*src/*runtime/api_task.h', this change will make the
> > > source structure more simple and easier to understand and accept by
> more
> > > new comer of Pegasus.
> > > Of course, it's just one step of the whole refractory plan, the
> > > 'src/rdsn/include/*' files have been moved to the places where they are
> > > more related to by pull request [1]. And there will be more refactors
> to
> > > modularize the source files in the future.
> > > However, this change will influence hundreds of files, their paths will
> > be
> > > changed, even though there are no functional changes. This change is
> > > presented by this [2] pull request, I want to hear some feedback about
> > it.
> > > If there is no veto on it, I'm planning to merge it into the master
> > branch
> > > this Friday(2022.10.21 16:00:00 UTC).
> > > Thanks!
> > >
> > > 1. https://github.com/apache/incubator-pegasus/pull/1189
> > > 2. https://github.com/apache/incubator-pegasus/pull/1190
> > >
> > > Kind regards,
> > > Yingchun
> > >
> >
>

Reply via email to