f*2
2 楼
数据库接口,java的确做的比其他语言的lib好很多,所以数据库应用java成为
首选正义不大。
可是数据库的内核,有些open source的database,甚至
in-memory database也用java写,估计是和游击队没有
办法大兵团作战的性质有关。berkeley DB是c写的,虽然也
是open source家族,进入特殊领域的主流,这恐怕就是区别。
想问问java高手们,有商业数据库内核用java实现的吗?
首选正义不大。
可是数据库的内核,有些open source的database,甚至
in-memory database也用java写,估计是和游击队没有
办法大兵团作战的性质有关。berkeley DB是c写的,虽然也
是open source家族,进入特殊领域的主流,这恐怕就是区别。
想问问java高手们,有商业数据库内核用java实现的吗?
m*t
3 楼
The idea behind pure java dbs is (obviously) not to compete with
those more mature C implementations as a generic dbms solution.
Pure java-based dbs are mostly designed to be embedded in applications,
or to serve as testing fixture.
【在 f******2 的大作中提到】
: 数据库接口,java的确做的比其他语言的lib好很多,所以数据库应用java成为
: 首选正义不大。
: 可是数据库的内核,有些open source的database,甚至
: in-memory database也用java写,估计是和游击队没有
: 办法大兵团作战的性质有关。berkeley DB是c写的,虽然也
: 是open source家族,进入特殊领域的主流,这恐怕就是区别。
: 想问问java高手们,有商业数据库内核用java实现的吗?
w*g
4 楼
C/C++在数据库客户端算是彻底败了。特别是C++,发展了这么多年,竟然没有一个牛B
的客户端类库。
要说服务器端,不管用什么语言搞一个都不容易。支持基本的SQL是一回事,正确实现
事务逻辑还要高流量再加上数据恢复什么的,没个七八年弄不下来。现在有那么多免费
的服务器,也基本上覆盖了各种需求,用java再去实现一个意义不大。
就语言来说,java虽然目前在没有内存限制的情况下速度上和C++已经相差无几,但是
相同运算的内存需求还是太大。而稍微上一点规模的数据库几乎都是内存紧缺的,能多
出来一点内存做cache,会对性能影响非常大。所以版上的java大牛们别生气:用java
做数据库服务器基本没戏。
【在 f******2 的大作中提到】
: 数据库接口,java的确做的比其他语言的lib好很多,所以数据库应用java成为
: 首选正义不大。
: 可是数据库的内核,有些open source的database,甚至
: in-memory database也用java写,估计是和游击队没有
: 办法大兵团作战的性质有关。berkeley DB是c写的,虽然也
: 是open source家族,进入特殊领域的主流,这恐怕就是区别。
: 想问问java高手们,有商业数据库内核用java实现的吗?
的客户端类库。
要说服务器端,不管用什么语言搞一个都不容易。支持基本的SQL是一回事,正确实现
事务逻辑还要高流量再加上数据恢复什么的,没个七八年弄不下来。现在有那么多免费
的服务器,也基本上覆盖了各种需求,用java再去实现一个意义不大。
就语言来说,java虽然目前在没有内存限制的情况下速度上和C++已经相差无几,但是
相同运算的内存需求还是太大。而稍微上一点规模的数据库几乎都是内存紧缺的,能多
出来一点内存做cache,会对性能影响非常大。所以版上的java大牛们别生气:用java
做数据库服务器基本没戏。
【在 f******2 的大作中提到】
: 数据库接口,java的确做的比其他语言的lib好很多,所以数据库应用java成为
: 首选正义不大。
: 可是数据库的内核,有些open source的database,甚至
: in-memory database也用java写,估计是和游击队没有
: 办法大兵团作战的性质有关。berkeley DB是c写的,虽然也
: 是open source家族,进入特殊领域的主流,这恐怕就是区别。
: 想问问java高手们,有商业数据库内核用java实现的吗?
g*g
5 楼
数据库实现这种东西是追求性能的,Java当然不合适。除了嵌入式DB
的地方比较方便一些,别的地方是不用的。
牛B
java
【在 w***g 的大作中提到】
: C/C++在数据库客户端算是彻底败了。特别是C++,发展了这么多年,竟然没有一个牛B
: 的客户端类库。
: 要说服务器端,不管用什么语言搞一个都不容易。支持基本的SQL是一回事,正确实现
: 事务逻辑还要高流量再加上数据恢复什么的,没个七八年弄不下来。现在有那么多免费
: 的服务器,也基本上覆盖了各种需求,用java再去实现一个意义不大。
: 就语言来说,java虽然目前在没有内存限制的情况下速度上和C++已经相差无几,但是
: 相同运算的内存需求还是太大。而稍微上一点规模的数据库几乎都是内存紧缺的,能多
: 出来一点内存做cache,会对性能影响非常大。所以版上的java大牛们别生气:用java
: 做数据库服务器基本没戏。
的地方比较方便一些,别的地方是不用的。
牛B
java
【在 w***g 的大作中提到】
: C/C++在数据库客户端算是彻底败了。特别是C++,发展了这么多年,竟然没有一个牛B
: 的客户端类库。
: 要说服务器端,不管用什么语言搞一个都不容易。支持基本的SQL是一回事,正确实现
: 事务逻辑还要高流量再加上数据恢复什么的,没个七八年弄不下来。现在有那么多免费
: 的服务器,也基本上覆盖了各种需求,用java再去实现一个意义不大。
: 就语言来说,java虽然目前在没有内存限制的情况下速度上和C++已经相差无几,但是
: 相同运算的内存需求还是太大。而稍微上一点规模的数据库几乎都是内存紧缺的,能多
: 出来一点内存做cache,会对性能影响非常大。所以版上的java大牛们别生气:用java
: 做数据库服务器基本没戏。
c*t
9 楼
说实在,你倒是让人一个外行的感觉。
你有空的话看看 sqlite 或者 postgresql 的代码就知道了。
一个是 memory management 。想靠 garbage collection 是不行的。postgresql
用的是 memory context,这样 free 的话基本上不花时间,也避免 memory leak 。
database 里面 memory / cache management 是极端重要的。
另外,速度很容易被放大的。比如 A 用 C 写来 access tuple 里的某个 column
是用 macro,direct cast 只要几个 op,而 B 用 Java 就得 N 多步骤。有 1000
tuple 恐怕还没太大不同,1million 就很不一样了。更不用说 memory 方面。
所以 posgresql 里面大量运用 macro 。
我以前做过个实验,把直接调用 postgresql 里面几个 api 改成跳过,直接用
macro 处理低端的 structure 以后,可以大大提高性能(N 倍,在 disk cache
的情况下)。
【在 f******2 的大作中提到】
: premature optimization is the root of evil。
: 这个说法感觉比较外行,上来就考虑micro-optimization,
: 你还不如建议用assembly写。
你有空的话看看 sqlite 或者 postgresql 的代码就知道了。
一个是 memory management 。想靠 garbage collection 是不行的。postgresql
用的是 memory context,这样 free 的话基本上不花时间,也避免 memory leak 。
database 里面 memory / cache management 是极端重要的。
另外,速度很容易被放大的。比如 A 用 C 写来 access tuple 里的某个 column
是用 macro,direct cast 只要几个 op,而 B 用 Java 就得 N 多步骤。有 1000
tuple 恐怕还没太大不同,1million 就很不一样了。更不用说 memory 方面。
所以 posgresql 里面大量运用 macro 。
我以前做过个实验,把直接调用 postgresql 里面几个 api 改成跳过,直接用
macro 处理低端的 structure 以后,可以大大提高性能(N 倍,在 disk cache
的情况下)。
【在 f******2 的大作中提到】
: premature optimization is the root of evil。
: 这个说法感觉比较外行,上来就考虑micro-optimization,
: 你还不如建议用assembly写。
f*2
10 楼
对呀,我就是database外行人问问呀。
不过对系统上来就说macro/inline重要的同学,
多半对系统也不是内行,可能对micro-benchmarking比较熟。
【在 c*****t 的大作中提到】
: 说实在,你倒是让人一个外行的感觉。
: 你有空的话看看 sqlite 或者 postgresql 的代码就知道了。
: 一个是 memory management 。想靠 garbage collection 是不行的。postgresql
: 用的是 memory context,这样 free 的话基本上不花时间,也避免 memory leak 。
: database 里面 memory / cache management 是极端重要的。
: 另外,速度很容易被放大的。比如 A 用 C 写来 access tuple 里的某个 column
: 是用 macro,direct cast 只要几个 op,而 B 用 Java 就得 N 多步骤。有 1000
: tuple 恐怕还没太大不同,1million 就很不一样了。更不用说 memory 方面。
: 所以 posgresql 里面大量运用 macro 。
: 我以前做过个实验,把直接调用 postgresql 里面几个 api 改成跳过,直接用
不过对系统上来就说macro/inline重要的同学,
多半对系统也不是内行,可能对micro-benchmarking比较熟。
【在 c*****t 的大作中提到】
: 说实在,你倒是让人一个外行的感觉。
: 你有空的话看看 sqlite 或者 postgresql 的代码就知道了。
: 一个是 memory management 。想靠 garbage collection 是不行的。postgresql
: 用的是 memory context,这样 free 的话基本上不花时间,也避免 memory leak 。
: database 里面 memory / cache management 是极端重要的。
: 另外,速度很容易被放大的。比如 A 用 C 写来 access tuple 里的某个 column
: 是用 macro,direct cast 只要几个 op,而 B 用 Java 就得 N 多步骤。有 1000
: tuple 恐怕还没太大不同,1million 就很不一样了。更不用说 memory 方面。
: 所以 posgresql 里面大量运用 macro 。
: 我以前做过个实验,把直接调用 postgresql 里面几个 api 改成跳过,直接用
z*e
11 楼
为什么java能够大发展?
很重要一个原因就是正确地估计了人类科技水平的发展
所以这个语言完全不考虑内存的使用
全部交给计算机去实现
而摩尔定律也正好使得这个前提成为可能
很重要一个原因就是正确地估计了人类科技水平的发展
所以这个语言完全不考虑内存的使用
全部交给计算机去实现
而摩尔定律也正好使得这个前提成为可能
g*g
13 楼
我对数据库确实外行,但从java实现的一些数据库,比如Apache Derby来看,
其代码量并不如一个应用服务器,甚至如Spring这样的lightweighted container
大。跟OS完全不在一个量级上。Derby的核心bytecode代码仅在3M左右。固然
数据库实现有多种方式,支持的特性不同,但核心部分显然没有你说的那么复杂。
【在 d****y 的大作中提到】
: "数据库核心的部分并不是一个很大的项目"
: 这个的确外行。光编译一块就数小时,算小吗?就复杂性而言,恐怕只有OS级别的可以
: 比较。
: 用C是因为老CODE,没办法。现在新模块都用C++。
: 用什么语言是个次要的问题,好的OO的设计应该可以极大提高可维护性。对大系统而言
: ,非常重要。
其代码量并不如一个应用服务器,甚至如Spring这样的lightweighted container
大。跟OS完全不在一个量级上。Derby的核心bytecode代码仅在3M左右。固然
数据库实现有多种方式,支持的特性不同,但核心部分显然没有你说的那么复杂。
【在 d****y 的大作中提到】
: "数据库核心的部分并不是一个很大的项目"
: 这个的确外行。光编译一块就数小时,算小吗?就复杂性而言,恐怕只有OS级别的可以
: 比较。
: 用C是因为老CODE,没办法。现在新模块都用C++。
: 用什么语言是个次要的问题,好的OO的设计应该可以极大提高可维护性。对大系统而言
: ,非常重要。
k*r
18 楼
有没有试过h2 java db,据说很快的
【在 c*****t 的大作中提到】
: 说实在,你倒是让人一个外行的感觉。
: 你有空的话看看 sqlite 或者 postgresql 的代码就知道了。
: 一个是 memory management 。想靠 garbage collection 是不行的。postgresql
: 用的是 memory context,这样 free 的话基本上不花时间,也避免 memory leak 。
: database 里面 memory / cache management 是极端重要的。
: 另外,速度很容易被放大的。比如 A 用 C 写来 access tuple 里的某个 column
: 是用 macro,direct cast 只要几个 op,而 B 用 Java 就得 N 多步骤。有 1000
: tuple 恐怕还没太大不同,1million 就很不一样了。更不用说 memory 方面。
: 所以 posgresql 里面大量运用 macro 。
: 我以前做过个实验,把直接调用 postgresql 里面几个 api 改成跳过,直接用
【在 c*****t 的大作中提到】
: 说实在,你倒是让人一个外行的感觉。
: 你有空的话看看 sqlite 或者 postgresql 的代码就知道了。
: 一个是 memory management 。想靠 garbage collection 是不行的。postgresql
: 用的是 memory context,这样 free 的话基本上不花时间,也避免 memory leak 。
: database 里面 memory / cache management 是极端重要的。
: 另外,速度很容易被放大的。比如 A 用 C 写来 access tuple 里的某个 column
: 是用 macro,direct cast 只要几个 op,而 B 用 Java 就得 N 多步骤。有 1000
: tuple 恐怕还没太大不同,1million 就很不一样了。更不用说 memory 方面。
: 所以 posgresql 里面大量运用 macro 。
: 我以前做过个实验,把直接调用 postgresql 里面几个 api 改成跳过,直接用
g*l
26 楼
Java can not be used to write DB kernel. For example, how to use Java to
manage memory, which is very important for DB?
【在 f******2 的大作中提到】
: 数据库接口,java的确做的比其他语言的lib好很多,所以数据库应用java成为
: 首选正义不大。
: 可是数据库的内核,有些open source的database,甚至
: in-memory database也用java写,估计是和游击队没有
: 办法大兵团作战的性质有关。berkeley DB是c写的,虽然也
: 是open source家族,进入特殊领域的主流,这恐怕就是区别。
: 想问问java高手们,有商业数据库内核用java实现的吗?
manage memory, which is very important for DB?
【在 f******2 的大作中提到】
: 数据库接口,java的确做的比其他语言的lib好很多,所以数据库应用java成为
: 首选正义不大。
: 可是数据库的内核,有些open source的database,甚至
: in-memory database也用java写,估计是和游击队没有
: 办法大兵团作战的性质有关。berkeley DB是c写的,虽然也
: 是open source家族,进入特殊领域的主流,这恐怕就是区别。
: 想问问java高手们,有商业数据库内核用java实现的吗?
J*n
28 楼
ding
w*e
29 楼
Kernal RDBMS is way more complicated than what you said. The toy you implemented in school can not be called RDBMS.
optimizer, compiler, code generation, execution layer (serial execution,
parallel execution), data layer are much more complicated than what you
thought, not to mention transaction, materialized view, language support,
manageability, etc.
【在 g*****g 的大作中提到】
: RDBS有很复杂的,但大部分的代码在于外延。
: 核心的部分无非是存储管理,内存管理,连接池,交易,SQL解释器。
optimizer, compiler, code generation, execution layer (serial execution,
parallel execution), data layer are much more complicated than what you
thought, not to mention transaction, materialized view, language support,
manageability, etc.
【在 g*****g 的大作中提到】
: RDBS有很复杂的,但大部分的代码在于外延。
: 核心的部分无非是存储管理,内存管理,连接池,交易,SQL解释器。
F*n
31 楼
Most things you mention are not core of RDBMS
implemented in school can not be called RDBMS.
【在 w*********e 的大作中提到】
: Kernal RDBMS is way more complicated than what you said. The toy you implemented in school can not be called RDBMS.
: optimizer, compiler, code generation, execution layer (serial execution,
: parallel execution), data layer are much more complicated than what you
: thought, not to mention transaction, materialized view, language support,
: manageability, etc.
implemented in school can not be called RDBMS.
【在 w*********e 的大作中提到】
: Kernal RDBMS is way more complicated than what you said. The toy you implemented in school can not be called RDBMS.
: optimizer, compiler, code generation, execution layer (serial execution,
: parallel execution), data layer are much more complicated than what you
: thought, not to mention transaction, materialized view, language support,
: manageability, etc.
w*e
34 楼
as other ppl said, it is just like an embedded OS VS a
full-fledged OS like linux&windows.
you cannot judge complexity of kernal RDBMS by Derby.
If derby is recoginized as a RDBMS everywhere, why shall we
have DB2, ORacle, SQL Server, and even lower-end mysql?
anyway, it is all about how you look at the word "KERNAL".
for me, a "KERNAL" RDBMS shall at least cover from parser,
compiler, code-generation, execution to data layer, with
support of the core set of ANSI SQL.
Even without transaction
【在 g*****g 的大作中提到】
: No, but Apache Derby is recognized as a RDBMS everywhere, and
: Derby core is only 2M bytecode. It can't be rocket science.
full-fledged OS like linux&windows.
you cannot judge complexity of kernal RDBMS by Derby.
If derby is recoginized as a RDBMS everywhere, why shall we
have DB2, ORacle, SQL Server, and even lower-end mysql?
anyway, it is all about how you look at the word "KERNAL".
for me, a "KERNAL" RDBMS shall at least cover from parser,
compiler, code-generation, execution to data layer, with
support of the core set of ANSI SQL.
Even without transaction
【在 g*****g 的大作中提到】
: No, but Apache Derby is recognized as a RDBMS everywhere, and
: Derby core is only 2M bytecode. It can't be rocket science.
s*c
35 楼
你说的很多都不算内核。
【在 w*********e 的大作中提到】
: as other ppl said, it is just like an embedded OS VS a
: full-fledged OS like linux&windows.
: you cannot judge complexity of kernal RDBMS by Derby.
: If derby is recoginized as a RDBMS everywhere, why shall we
: have DB2, ORacle, SQL Server, and even lower-end mysql?
: anyway, it is all about how you look at the word "KERNAL".
: for me, a "KERNAL" RDBMS shall at least cover from parser,
: compiler, code-generation, execution to data layer, with
: support of the core set of ANSI SQL.
: Even without transaction
【在 w*********e 的大作中提到】
: as other ppl said, it is just like an embedded OS VS a
: full-fledged OS like linux&windows.
: you cannot judge complexity of kernal RDBMS by Derby.
: If derby is recoginized as a RDBMS everywhere, why shall we
: have DB2, ORacle, SQL Server, and even lower-end mysql?
: anyway, it is all about how you look at the word "KERNAL".
: for me, a "KERNAL" RDBMS shall at least cover from parser,
: compiler, code-generation, execution to data layer, with
: support of the core set of ANSI SQL.
: Even without transaction
g*g
36 楼
From wiki:
The core of the technology, Derby’s database engine is a full functioned
relational embedded database engine
Not saying Derby is as sophiscated as Oracle, DB2 etc., but Derby demos
the core of an RDBMS regardless.
【在 w*********e 的大作中提到】
: as other ppl said, it is just like an embedded OS VS a
: full-fledged OS like linux&windows.
: you cannot judge complexity of kernal RDBMS by Derby.
: If derby is recoginized as a RDBMS everywhere, why shall we
: have DB2, ORacle, SQL Server, and even lower-end mysql?
: anyway, it is all about how you look at the word "KERNAL".
: for me, a "KERNAL" RDBMS shall at least cover from parser,
: compiler, code-generation, execution to data layer, with
: support of the core set of ANSI SQL.
: Even without transaction
The core of the technology, Derby’s database engine is a full functioned
relational embedded database engine
Not saying Derby is as sophiscated as Oracle, DB2 etc., but Derby demos
the core of an RDBMS regardless.
【在 w*********e 的大作中提到】
: as other ppl said, it is just like an embedded OS VS a
: full-fledged OS like linux&windows.
: you cannot judge complexity of kernal RDBMS by Derby.
: If derby is recoginized as a RDBMS everywhere, why shall we
: have DB2, ORacle, SQL Server, and even lower-end mysql?
: anyway, it is all about how you look at the word "KERNAL".
: for me, a "KERNAL" RDBMS shall at least cover from parser,
: compiler, code-generation, execution to data layer, with
: support of the core set of ANSI SQL.
: Even without transaction
w*e
37 楼
Even wiki can serve as proof, please read carefully.
It said "embedded database engine".
你可以从embedded os的复杂度来推断windows, linux kernal的复杂度吗?
【在 g*****g 的大作中提到】
: From wiki:
: The core of the technology, Derby’s database engine is a full functioned
: relational embedded database engine
: Not saying Derby is as sophiscated as Oracle, DB2 etc., but Derby demos
: the core of an RDBMS regardless.
It said "embedded database engine".
你可以从embedded os的复杂度来推断windows, linux kernal的复杂度吗?
【在 g*****g 的大作中提到】
: From wiki:
: The core of the technology, Derby’s database engine is a full functioned
: relational embedded database engine
: Not saying Derby is as sophiscated as Oracle, DB2 etc., but Derby demos
: the core of an RDBMS regardless.
g*g
39 楼
LOL, embeded in java is a term that says something can be run
in the same JVM as your main module, and can be easily packaged
and ported everywhere, as opposed to a separate service running
in a different JVM. It doesn't hint the capability is limited.
e.g. Tomcat cannot be embeded, Jetty can.
Derby can serve as a stand alone network server too.
【在 w*********e 的大作中提到】
: Even wiki can serve as proof, please read carefully.
: It said "embedded database engine".
: 你可以从embedded os的复杂度来推断windows, linux kernal的复杂度吗?
in the same JVM as your main module, and can be easily packaged
and ported everywhere, as opposed to a separate service running
in a different JVM. It doesn't hint the capability is limited.
e.g. Tomcat cannot be embeded, Jetty can.
Derby can serve as a stand alone network server too.
【在 w*********e 的大作中提到】
: Even wiki can serve as proof, please read carefully.
: It said "embedded database engine".
: 你可以从embedded os的复杂度来推断windows, linux kernal的复杂度吗?
w*e
40 楼
那你还不如说有的embedded os很简单就等于linux/windows/unix os kernal也很简单
了。一个极端的例子,linux kernal里面process scheduling最核心的部分也就是100
多行,一个作业量而已,连course project也算不上,按照你的逻辑,os的kernal也挺
简单的,一个course project而已。其他都是你所谓的“外延”么
可以作为stand alone network server 不等于就是一个rdbms了,前面说了,
只有一个很基本的query/data storage功能的东西远远称不上rdbms。
好了多说无益,你可以找本基本的db教科书看看,看看rdbms至少应该包括些什么。当
然了,你可以有自己的rdbms的定义,你也可以认为所谓的kernal rdbms就是2M
bytecode那点东西,前面有网友说了,看问题的角度不一样,我只是觉得你对kernal和
所谓“外延”的定义非常奇怪而已。
【在 g*****g 的大作中提到】
: LOL, embeded in java is a term that says something can be run
: in the same JVM as your main module, and can be easily packaged
: and ported everywhere, as opposed to a separate service running
: in a different JVM. It doesn't hint the capability is limited.
: e.g. Tomcat cannot be embeded, Jetty can.
: Derby can serve as a stand alone network server too.
了。一个极端的例子,linux kernal里面process scheduling最核心的部分也就是100
多行,一个作业量而已,连course project也算不上,按照你的逻辑,os的kernal也挺
简单的,一个course project而已。其他都是你所谓的“外延”么
可以作为stand alone network server 不等于就是一个rdbms了,前面说了,
只有一个很基本的query/data storage功能的东西远远称不上rdbms。
好了多说无益,你可以找本基本的db教科书看看,看看rdbms至少应该包括些什么。当
然了,你可以有自己的rdbms的定义,你也可以认为所谓的kernal rdbms就是2M
bytecode那点东西,前面有网友说了,看问题的角度不一样,我只是觉得你对kernal和
所谓“外延”的定义非常奇怪而已。
【在 g*****g 的大作中提到】
: LOL, embeded in java is a term that says something can be run
: in the same JVM as your main module, and can be easily packaged
: and ported everywhere, as opposed to a separate service running
: in a different JVM. It doesn't hint the capability is limited.
: e.g. Tomcat cannot be embeded, Jetty can.
: Derby can serve as a stand alone network server too.
F*n
42 楼
你确实比较无知。
100
【在 w*********e 的大作中提到】
: 那你还不如说有的embedded os很简单就等于linux/windows/unix os kernal也很简单
: 了。一个极端的例子,linux kernal里面process scheduling最核心的部分也就是100
: 多行,一个作业量而已,连course project也算不上,按照你的逻辑,os的kernal也挺
: 简单的,一个course project而已。其他都是你所谓的“外延”么
: 可以作为stand alone network server 不等于就是一个rdbms了,前面说了,
: 只有一个很基本的query/data storage功能的东西远远称不上rdbms。
: 好了多说无益,你可以找本基本的db教科书看看,看看rdbms至少应该包括些什么。当
: 然了,你可以有自己的rdbms的定义,你也可以认为所谓的kernal rdbms就是2M
: bytecode那点东西,前面有网友说了,看问题的角度不一样,我只是觉得你对kernal和
: 所谓“外延”的定义非常奇怪而已。
100
【在 w*********e 的大作中提到】
: 那你还不如说有的embedded os很简单就等于linux/windows/unix os kernal也很简单
: 了。一个极端的例子,linux kernal里面process scheduling最核心的部分也就是100
: 多行,一个作业量而已,连course project也算不上,按照你的逻辑,os的kernal也挺
: 简单的,一个course project而已。其他都是你所谓的“外延”么
: 可以作为stand alone network server 不等于就是一个rdbms了,前面说了,
: 只有一个很基本的query/data storage功能的东西远远称不上rdbms。
: 好了多说无益,你可以找本基本的db教科书看看,看看rdbms至少应该包括些什么。当
: 然了,你可以有自己的rdbms的定义,你也可以认为所谓的kernal rdbms就是2M
: bytecode那点东西,前面有网友说了,看问题的角度不一样,我只是觉得你对kernal和
: 所谓“外延”的定义非常奇怪而已。
g*g
43 楼
wiki上写的很清楚是full functional RDBMS. 怕是你的
定义跟别人不一样吧。这个embedded跟embeded OS的embedded
完全不一样,你非扯一块不是显得外行吗。
100
【在 w*********e 的大作中提到】
: 那你还不如说有的embedded os很简单就等于linux/windows/unix os kernal也很简单
: 了。一个极端的例子,linux kernal里面process scheduling最核心的部分也就是100
: 多行,一个作业量而已,连course project也算不上,按照你的逻辑,os的kernal也挺
: 简单的,一个course project而已。其他都是你所谓的“外延”么
: 可以作为stand alone network server 不等于就是一个rdbms了,前面说了,
: 只有一个很基本的query/data storage功能的东西远远称不上rdbms。
: 好了多说无益,你可以找本基本的db教科书看看,看看rdbms至少应该包括些什么。当
: 然了,你可以有自己的rdbms的定义,你也可以认为所谓的kernal rdbms就是2M
: bytecode那点东西,前面有网友说了,看问题的角度不一样,我只是觉得你对kernal和
: 所谓“外延”的定义非常奇怪而已。
定义跟别人不一样吧。这个embedded跟embeded OS的embedded
完全不一样,你非扯一块不是显得外行吗。
100
【在 w*********e 的大作中提到】
: 那你还不如说有的embedded os很简单就等于linux/windows/unix os kernal也很简单
: 了。一个极端的例子,linux kernal里面process scheduling最核心的部分也就是100
: 多行,一个作业量而已,连course project也算不上,按照你的逻辑,os的kernal也挺
: 简单的,一个course project而已。其他都是你所谓的“外延”么
: 可以作为stand alone network server 不等于就是一个rdbms了,前面说了,
: 只有一个很基本的query/data storage功能的东西远远称不上rdbms。
: 好了多说无益,你可以找本基本的db教科书看看,看看rdbms至少应该包括些什么。当
: 然了,你可以有自己的rdbms的定义,你也可以认为所谓的kernal rdbms就是2M
: bytecode那点东西,前面有网友说了,看问题的角度不一样,我只是觉得你对kernal和
: 所谓“外延”的定义非常奇怪而已。
s*c
44 楼
大家都是技术人员,没必要抬杠了。
话说回来,我见过prolog写的数据库内核,很小. prolog虽然慢,但由于CONCURRENY
CONTROL算法与现有RDBMS不同,整体性能相当好。
话说回来,我见过prolog写的数据库内核,很小. prolog虽然慢,但由于CONCURRENY
CONTROL算法与现有RDBMS不同,整体性能相当好。
s*n
45 楼
我觉的你们发错版了,讨论的是哲学问题,比如玩具汽车算不算汽车,包不包含汽车的
“核心技术”。
“核心技术”。
b*y
46 楼
我曾经研究过用java写relational database engine, 也实践过。作为真正工业界用途
来讲,java对performance还不是特别的有优势。我研究过的java db engine 有HSql,
Cloudscape等等。
我觉得,数据库和操作系统,还是要用c来写。毕竟可以管理内存。java的内存管理自
动化,也就不可能作为system programming language.
来讲,java对performance还不是特别的有优势。我研究过的java db engine 有HSql,
Cloudscape等等。
我觉得,数据库和操作系统,还是要用c来写。毕竟可以管理内存。java的内存管理自
动化,也就不可能作为system programming language.
g*g
50 楼
所谓RDBMS,就是数据存储成表状,对接口的要求一般就是支持
SQL。我举的索引你觉得没用,那就请举一个你觉得公认的定义
大家看看,总不成你的理解就是圣经了吧。
我看你说的这个要吗什么都说不出,要不就是谩骂总结得很好。
【在 w*********e 的大作中提到】
: 对kernal理解不同也挺正常,
: 但是如果不同意别人对rdbms kernal 的定义,
: 那说说他自己对kernal的定义好了,
: 但是什么都说不出,要不就是谩骂,
: 要不就是拿出wiki上对一个derby的定义来当证据,
: 有些人只是玩了个玩具汽车(怕是连玩具的原理都没搞明白)
: 就开始论断汽车的“kernal”复杂度只是一个玩具大小了。
SQL。我举的索引你觉得没用,那就请举一个你觉得公认的定义
大家看看,总不成你的理解就是圣经了吧。
我看你说的这个要吗什么都说不出,要不就是谩骂总结得很好。
【在 w*********e 的大作中提到】
: 对kernal理解不同也挺正常,
: 但是如果不同意别人对rdbms kernal 的定义,
: 那说说他自己对kernal的定义好了,
: 但是什么都说不出,要不就是谩骂,
: 要不就是拿出wiki上对一个derby的定义来当证据,
: 有些人只是玩了个玩具汽车(怕是连玩具的原理都没搞明白)
: 就开始论断汽车的“kernal”复杂度只是一个玩具大小了。
w*e
52 楼
ok, 你的定义(表装数据+sql)能不能称为rdbms kernal我们暂且不论,
就算依据你的定义好了,把什么索引,buffer management, optimizer, statistics,
code generation,全部扔掉, 2M bytecode能支持ANSI SQL的
pipeline execution吗?你对SQL有多少概念?
再一次用你自己的例子,你自己去看看derby,
仅仅就是表装table和sql,derby用了多少code
【在 g*****g 的大作中提到】
: 所谓RDBMS,就是数据存储成表状,对接口的要求一般就是支持
: SQL。我举的索引你觉得没用,那就请举一个你觉得公认的定义
: 大家看看,总不成你的理解就是圣经了吧。
: 我看你说的这个要吗什么都说不出,要不就是谩骂总结得很好。
就算依据你的定义好了,把什么索引,buffer management, optimizer, statistics,
code generation,全部扔掉, 2M bytecode能支持ANSI SQL的
pipeline execution吗?你对SQL有多少概念?
再一次用你自己的例子,你自己去看看derby,
仅仅就是表装table和sql,derby用了多少code
【在 g*****g 的大作中提到】
: 所谓RDBMS,就是数据存储成表状,对接口的要求一般就是支持
: SQL。我举的索引你觉得没用,那就请举一个你觉得公认的定义
: 大家看看,总不成你的理解就是圣经了吧。
: 我看你说的这个要吗什么都说不出,要不就是谩骂总结得很好。
g*g
53 楼
我让你找一个你觉得合适的DB kernel的定义让大家看看,你
废话了两天了还找不出来。我是来学习,不是来跟你辩论的,
如果你找不出来,就不要浪费大家时间了。
至于这derby core能干啥,人wiki上写了。
Derby Embedded Database Engine
The core of the technology, Derby’s database engine is a full functioned
relational embedded database engine. JDBC and SQL are the programming APIs.
It has IBM DB2 SQL syntax.
【在 w*********e 的大作中提到】
: ok, 你的定义(表装数据+sql)能不能称为rdbms kernal我们暂且不论,
: 就算依据你的定义好了,把什么索引,buffer management, optimizer, statistics,
: code generation,全部扔掉, 2M bytecode能支持ANSI SQL的
: pipeline execution吗?你对SQL有多少概念?
: 再一次用你自己的例子,你自己去看看derby,
: 仅仅就是表装table和sql,derby用了多少code
废话了两天了还找不出来。我是来学习,不是来跟你辩论的,
如果你找不出来,就不要浪费大家时间了。
至于这derby core能干啥,人wiki上写了。
Derby Embedded Database Engine
The core of the technology, Derby’s database engine is a full functioned
relational embedded database engine. JDBC and SQL are the programming APIs.
It has IBM DB2 SQL syntax.
【在 w*********e 的大作中提到】
: ok, 你的定义(表装数据+sql)能不能称为rdbms kernal我们暂且不论,
: 就算依据你的定义好了,把什么索引,buffer management, optimizer, statistics,
: code generation,全部扔掉, 2M bytecode能支持ANSI SQL的
: pipeline execution吗?你对SQL有多少概念?
: 再一次用你自己的例子,你自己去看看derby,
: 仅仅就是表装table和sql,derby用了多少code
w*e
54 楼
不是和你说了么,你要学习jiu自己去看看基本的db教科书把,
那上面大部分章节加起来就是一个基本的rdbms kernal.
你自己非要编造自己定义(表装table+sql),别人也没办法.
而且就算你自己的定义,也根本没办法支持你的结论
.
【在 g*****g 的大作中提到】
: 我让你找一个你觉得合适的DB kernel的定义让大家看看,你
: 废话了两天了还找不出来。我是来学习,不是来跟你辩论的,
: 如果你找不出来,就不要浪费大家时间了。
: 至于这derby core能干啥,人wiki上写了。
: Derby Embedded Database Engine
: The core of the technology, Derby’s database engine is a full functioned
: relational embedded database engine. JDBC and SQL are the programming APIs.
: It has IBM DB2 SQL syntax.
那上面大部分章节加起来就是一个基本的rdbms kernal.
你自己非要编造自己定义(表装table+sql),别人也没办法.
而且就算你自己的定义,也根本没办法支持你的结论
.
【在 g*****g 的大作中提到】
: 我让你找一个你觉得合适的DB kernel的定义让大家看看,你
: 废话了两天了还找不出来。我是来学习,不是来跟你辩论的,
: 如果你找不出来,就不要浪费大家时间了。
: 至于这derby core能干啥,人wiki上写了。
: Derby Embedded Database Engine
: The core of the technology, Derby’s database engine is a full functioned
: relational embedded database engine. JDBC and SQL are the programming APIs.
: It has IBM DB2 SQL syntax.
T*g
60 楼
re
【在 c*****t 的大作中提到】
: 说实在,你倒是让人一个外行的感觉。
: 你有空的话看看 sqlite 或者 postgresql 的代码就知道了。
: 一个是 memory management 。想靠 garbage collection 是不行的。postgresql
: 用的是 memory context,这样 free 的话基本上不花时间,也避免 memory leak 。
: database 里面 memory / cache management 是极端重要的。
: 另外,速度很容易被放大的。比如 A 用 C 写来 access tuple 里的某个 column
: 是用 macro,direct cast 只要几个 op,而 B 用 Java 就得 N 多步骤。有 1000
: tuple 恐怕还没太大不同,1million 就很不一样了。更不用说 memory 方面。
: 所以 posgresql 里面大量运用 macro 。
: 我以前做过个实验,把直接调用 postgresql 里面几个 api 改成跳过,直接用
【在 c*****t 的大作中提到】
: 说实在,你倒是让人一个外行的感觉。
: 你有空的话看看 sqlite 或者 postgresql 的代码就知道了。
: 一个是 memory management 。想靠 garbage collection 是不行的。postgresql
: 用的是 memory context,这样 free 的话基本上不花时间,也避免 memory leak 。
: database 里面 memory / cache management 是极端重要的。
: 另外,速度很容易被放大的。比如 A 用 C 写来 access tuple 里的某个 column
: 是用 macro,direct cast 只要几个 op,而 B 用 Java 就得 N 多步骤。有 1000
: tuple 恐怕还没太大不同,1million 就很不一样了。更不用说 memory 方面。
: 所以 posgresql 里面大量运用 macro 。
: 我以前做过个实验,把直接调用 postgresql 里面几个 api 改成跳过,直接用
m*t
61 楼
Finally... I didn't want to say anything because I normally don't
pick on people's spelling, but I really think that if people choose
to post in a condescending tone and keep referring others to
"basic dbms textbooks," they should probably also make sure
they got right the one keyword that the whole debate is about.
【在 c*****t 的大作中提到】
: 强烈鄙视连 kernel 都拼写不对的人 :) 你好像篇篇都是将其拼错。
: 也猜不出怎么可能把 postgres 拼成 postgrel 。。。RMDBS 更。。。
: 你该没学过打字吧。。。
g*g
68 楼
wiki can be wrong, but you insist I have to find the definition
on textbook and textbook only, even after I ask for a reference.
I have to assume the entire internet is wrong.
【在 w*********e 的大作中提到】
: 还什么entire internet,wiki这种可以随便改的上面的一句话也能代表entire
: internet了.
: 说的不好听一点,你对os和rdbms的内核基本上都是一无所知,
: 我相信你连那derby 那2M bytecode是干什么的也没搞清楚过.
on textbook and textbook only, even after I ask for a reference.
I have to assume the entire internet is wrong.
【在 w*********e 的大作中提到】
: 还什么entire internet,wiki这种可以随便改的上面的一句话也能代表entire
: internet了.
: 说的不好听一点,你对os和rdbms的内核基本上都是一无所知,
: 我相信你连那derby 那2M bytecode是干什么的也没搞清楚过.
g*g
70 楼
I ASK several times, show me the right reference if wiki is wrong.
There ain't even one available on Internet that makes it right?
If you can't do it, this conversation is over, there's no need
to argue just for argue's sake.
【在 w*********e 的大作中提到】
: 什么逻辑,一个wiki能推出entire internet is wrong.吗?
: 我建议你去看code你又不去,那我除了建议你看教科书还能怎么办?
There ain't even one available on Internet that makes it right?
If you can't do it, this conversation is over, there's no need
to argue just for argue's sake.
【在 w*********e 的大作中提到】
: 什么逻辑,一个wiki能推出entire internet is wrong.吗?
: 我建议你去看code你又不去,那我除了建议你看教科书还能怎么办?
c*t
71 楼
j*i
73 楼
Following the thread, I think both daisyy and whisper have answered your questions several times.
You just repeated asking the same question over and over regardless of
responses from others.
If you do not wanna read source code or textbooks, you can go over
"Architecture of a Database System"
a recent however terrific paper by Joe. Hellerstein and Michael Stonebraker.
Specifically, you can read Section 4 to understand what the core RDBMS is.
By no means you can implement the core logic of RDBMS
【在 g*****g 的大作中提到】
: I ASK several times, show me the right reference if wiki is wrong.
: There ain't even one available on Internet that makes it right?
: If you can't do it, this conversation is over, there's no need
: to argue just for argue's sake.
You just repeated asking the same question over and over regardless of
responses from others.
If you do not wanna read source code or textbooks, you can go over
"Architecture of a Database System"
a recent however terrific paper by Joe. Hellerstein and Michael Stonebraker.
Specifically, you can read Section 4 to understand what the core RDBMS is.
By no means you can implement the core logic of RDBMS
【在 g*****g 的大作中提到】
: I ASK several times, show me the right reference if wiki is wrong.
: There ain't even one available on Internet that makes it right?
: If you can't do it, this conversation is over, there's no need
: to argue just for argue's sake.
相关阅读
java applet读网络文件的问题Chase Freedom&Sapphire信用卡开户送350刀 限时 另送drugstore giftcard 若干netbeans 6.9了看到一个关于singleton的面试题免费拿最高600刀 bonus+Discover 12000mile+10刀礼品卡若干(自取)CVS repository host线程hardy会一直等待下去么?这个是什么意思?请教一个Queue实现的问题local变量被赋值了几次?System.currentTimeMillis()的取值问题Eclipse console 有可能分开显示吗?请问海外的Java同行,一般在哪里讨论问题fresh graduate做java的在哪个州能有口饭吃struts vs Spring MVC ??a fun coding questionhash function questionjava EL 问题请教install4j 打包问题求推荐的java多线程教程